一个图像使用左键输入动画

时间:2013-04-11 11:27:15

标签: jquery html

当我点击站点中的左箭头和右箭头时,图片相应地移动,但是当我开始点击右箭头时,图片被抛出了块限制。正常的动画图片是100像素但是正如我上面提到的问题,当我们快速点击箭头时,程序不知道像素的位置。 我希望您告知或解释这个问题是如何解决的 谢谢

html代码:

<div class="slider">
    <img src="http://lh5.googleusercontent.com/-k__maLyJIPw/UWV1-WyW9rI/AAAAAAAAAJk/MVfNsKPQLsU/s1539/slider.png" alt="" />
    <a href="" class="left">left</a>
    <a href="" class="right">right</a>
</div>

jquery代码:

var left_animate = '+=100px';
var right_animate = '-=100px';

$('.slider .left').click(function () {

    var img_left_position = $('.slider img').position().left;

    if (img_left_position == 0) {
        return false;
    }
    $('.slider img').stop(true, true).animate({
        left: left_animate
    });
    return false;
});

var imgi = $(".slider img").width();

$('.slider .right').click(function () {

    var img_left_position = $('.slider img').position().left;
    if (imgi + img_left_position == 1600) {

        return false;
    }


    $('.slider img').stop(true, true).animate({
        left: right_animate
    });
    return false;
});

以下是fiddle

1 个答案:

答案 0 :(得分:1)

请参阅:Fiddle

var newpos;
$('.slider .left').click(function(){
    var img_left_position = $('.slider img').position().left;
    newpos = img_left_position + 100 < 0 ? img_left_position + 100 : 0;  
    $('.slider img').stop(true,true).animate({
        left: newpos
    });
    return false;
});

var imgi = $(".slider img").width();
$('.slider .right').click(function(){
    var img_left_position = $('.slider img').position().left;
    newpos = img_left_position - 100 > -1600 ? img_left_position - 100 : -1600;
    $('.slider img').stop(true,true).animate({
        left: newpos
    });
    return false;
});