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