1

ボタンをクリックしてもバナーが変更されない場合、jquery.currentBannerの値が増減するバナースライダーを使用しようとしています。

脚本:

$(document).ready(function () {
    var currentBanner = 0;
    $("#prev").bind("click", function () {
        currentBanner -= 1;
        $("#banner_div img").eq(currentBanner).fadeIn("slow");
    });

    $("#next").bind("click",function () {
        currentBanner += 1;
        $("#banner_div img").eq(currentBanner).fadeIn("slow");
    });

    $("#banner_div img").eq(currentBanner).css("display", "block");
});

HTML:

<a href="#" id="next>next</a>
<a href="#" id="prev">prev</a>
<div id="banner_div">
    <img src="image1.jpg" alt="" />
    <img src="image2.jpg" alt="" />
    <img src="image3.jpg" alt="" />
    <img src="image4.jpg" alt="" />
</div>
4

3 に答える 3

3

すぐに

<a href="#" id="next>next</a>

id 属性の終了引用符がありません:

<a href="#" id="next">next</a>

これは、私が何をするかの jsFiddle デモです

jQuery :

$(document).ready(function () {

    var $images = $("#banner_div img"),
        totalImages = $images.length,
        currentIndex = 0;

    $images.eq(currentIndex).fadeIn("slow");

    $("#prev").on("click", function() {
        if (currentIndex > 0) {
            $images.eq(currentIndex).stop(true,true).hide(0);
            currentIndex -= 1;
            $images.eq(currentIndex).stop(true,true).fadeIn("slow");
        }
    });

    $("#next").on("click",function () {
        if (currentIndex < totalImages-1) { 
            $images.eq(currentIndex).stop(true,true).hide(0);
            currentIndex += 1;
            $images.eq(currentIndex).stop(true,true).fadeIn("slow");
        }
    });

});​

CSS :

#banner_div img { display: none; }​
于 2012-05-09T15:17:13.573 に答える
1

Morteza のコードのコンパクト バージョン:

$(document).ready(function () {
    var currentBanner = 0;
    $("#banner_div img").eq(currentBanner).show("fade");

    $("#prev").bind("click", function () {
        $("#banner_div img").eq(currentBanner--).hide("fade").prev().show("fade");
    });

    $("#next").bind("click",function () {
        $("#banner_div img").eq(currentBanner++).hide("fade").next().show("fade");
    });
});     
于 2012-05-09T15:25:23.930 に答える
0

メソッド $(selector).show("fade") および $(selector).hide("fade") を使用します

$(document).ready(function () {
    var currentBanner = 0;
    $("#banner_div img").hide();
    $("#banner_div img").eq(currentBanner).show("fade");

    $("#prev").bind("click", function () {
        $("#banner_div img").eq(currentBanner).hide("fade");
        decrease(currentBanner);
        $("#banner_div img").eq(currentBanner).show("fade");
    });

    $("#next").bind("click",function () {
        $("#banner_div img").eq(currentBanner).hide("fade");
        increase(currentBanner);
        $("#banner_div img").eq(currentBanner).show("fade");
    });

});     

増減するときは currentBanner を 0 とバナー数の間でチェックします。

function increase(n){
    n++;
    if(n >= $("#banner_div img").length)
        n=0;
}
function decrease(n){
    n;
    if(n < 0 )
        n=$("#banner_div img").length -1;
}
于 2012-05-09T15:22:29.370 に答える