javascript - 使用 moo 工具的 Fx.Slide 操纵许多滑动对象的最佳方式

标签 javascript loops mootools slide

我正在尝试想出最优雅的解决方案来处理 mootools 中的多个 Fx.Slides。我正在开发一个字典页面,其中有一个很长的单词列表,其中有一对单词 - 翻译,默认情况下所有翻译必须隐藏,仅显示单词列表。我正在寻找一种解决方案,不需要为页面上的每个单词创建单独的幻灯片,以便在访问者单击某个单词时即时创建它们,因为脚本的大小和性能会受到影响关心我。还有另一个问题,它们的初始状态必须事先设置为“隐藏”,而我不想在 CSS 中这样做(这会对浏览器不支持 JavaScript 的人隐藏所有内容)。 这种类型的事情是否可能,或者我必须依赖于循环创建幻灯片(我的元素 ID 像 w01、w02,...)?如果是这样,我如何将该 block 放入循环中?

最佳答案

查看这个关于用户是否没有 Javascript 的问题 Embedding extra styles with noscript .

处理完之后我们就可以专注于 mootools 了。当您使用 Javascript 加载页面时,您希望元素具有 visibility:hidden 。给你的元素一个类,这样我们就可以一次选择它们。初始化元素的示例。

$$('.sliders').each(function(el) {
    el.slide('hide').setStyle('visibility', 'visible');
});

现在我们需要处理点击事件。这里也是如此。

示例 html:

<h3 class="slideIn" >Some title</h3>
<div class="sliders>Some lengthy text<div>

示例 html:

$$('.slideIn').addEvent('click', function() {
    this.getNext().getChildren('.sliders').slide();
});

​ fiddle 示例:http://jsfiddle.net/b4Zjs/

编辑:如果有很多元素应该有点击事件,最好使用事件委托(delegate)。然后,您只需向页面添加一个事件监听器,有时它会产生巨大的差异。

$('parent').addEvent('click:relay(h3.slideIn)', function(event, target) {
   target.getNext().getChildren('.sliders').slide();
});

jsFiddle 示例:http://jsfiddle.net/b4Zjs/2/

关于javascript - 使用 moo 工具的 Fx.Slide 操纵许多滑动对象的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13380382/

相关文章:

javascript - 循环遍历对象以返回具有 'distinct' 属性的对象 - Javascript

javascript - 将多个工作表从一个电子表格复制到另一个电子表格

r - 对于R中的大型必要循环,应优先使用 “while loops”而不是 “for loops”吗?

javascript - Mootools提交表单仅在通过id选择表单时有效

jquery - 如何在现有 Mootools 站点之上实现 jQuery

javascript - 如果文本是输入标签/文本框,上下文菜单 JavaScript 无法获取所选文本

javascript - Dojo - 如何以编程方式修改 dojo-props?

javascript - 这个原始的 javascript 选择器在 JQuery 中是什么?

javascript - 使用 mootools 查找 DOM 对象是否可见的最佳方法

javascript - PubNub JavaScript SDK : PNmessage is not defined