[英]attempting to get a smooth slide effect by looping a jquery animate left on hover
我試圖在鼠標懸停的循環中使用動畫左邊的動畫制作水平幻燈片,並在mouseleave上結束它。 這是迄今為止我所擁有的一個例子。
循環正在運行,但動畫在迭代之間變慢。 我錯了什么? 有沒有更好的方法來實現我的目標?
代碼還包括在下面:
<div id="holder">
<ul class="box_holder">
<li class="box"></li>
<li class="box"></li>
<li class="box"></li>
<li class="box"></li>
<li class="box"></li>
<li class="box"></li>
<li class="box"></li>
<li class="box"></li>
<li class="box"></li>
<li class="box"></li>
</ul>
</div>
<div class="left"></div>
</div>
<script>
function scrollList(){
$("ul").animate({
"left" : "-=30px"
}, 1000,scrollList);
}
$(".left").hover(function(){
scrollList("left");
},
function(){
$("ul").stop();
});
</script>
我認為更好的方法是將目標動畫設置為最大左值,並根據您擁有的箱數來設置動畫的速度。 另外,對動畫使用'線性'緩動。
像這樣的東西:
function scrollList(){
var boxes = $('.box').length;
$("ul").animate({
"left" : "-=" + 30*boxes
}, 700 * boxes, "linear", scrollList);
}
$(".left").hover(function(){
scrollList("left");
},
function(){
$("ul").stop();
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.