【问题标题】:jquery fadeIn fadeOut slideshow not loading next elementjquery fadeIn fadeOut 幻灯片不加载下一个元素
【发布时间】:2014-06-18 08:57:51
【问题描述】:

我正在尝试做基于 jquery 的幻灯片放映,我有:

对于 html:

<ul id="main_ul">
    <li><img src="images/image1.jpg"></li>
    <li><img src="images/image2.jpg"></li>
    <li><img src="images/image3.jpg"></li>
</ul>

对于 CSS:

#main_ul li {
position:relative;
left:0;
top:0;
list-style-type: none;
width:1000px;
height:524px;
padding: 0;
}

#main_ul {
position: relative;
width:1000px;
height:524px;
padding: 0;
}

对于 JS:

   $(document).ready(function(){

      $("#main_ul li:gt(0)").hide();

      setInterval(function(){

         $("#main_ul :first-child").fadeOut().next("li").fadeIn().end().appendTo("#main_ul");
      }, 3000);
   });

看起来下一个 li 元素没有淡入。 大家有什么建议吗。

P

【问题讨论】:

    标签: jquery fadein fadeout


    【解决方案1】:

    编辑:

    重新阅读您的问题后,我现在看到了实际问题。下一张幻灯片正在淡入,但在淡入淡出期间它被撞到了视野之外。这是因为您有两个可见元素同时使用相对定位淡入淡出,因此一个会碰撞另一个直到淡出。它在较小的尺寸下更明显,例如这个小提琴:http://jsfiddle.net/Bcup4/

    我的建议是使用fadeOut 的回调函数。这将确保在淡入开始之前淡出已经完成。它会是这样的:

    $("#main_ul :first-child").fadeOut( 1000, "linear" function() {
        // Put fadeIn code here
    });
    

    $("#main_ul :first-child").fadeOut().next("li").fadeIn().end().appendTo("#main_ul");

    您的代码是说“在#main_ul 中的第一个孩子中找到下一个 li”。您应该淡出第一个元素,追加它,然后使用新选择器开始第二行以获取下一个元素(现在将是第一个元素)。

    【讨论】:

    • 您好,感谢您的回答。我正在处理这段代码几个小时,而且我知道的接缝越来越少。我了解我的代码功能,例如:淡出#main_ul 的第一个子项(即第一个 li),然后找到下一个 li(#main_ul 的下一个子项)并淡入。end() 重置引用并 appendTo 将第一个 li 添加到#main_ul。对吗?
    猜你喜欢
    • 2012-02-02
    • 1970-01-01
    • 2011-12-13
    • 1970-01-01
    • 1970-01-01
    • 2013-11-18
    • 1970-01-01
    • 2013-04-11
    • 2014-07-07
    相关资源
    最近更新 更多