var slideContainer = ('#slider');
var width = 720;
function slide () {
if ( parseInt( $slideContainer.css('marginLeft') ) >= -2160 ) {
$slideContainer.animate({'margin-left': '-='+width},200);
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a class='button' onclick='slide()'></a>
我有这个简单的功能,问题是当我点击动画速度超过150的按钮多次点击时,滑块容器向左移动超过-2160我的if条件的限制。
答案 0 :(得分:1)
var slideContainer = ('#slider');
var width = 720;
var clicked = false;
function slide () {
if ( clicked ) return;
clicked = true;
if (parseInt( $slideContainer.css('marginLeft') ) >= -2160 ) {
$slideContainer.animate({'margin-left': '-='+width},200,"linear",()=>{
clicked=false;});
}
}
&#13;
<a class='button' onclick='slide()'></a>
&#13;
答案 1 :(得分:0)
您可以通过以下两种方式实现这一目标 -
var events = $._data(sliderContainer[0], 'events');
handler = events.click;
events.click = null;
slideContainer.animate({'margin-left': '-='+width},{duration: 200, complete:function(){evends.click = handler }});
希望这会有所帮助..