作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一组列表项,我需要它们淡出和(下一个)无缝淡入。这是我的(不工作的)代码:
document.ready(function(){
var list_slideshow = $("#site_slideshow_inner_text");
list_slideshow.children("li:not(:first)").hide();
// here begins the function
function changeList(){
var list_slideshow = $("#site_slideshow_inner_text");
var length = 0;
if(list_slideshow.length === length)
{
list_slideshow.children("li").eq(0).fadeOut(300, function()
{
$(this).next().fadeIn(300);
});
}
}
setTimeout(changeList(), 500);
});
最佳答案
你的函数有几个问题:
您错误地引用了 setTimeout
函数(使用 changelist
而不是 changelist()
)。
setTimeout
只调用一次,因此请改用 setInterval
。
您错误地调用了文档就绪函数(使用 $(document).ready(function () {
或简单地 $(function () {
/p>
您在 changeList 函数中的逻辑是错误的(例如,list_slideshow.length === length
将始终为 false)。
以下代码按照我认为的方式循环遍历列表项(尽管您可能希望根据需要更改时间):
$(function () {
var list_slideshow = $("#site_slideshow_inner_text"),
listItems = list_slideshow.children('li'),
listLen = listItems.length,
i = 0,
changeList = function () {
listItems.eq(i).fadeOut(300, function () {
i += 1;
if (i === listLen) {
i = 0;
}
listItems.eq(i).fadeIn(300);
});
};
listItems.not(':first').hide();
setInterval(changeList, 1000);
});
关于javascript - 使用 jquery 列出要淡入淡出的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16502075/
我是一名优秀的程序员,十分优秀!