ASP.NET MVC-razor编写-2-svg中使用js+添加事件监听

环境:win10


效果

初始状态:
在这里插入图片描述
鼠标移入某个text(比如KS primer)时,text和连接的线条与箭头都变色:
在这里插入图片描述
鼠标移出时回复正常。

如果是移入另一种红色的text(比如Cell Sceening Tag),那么该text和连接的线条与箭头都变绿色:
在这里插入图片描述
鼠标移出时回复正常。

当然如果移向某个箭头时也可以同步变色。

实现思路

首先,介绍一下我的数据结构。我的razor展示时带一个自定义的对象,该对象有一个公有成员是List<MyObject>,其中MyObject也是自定义的对象,它带的公有成员,可以指定图中text、line和path的相关属性。如下面所示(已简化)。

<svg id="mySvg"><!-- 此处使用razor里的foreach循环 --><g><text/><line/><path/></g>
</svg>

现在为MyObject对应的、需要变色的svg子元素增加一个新的属性color-change,将这个属性与MyObject的某个bool成员绑定,以true和false区分子元素的颜色。

以text子元素为例,如果希望增加鼠标移入和移出的效果,可以这样写:

// 先寻找这个属性为true的元素
var texts = document.querySelectorAll("text[color-change=True]");
texts.forEach(function (text) {// 鼠标移动到上面时修改颜色text.addEventListener("mouseover", function () {var id = text.id; // 获取idsetColorforGroup(id, color1);});text.addEventListener("mouseout", function () {var id = text.id;setColorforGroup(id, color2);});
});
// 再寻找这个属性为false的元素
var stableTexts = document.querySelectorAll("text[color-change=False]");
// 类似的设置,这里不再赘述

其中setColorforGroup(id, color)是通过确认text的id来确定line和path的id的,只要取到了id,就可以设置成目标颜色。比如:

var textEl = document.getElementById(textId);
textEl.style.fill = color;

这里需要注意的一点是,因为color-change是直接绑定MyObject的某个bool成员,所以这句querySelectorAll("text[color-change=True]");里写的是True,如果不是绑定成员,是固定值(比如<path color-change="true" />),那就要写true了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/40488.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

创建本地仓库

一、新建挂载目录 二、将挂载本地镜像挂载到目录 三、配置yum仓库 一、新建挂载目录 mkdir /BenDiCangKu 二、将挂载本地镜像挂载到目录 1、先连接本地光盘 2、挂载光盘 mount /dev/sr0 /BenDiCangKu 3、查看挂载 由此可见挂载成功 三、配置yum仓库 1、新建yum仓库文件…

php简单商城小程序系统源码

&#x1f6cd;️【简单商城小程序】&#x1f6cd;️ &#x1f680;一键开启&#xff0c;商城搭建新体验&#x1f680; 你还在为繁琐的商城搭建流程头疼吗&#xff1f;现在&#xff0c;有了简单商城系统小程序&#xff0c;一切变得轻松又快捷&#xff01;无需复杂的编程知识&a…

构建Android studio版的CarSystemUI工程时因为包名一致导致BuildConfig问题

项目场景&#xff1a; 公司计划开发杰发AC8025-Android 12版本车载平台&#xff0c;前期预研需要构建Android studio版的CarSystemUI工程 问题描述 AAOS车载项目里面的CarSystemUI源码默认无Android studio版本&#xff0c;为了后期快速开发调试需要构建Android studio能直接…

STM32基础知识

一.STM32概述 第一款STM32单片机发布的时间为2007年6月11日。由意法半导体&#xff08;ST&#xff09;公司推出&#xff0c;是STM32系列中的首款产品&#xff0c;具体型号为STM32F1&#xff0c;它是一款基于Cortex-M内核的32位微控制器&#xff08;MCU&#xff09;。 STM32F1…

【openstack基础操作】

openstack 常用命令 source ~/base/src/kayobe-config/etc/kolla/admin-openrc.sh https://docs.openstack.org//kayobe/latest/doc-kayobe.pdf 镜像下载点 http://cloud.centos.org/centos/7/images/创建虚拟机 openstack server create --image 13d0686a-a7cc-4cc6-8bf7-76…

2024年【湖北省安全员-C证】考试资料及湖北省安全员-C证考试试卷

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 湖北省安全员-C证考试资料是安全生产模拟考试一点通生成的&#xff0c;湖北省安全员-C证证模拟考试题库是根据湖北省安全员-C证最新版教材汇编出湖北省安全员-C证仿真模拟考试。2024年【湖北省安全员-C证】考试资料及…

JS+CSS+HTML项目-中国国家图书馆

页面做的不多&#xff0c;CSS效果请看哔哩哔哩

英智玲珑一体机在律所能做什么

