如何在幻灯片中向当前图像添加类?

时间:2013-05-21 16:58:15

标签: jquery html css

我有一个用JQuery定制的幻灯片;

$(document).ready(function () {
    $animating_slideshow = false;
    $animation_speed = 1000;
    $amount_of_slides = $("#slider").find(".img-games").find(".img-game").length;

    $("#slider-left").on("click", function() {
        if (!$animating_slideshow) {
            $slidden = parseInt($(this).parent().find(".img-games").css("margin-left"));
            if ($slidden > 0 || $slidden < 0) {
                $(this).parent().find(".img-games").animate({"margin-left":"+=170"}, $animation_speed, function() {
                    $animating_slideshow = false;
                });
                $animating_slideshow = true;
            } else {
                $(this).parent().find(".img-games").animate({"margin-left":-($amount_of_slides-1) * 170}, $animation_speed, function() {
                    $animating_slideshow = false;
                });
                $animating_slideshow = true;
            }
        }
    });

    $("#slider-right").on("click", function() {
        if (!$animating_slideshow) {
            $slidden = parseInt($(this).parent().find(".img-games").css("margin-left"));
                if ($slidden > -($amount_of_slides-1) * 170) {
                    $(this).parent().find(".img-games").animate({"margin-left":"-=170"}, $animation_speed, function() {
                    $animating_slideshow = false;
                });
                    $animating_slideshow = true;
                } else {
                    $(this).parent().find(".img-games").animate({"margin-left":"0"}, $animation_speed, function() {
                    $animating_slideshow = false;
                });
                $animating_slideshow = true;
                }
        }
    });
});

这是我的HTML ......

<div id="slider">
        <div class="img-games">
            <div id="this_slide" class="img-game">
                <img src="http://www.maxdamage.org/wp-content/uploads/2012/05/pokemon-gameboy.jpg" width='170px' height='115px' class='degrades' alt='pokemon' title='Pokemon'>
            </div>
            <div class="img-game">
                <img src="http://1.bp.blogspot.com/-U62BIDPN79U/UV1hPr9xtAI/AAAAAAAAENs/mKIrEDb4RAw/s320/Super_mario_land.png" width='170px' height='115px' class='degrades' alt='Mario' title='Mario'>
            </div>
            <div class="img-game">
                <img src="http://1.bp.blogspot.com/-J7x8JfY21Yk/UUea7UsjUZI/AAAAAAAAA0M/E2qpkAZFsnM/s1600/links_awakening2.png" width="170px" height="115px" class="degrades" alt='Zelda' title='Zelda'>
            </div>
            <div class="img-game">
                <img src="http://www.consoleclassix.com/info_img/Rayman_GBC_ScreenShot2.gif" width="170px" height="115px" class="degrades" alt='Rayman' title='Rayman'>
            </div>
        </div>
</div>

我如何在当前可以在屏幕上查看的图像中添加一个名为“当前”的新类,任何帮助都将不胜感激,提前感谢!

1 个答案:

答案 0 :(得分:1)

两种可能的解决方案:

1)如果您跟踪幻灯片放映的当前索引,可以使用它来设置类,如下所示:

$('.current').removeClass('current');
$('.img-game:eq(' + currentIndex + ')').addClass('current');

2)单击向左或向右键时,使用current类的位置将类重新分配给其他位置。以下是左键单击示例:

$('.current').removeClass('current').parent().next().child('.img-game')
    .addClass('current')

要进行右键单击,您可以使用.prev()代替.next()。您还应该包括一个检查,以确保在更改选择之前存在下一个元素。