javascript - 不同div之间的平滑切换(jQuery)

标签 javascript jquery css html

我找到了这个很好的代码,可以使用下一个/上一个按钮在各种 div 之间切换,但我找不到使转换更平滑的方法,比如在切换之间淡入/淡出。我尝试添加 fadein();和淡出();在不同的地方,但我一定做错了什么,因为它没有改变任何东西。应该如何修改?

http://jsfiddle.net/hsJbu/36/

<div class="divs">
<div class="cls1">1</div>
<div class="cls2">2</div>
<div class="cls3">3</div>
<div class="cls4">4</div>
<div class="cls5">5</div>
<div class="cls6">6</div>
<div class="cls7">7</div>
</div>
<a id="next">next</a>
<a id="prev">prev</a>



$(document).ready(function(){
$(".divs div").each(function(e) {
    if (e != 0)
        $(this).hide();
});

$("#next").click(function(){
    if ($(".divs div:visible").next().length != 0)
        $(".divs div:visible").next().show().prev().hide();
    else {
        $(".divs div:visible").hide();
        $(".divs div:first").show();
    }
    return false;
});

$("#prev").click(function(){
    if ($(".divs div:visible").prev().length != 0)
        $(".divs div:visible").prev().show().next().hide();
    else {
        $(".divs div:visible").hide();
        $(".divs div:last").show();
    }
    return false;
});
});

最佳答案

demo

$(function(){

  var $el = $(".divs > div"),
      N = $el.length,
      C = 0;                   // Current    

    $el.hide().eq( C ).show();

    $("#next, #prev").click(function(){
       $el.stop().fadeOut().eq( (this.id=='next'? ++C : --C) %N ).fadeIn();
    });

});

确保 CSS position:absolute; 您的幻灯片元素,以便它们重叠。

关于javascript - 不同div之间的平滑切换(jQuery),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20230574/

相关文章:

javascript - 悬停进/出使我的 div 闪烁

javascript - 如何在 Chrome 上替换已弃用的 "svgElement.offsetWidth/height"

javascript - 通过 JavaScript 将 style.property 设置为文本区域

javascript - 具有相同类的元素 id 的数组

java - 如何同时调用onclick和a href

jquery - 使用 Twitter Bootstrap 实现简单的响应式菜单

css - Bootstrap 失败.. 一行中有 4 列带间距(最后一列在新行中)

javascript - 如何在 jquery 创建后动态更改 div 的颜色?

javascript - 使用 graphicsmagick 的 collectionFS 中出现意外的空写入流

javascript - React.js 和 ES6 : Any reason not to bind a function in the constructor