只要不开庭&#xff0c;学习就不能停 好的律师是法律知识的百科全书 要精通、全面理解各类型的法律 还要不断学习更新的条例释义 一天即使工作24小时 也有忙不完的文书起草&#xff0c;资料核对&#xff0c;案情分析整理 有了英智玲珑一体机&#xff0c;这些都不是难题&am…

MySQL8.0~open_files_limit 和 innodb_open_files 参数生效取值标准

前置条件 设置参数 /etc/security/limits.conf中设置如下 * soft nofile 100001 * hard nofile 100002 root soft nofile 100001 root hard nofile 100002 mysql soft nofile 65535 mysql hard nofile 65535my.cnf中设置如下 table_open_cache5000 open_files_limit20000 i…

一键式创建GTest测试平台

适用于C GTest测试平台搭建。直接上python脚本。 #!/usr/bin/env python3 # -*- coding: utf-8 -*-import argparse import os import platform import subprocess from xml.etree import ElementTree as ETdefault_root_path "d:\\test\\UTtest"class DeveloperTe…

init,service和systemctl的区别

1、service是一个脚本命令&#xff0c;分析service可知是去/etc/init.d目录下执行相关程序。service和chkconfig结合使用。 服务配置文件存放目录/etc/init.d/ 2、systemd centos7版本中使用了systemd&#xff0c;systemd同时兼容service,对应的命令就是systemctl systemctl命…

四款主流电脑监控软件(电脑监控软件主要优势)

在现代企业环境中&#xff0c;确保员工的工作效率和企业信息的安全成为了管理者的重要任务。电脑监控软件作为一种有效的管理工具&#xff0c;能够帮助企业实现这些目标。固信电脑监控软件在这方面表现尤为出色&#xff0c;本文将详细介绍固信电脑监控软件的优势及其主要功能&a…

如何在DDD项目实战中保证子系统/限界上下文的低耦合

如何在DDD项目实战中保证子系统/限界上下文的低耦合&#xff0c;首先通过如下几个层次和环节来保证。 1.业务需求分析阶段 需求要理解透彻&#xff0c;哪些功能应该放在一起。识别哪些是易变需求&#xff0c;哪些是稳定需求。识别哪些是通用需求&#xff0c;哪些是定制需求。…

《NATURE丨使用 AlphaFold 3 准确预测生物分子相互作用的结构》

NATURE丨使用 AlphaFold 3 准确预测生物分子相互作用的结构 注意&#xff01;&#xff1a;本文创作仅根据个人理解和网络信息&#xff0c;如有错误恳请指正&#xff01;谢谢&#xff01; 大家好&#xff0c;今天分享的文献是2024年5月发表在Nature上的“ Accurate structure …

(仿真+报告+源码)基于51单片机的温湿度监测系统

&#xff08;仿真报告源码&#xff09;基于51单片机的温湿度监测系统 付费后获得百度网盘链接&#xff0c;网盘链接在最后&#xff0c;有问题私信哦~~~ 一.系统简介 该系统由单片机、温湿度传感器器、液晶显示器以及浇水控制电路组成。该系统使用AT89C51单片机作为控制核心&…

【楚怡杯】职业院校技能大赛 “Python程序开发”赛项样题一

第一部分&#xff1a;产品需求文档 第1题&#xff1a;补充产品需求文档中的新增学生功能 将产品需求文档中新增学生功能的详细描述内容截图并保存&#xff1b; 第2题&#xff1a;补充产品需求文档中的校园卡列表功能 将产品需求文档中校园卡列表功能的详细描述内容截图并保存&a…

Oracle 数据库详解:概念、结构、使用场景与常用命令

1. 引言 Oracle 数据库作为全球领先的关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;在企业级应用中占据了重要地位。本文将详细介绍Oracle数据库的核心概念、架构、常用操作及其广泛的使用场景&#xff0c;旨在为读者提供全面而深入的理解。 2. Oracle 数据…

windows上安装Frida环境

python安装 下载地址 Python Release Python 3.12.4 | Python.org python安装好后&#xff0c;使用如下命令安装frida客户端 pip install frida-tools 使用frida --version 查看frida版本 安装手机模拟器&#xff08;雷电模拟器&#xff09; 我的版本是4.0.61 查看CPU架构 adb …

一文了解常见DNS结构

很多企业忽略DNS这个关键的组件&#xff0c;而当DNS出现问题是&#xff0c;就会导致网站无法访问、电子邮件无法发送和接收&#xff0c;从而影响到企业的正常运行。而网络团队成员如果想要处理DNS问题就必须对所在网络的DNS架构有一定的理解。 主DNS服务器&#xff1a; 主DNS服…

Hive数据倾斜--处理方法

1. 什么是数据倾斜&#xff1f; 在分布式计算场景下&#xff0c;大量的数据集中在某一个节点而导致一个任务的执行时间变长。而大量的节点只处理了小部分的数据&#xff0c;大数据组件处理海量数据的特点就是不患多&#xff0c;而患不均。 2. 怎么发现任务出现了数据倾斜现象 …