首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >D3 mouseover过渡被“卡住”

D3 mouseover过渡被“卡住”
EN

Stack Overflow用户
提问于 2013-02-18 19:48:14
回答 1查看 4.9K关注 0票数 5

假设我想为导航菜单创建常规的悬停效果,但是我使用D3过渡来“柔化”效果,而不是CSS。对于.on-method,使用mouseovermouseout可以很好地工作。然而,问题是,如果鼠标在转换完成之前离开悬停的链接,转换就会卡住。如何避免这种副作用?

例如,使用此代码时,如果速度太快,即使鼠标移动到其他位置,底部边框仍显示为橙色:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
d3.selectAll("a")
    .on("mouseover", function() { 
       d3.select(this)
      .style("border-bottom-color", "#fff")
      .transition()
      .duration(1000)
      .style("border-bottom-color", "#B23600"); })
    .on("mouseout", function() { 
       d3.select(this)
      .style("border-bottom-color", "#fff"); });
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-18 21:12:50

我认为发生的情况是,当你只在mouseover上安装了.transition时,当你在1000ms到期之前离开时,转换仍然没有结束。因此,当您提前离开时,mouseover转换仍在运行,并且在mouseout事件上不会调用转换来覆盖此转换。(显然,即使是mouseout事件也不会停止与mouseover事件关联的.transition。)

但是,正如您所提到的,当您在mouseout事件上放置一个transition时,问题就消失了。我相信这是因为mouseout transition优先于mouseover .transition,所以在mouseout事件上使用.transition可以让mouseout事件重新得到控制。

如果您注释掉mouseout事件上的.transition,您可以在这里看到它的实际效果。

http://jsfiddle.net/Ldmv6/1/

同样值得一读的是即将出版的Scott Murray's d3图书的第10章:http://ofps.oreilly.com/titles/9781449339739/_interactivity.html

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14944150

