Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 基于jquery的分割滑块不工作_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 基于jquery的分割滑块不工作

Javascript 基于jquery的分割滑块不工作,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我正在为我的网站制作一个缩略图滑块。Slider对动画使用jquery。当我点击箭头时,滑块移动到相应的一侧200px。 现在,如果滑块已经在-200 px,我点击左箭头两次滑块移动到+200 px,显示空白空间。理想情况下,这不应该发生,空白空间不应该被显示。但是当movingThumbs函数被快速连续调用时,这种情况就会发生。如何防止这种情况发生 下面是html代码 <div id="thumbnails"> <div class="thumbnailArrows">

我正在为我的网站制作一个缩略图滑块。Slider对动画使用jquery。当我点击箭头时,滑块移动到相应的一侧200px。 现在,如果滑块已经在-200 px,我点击左箭头两次滑块移动到+200 px,显示空白空间。理想情况下,这不应该发生,空白空间不应该被显示。但是当movingThumbs函数被快速连续调用时,这种情况就会发生。如何防止这种情况发生

下面是html代码

<div id="thumbnails">
<div class="thumbnailArrows">
    <img src="http://kimjoyfox.com/blog/wp-content/uploads/leftA.jpg" id="Tleft" />
</div>
<div id="window">
    <div id="divHolder">
        <div class="block1">

        </div>
        <div class="block2">

        </div>
        <div class="block3">

        </div>
        <div class="block4">

        </div>
        <div class="block5">

        </div>
        <div class="block6">

        </div>
        <div class="block7">

        </div>
    </div>
</div>
<div class="thumbnailArrows">
    <img src="http://kimjoyfox.com/blog/wp-content/uploads/rightA.jpg" id="Tright" />
</div>
})

链接到现场演示的JSFIDLE:

我的第一个想法:你应该测量滑块的内容。然后将其与滑块移动的值进行比较。如果超过一半,你需要禁用幻灯片的启动。这样我就无法到达结尾本身。这并不能直接回答你的问题,但我分心了,开始处理很多事情。希望这能激励你想出一些有效的方法:谢谢Dustin,这很有帮助。它解决了我的问题。
$(document).ready(function () {
//Hovering Over Thumbnail Navigation
$('.thumbnailArrows').unbind("click").click(function () {
    var whiches = $(this).children('img').attr('id');
    if (whiches == 'Tleft') {
        movingThumbs(2000, '+');
    } else {
        movingThumbs(2000, '-');
    }



    //Function for Thumbnails Moving
    function movingThumbs(speed, direction) {
        var currentLeft = $('#divHolder').position().left;
        //figure out how far to go left - only for right arrow
        var moving = $('#divHolder').width() - (Math.abs($('#divHolder').position().left) + $('#window').width());
        if (currentLeft == 0 && direction == '+') {
            //do nothing
        } else if (Math.abs($('#divHolder').position().left) + $('#window').width() >= $('#divHolder').width() && direction == '-') {
            //do nothing
        } else if (direction == '+' && currentLeft != 0) {
            $('#divHolder').animate({
                left: '+=200px',
            }, speed);
        } else {

            $('#divHolder').animate({
                left: '-=200px',
            }, speed);
        }
    }
});