此代码将循环遍历 ID 为“cyclelist”的无序列表。 可用于任何带有子元素的元素。 将“ul#cyclelist li”替换为您要循环遍历的元素。
$(document).ready(function() {
var j = 0;
var delay = 2000; //millisecond delay between cycles
function cycleThru(){
var jmax = $("ul#cyclelist li").length -1;
$("ul#cyclelist li:eq(" + j + ")")
.animate({"opacity" : "1"} ,400)
.animate({"opacity" : "1"}, delay)
.animate({"opacity" : "0"}, 400, function(){
(j == jmax) ? j=0 : j++;
cycleThru();
});
};
cycleThru();
});
ul#cyclelist {width:200px;border:solid;position:relative;overflow:hidden;height:200px}
ul#cyclelist li {font-size:1.4em;padding:20px;opacity:0;position:absolute}
是否可以将列表项设为活动链接? 就像现在,当你将它们设为链接时,什么也不会发生,为什么呢?
请注意,最好使用 $(“ul#cyclelist > li”) 选择器,因为可能存在嵌套列表。
@Dan Taylor. 当然,为什么不呢? 使用 <li><a href=”#.”>链接</a></li>
你能上传演示吗?
谢谢
它在 IE 上不起作用
是的,它在 IE 中的行为不正常,不幸的是..
当另一个事件发生时,是否可以暂停操作。
例如,在鼠标悬停时暂停
谢谢
我相信你在发布这篇文章后的几年里已经解决了你的问题,但我认为其他人会欣赏一个好的、可靠的答案。 只需知道,为了使用间隔,这与上面的代码非常不同。
$(document).ready(function() {
.animate({“opacity” : “0”}, 400, function(){
(j == jmax) ? j=0 : j++;
cycleThru();
});
到
.animate({“opacity” : “0”}, 400, function(){
$(“ul#cyclelist li”).hide();
(j == jmax) ? j=0 : j++;
cycleThru();
});
抱歉重复发布……为了修复 IE,请更改
.animate({“opacity” : “0″}, 400, function(){
(j == jmax) ? j=0 : j++;
cycleThru();
});
到
.animate({“opacity” : “0″}, 400, function(){
$(“ul#cyclelist li”).hide();
(j == jmax) ? j=0 : j++;
cycleThru();
});
IE 修复似乎不起作用
这是我尝试的方法
(function($) {
$.cycleThru = {
defaults: {
delay: 1,
}
}
$.fn.extend({
cycleThru:function(config) {
var config = $.extend({}, $.cycleThru.defaults, config);
return this.each(function() {
var delay = config.delay;
var ulid = $(this).attr(“id”);
var j = 0;
var jmax = $(this).children(“li”).length -1;
function cyclee(){
$(“ul#” + ulid + ” li:eq(” + j + “)”)
.animate({“opacity” : “1”} ,200)
.animate({“opacity” : “1”}, delay)
.animate({“opacity” : “0”}, 400, function(){
$(“ul#cycleThru_qoutes li”).hide();
(j == jmax) ? j=0 : j++;
cycleThru();
});
};
cyclee();
})
}
})
})(jQuery);
在 IE 中似乎不起作用。 通过跳过它并使用 Cycle 插件来节省几个小时。
这太棒了
它也在 IE 中运行
非常感谢
不要通过从 1 到 1 动画不透明度来延迟,而是使用
.delay( 2000 )
方法包含*
*
有人对如何随机化这个有什么建议吗? (jQuery 新手)
Corey,
我还没有尝试过,我相信这里有人可以详细说明。
cycleThru 将是一个不同的函数
在你的列表中,你可以给每个 ‘li> 元素一个顺序号。 在函数开始时,将一个变量设置为列表范围内的一个随机数。 然后在已经概述的 jQuery 部分中使用此变量。 它看起来像这样
});
嗨。 我需要这个循环在遍历完所有元素后停止,然后显示一个类似“开始”或其他消息的消息。?有人吗?
这段代码对我来说运行完美,除了我需要一个更改。 我希望列表垂直居中。 像这样
文本文本
文本文本文本
我可以删除“position: absolute;”来实现这一点,但这样每行后续文本在淡入时都会向下移动一行。
有人知道怎么做吗? 谢谢。
哎呀,那没有正确显示。 我希望文本右对齐居中。
发现使用 FadeIn 和 FadeOut 比使用不透明度要容易得多。
我只是不喜欢在列表项上设置静态高度。 因此,与其将列表项设置为绝对,不如将其设置为显示隐藏,FadeIn 和 FadeOut 只会切换显示元素并使其淡入淡出。
如何才能使它重复;在完成一次迭代后从列表开头重新开始?
是否可以根据文本长度动态调整旋转时间?
如果文本长度较短,则时间较短,如果文本长度较长,则时间较长。
function example() {
element.innerHTML = “code”;
}
“`