我想使用 scriptaculous 中的 Effect.Move 来构建这个界面(当然,使用 Prototype)。
当顶div
鼠标悬停时触发span
标签是向左移动 50 像素 - 并在鼠标移开时重置而不移动到原始位置。问题是,任何时候div
元素是从子元素输入的,我想要移动的元素会额外移动 50 个像素。我尝试过使用relatedTarget
and toElement
试图阻止该事件的传播,但无济于事。这是代码,目前还不完整:
e.observe('mouseover', function(evt) {
var block = e.down('span');
if(evt.target == block && !evt.relatedTarget.descendantOf(block)){
new Effect.Move(block, { x: -50, duration: 0.4,
});
} else {
}
});
HTML 示例:
<div class='trigger'>
<span class='to-be-moved'>...</span>
<p>Child Element</p>
<h2>Another Child Element</h2>
<a>Link</a>
</div>
我完全迷失在这里 - 有什么建议吗?
你尝试过使用吗“鼠标进入”和“鼠标离开” http://demos.mootools.net/Mouseenter而不是“鼠标悬停”和“鼠标移出”?即使有子元素,它们也只会触发一次,并且原型从1.6.1开始支持 https://github.com/sstephenson/prototype/commit/9d7a981e4c434ee7ca5a1219ab5a150552c411d1.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)