使用Prototype.js检测鼠标是否接触到元素
Detect if mouse is touching element using Prototype.js?
我正在尝试制作一个Javascript应用程序,当鼠标触摸某个元素时,它会慢慢淡出,当鼠标离开该元素时,元素会逐渐淡出。我在Scriptaculous中使用Prototype,那么有没有Prototype函数可以告诉我鼠标是否在任何给定时间触摸对象?
我使用脚本淡出/淡入效果的主要问题是,当一个在另一个完成之前被触发时,效果会发生冲突,元素会表现不佳。
只需将效果对象存储在某个地方(例如在闭包中),并在您想要应用不同效果时取消它
var element = $("element"),
currentEffect = null;
element.observe("mouseenter", function() {
if (currentEffect) {
currentEffect.cancel();
}
currentEffect = new Effect.Fade(element);
});
element.observe("mouseleave", function() {
if (currentEffect) {
currentEffect.cancel();
}
currentEffect = new Effect.Appear(element);
});
jsfiddle演示
(很明显,您可以通过多种方式进行重构,但基本上您所需要做的就是观察mouseenter
和mouseleave
事件,并记住在开始新的事件之前取消任何运行效果)
相关文章:
- CKEditor Widget-阻止编辑可编辑元素本身
- 如何设置html元素填充的动画
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 使用clickToggle并在单击另一个元素时关闭元素
- 单击时将焦点更改为元素
- 表追加而不附加最后一个元素
- 如何在jQuery中获取元素的形式
- 我可以获得相对于被点击元素的确切点击位置吗
- 在函数中添加数组元素的数值
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 将视口底部滚动到元素底部
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- 在不使用JQuery的情况下隐藏DOM中的选定元素
- 如何在不接触某些元素的情况下附加document.click事件
- 有没有一种简单的方法可以在不接触每个元素的情况下添加struts 1.3 html styleId属性
- 使所有元素接触一个矩形
- 使用Prototype.js检测鼠标是否接触到元素
- 当动画元素接触鼠标时触发mouseenter
- JavaScript的碰撞检测.(检查两个Block Level元素是否接触)