复制
相关文章
【D3使用教程】(5) 动态更新与过渡动画
数据总是在变化的,那么我们要如何将变化的数据反映到图表上呢? 在D3中,这些变化通过更新进行处理。而过渡通过使用动画用于处理视觉上的展示。
前端修罗场
2023/10/07
4480
【D3使用教程】(5) 动态更新与过渡动画
D3库实践笔记之图表交互 |可视化系列36
对于前端可视化库来说,交互效果是其基本功能,需要有优雅的效果和简洁的API才能出彩,而如果一个前端可视化工具只能生成静态图表,绝对会显得格格不入,因为在前端拥有交互功能并不复杂。与图表的交互,是指图表元素能根据用户的键盘鼠标操作做出相应的反应,例如悬停高亮、缩放、漫游、拖动节点、点击涟漪效果等等。
蛰虫始航
2020/11/25
5.4K0
D3库实践笔记之图表交互 |可视化系列36
【D3使用教程】(6) 交互操作之事件监听
在之前的文章中写到,为了让图表具有交互能力,我们必须针对一些事件来编写代码,以便监听某些DOM元素发生的这些事件。
前端修罗场
2023/10/07
3720
mouseenter 和mouseover的区别
1.mouseenter 和mouseover的区别 当鼠标移动到元素上时就会触发mouseenter 事件 类似 mouseover,它们两者之间的差别是 mouseover 鼠标经过自身盒子会触发,经过子盒子还会触发。mouseenter  只会经过自身盒子触发 之所以这样,就是因为mouseenter不会冒泡 跟mouseenter搭配鼠标离开 mouseleave  同样不会冒泡 <script> var father = document.querySel
梨涡浅笑
2022/05/08
5470
mouseenter 和mouseover的区别
mouseenter 和mouseover的区别 当鼠标移动到元素上时就会触发mouseenter 事件 类似 mouseover,它们两者之间的差别是 mouseover 鼠标经过自身盒子会触发,经过子盒子还会触发。mouseenter 只会经过自身盒子触发 之所以这样,就是因为mouseenter不会冒泡 跟mouseenter搭配鼠标离开 mouseleave 同样不会冒泡
清出于兰
2020/10/26
8360
D3动画
D3.js提供了多种工具支持数据可视化的交互,其中d3.transition让简单而高效的为图像添加动画成为了可能。
vincentKo
2022/09/19
8870
D3动画
AWS 进出附加 EBS 卷的 IO 被卡住,出现性能下降
主要的AWS EC2区域出现性能下降后,Signal随之瘫痪,Xero和Nest则变得有点不稳定。 AWS周日晚上过得并不轻松,其主要的US-EAST-1区域的EC2实例出现了异常。 在太平洋夏令时20点11分,AWS状态页面宣布该平台的主要可用区出现了性能下降的问题。 30分钟后发布的通知声称:“由于进出附加EBS卷的IO被卡住,受影响的可用区内使用EBS卷的现有EC2实例也出现了性能下降。” “由于卷性能下降,受影响的可用区内刚启动的EC2实例可能无法启动。” 在太平洋夏令时21点47分,AWS表
云头条
2022/03/18
6150
数据可视化工具d3_前端3d可视化
近年来,可视化越来越流行,许多报刊杂志、门户网站、新闻媒体都大量使用可视化技术,使得复杂的数据和文字变得十分容易理解,有一句谚语“一张图片价值于一千个字”。D3 正是数据可视化工具中的佼佼者,基于 JavaScript 开发,项目托管于 GitHub。从 D3诞生以来,不断受到好评,在 GitHub 上的项目仓库排行榜也不断上升。可视化越来越流行,许多报刊杂志、门户网站、新闻、媒体都大量使用可视化技术,使得复杂的数据和文字变得十分容易理解,有一句谚语“一张图片价值于一千个字”,的确是名副其实。各种数据可视化工具也如井喷式地发展,D3 正是其中的佼佼者。D3 的全称是(Data-Driven Documents),顾名思义可以知道是一个被数据驱动的文档。听名字有点抽象,说简单一点,其实就是一个 JavaScript 的函数库,主要是用来做数据可视化。
全栈程序员站长
2022/11/10
12.9K0
数据可视化工具d3_前端3d可视化
linux yum卡住/rpm -ivh卡住的解决方法
后来看网上的博客说的是rpm数据包坏了,网友的方法我也不敢尝试,所以我就先把此服务器的 /var/lib/rpm目录备份,然后找一台能用yum和rpm的服务器将rpm拷贝过来,解压,然后就可以用了
用户4877748
2020/07/21
2.6K0
mouseenter与mouseover为何这般纠缠不清?
前言 项目地址 不知道大家在面试或者工作过程中有没有被mouseover和mouseenter(对应的是mouseout和mouseleave)事件所困扰。自己之前在面试的时候就有被问到诸如mous
IMWeb前端团队
2017/12/29
1.7K0
mouseenter与mouseover为何这般纠缠不清?
D3 介绍
D3.js 是一个基于数据的操作文档的 JavaScript 库,可以让你绑定任何数据到 DOM,支持 DIV 这种图案生成,也支持 SVG 这种图案的生成(如果你对 SVG 不熟悉,请先看一下这篇文章,它介绍了 SVG、VML 和 Canvas)。D3 帮助你屏蔽了浏览器差异,做出来图案的效果可以说是炫目得一塌糊涂,可是代码却很简洁。在我第一次听人介绍 D3 的时候,确实被其示例震撼到了,大量的例子在这里可以找到。
四火
2022/07/15
1.4K0
D3 介绍
CSS(过渡)
有一个盒子(div)初始宽度100px,设置CSS hover属性后使它鼠标悬浮上面时实现盒子宽度属性变为300px; 但是我们鼠标一放上去后,盒子的宽度属性会立马变成300px,没有任何过渡效果; 我们可以利用CSS3中的过渡来实现过渡效果,让它平滑的展开或者收缩;
全栈开发日记
2022/05/12
5550
过渡策略
通过将单体应用的不同组件分解到单独的服务中,从而从单体应用逐步过渡到微服务。这个过程是渐进的,有时会同时存在单体应用和微服务。
yeedomliu
2021/12/01
5500
jquery 绑定事件 - mouseover() mouseout() mouseenter() mouseleave() hover()
进入子元素也会触发mouseover()事件,那么如果#small的div没有嵌套在里面是否会触发呢? 这样应该就不会。
Devops海洋的渔夫
2019/05/31
3K0
mouseenter与mouseover为何这般纠缠不清?
本文作者:IMWeb 谦龙 原文出处:IMWeb社区 未经同意,禁止转载 前言 原文地址 项目地址 不知道大家在面试或者工作过程中有没有被mouseover和mouseenter(对应的是mouseout和mouseleave)事件所困扰。自己之前在面试的时候就有被问到诸如mouseover和mouseenter事件的异同之类的问题?当时没有答出来,一直也对这两个事件有点模糊不清,趁着最近正在读zepto源码,准备写一篇这方面的文章,如果有错误,请大家指正。 <!--more--> m
IMWeb前端团队
2019/12/03
7830
过渡&动画概述
Vue提供了一些抽象概念,可以帮助处理过渡和动画,特别是在响应某些变化时。这些抽象的概念包括:
玖柒的小窝
2021/10/31
1.6K0
过渡&动画概述
解决df -h命令卡住
解决/proc/sys/fs/binfmt_misc被卡住问题(以下方法任选其一)
用户8851537
2021/07/22
2.8K0
wine卡住_Ubuntu微信
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/10/04
2K0
wine卡住_Ubuntu微信
js之Vue 过渡组件,可实现组件或者页面的动画过渡或者css过渡
使用过渡效果,可以优化用户体验,Vue给我们封装了一个很好用的组件,专门用来处理过渡效果,下面我们来看看怎么使用它;
IT工作者
2022/05/17
1.1K0
d3从入门到出门
css选择器语法: http://www.w3school.com.cn/c***ef/css_selectors.asp
py3study
2020/01/08
3K0

相似问题

D3 Mouseover没有开火

10

D3工具提示+ Mouseover

12

D3 Mouseover/Mouseout冲突

12

D3 Mouseover和Mouseout

11

d3交联mouseOver节点

15
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文