我正在寻找有关循环动画的jQuery滑块(如可滚动插件)的教程。 没有任何插件,最简单的方法,教程
答案 0 :(得分:5)
更新时间:2014年8月27日
$(function() {
/* author: Luca Filosofi * contact: aseptik@gmail.com * http://devilmaycode.it * license: Public * Updated: 27/08/2014 */
var animating = false, iXS = 3, $slider = $('.panel-inner'), liW = $slider.find('li:first').width(), liFW = (liW * $slider.find('li').length);
$slider.width(liFW);
$('.button a').on('click', function(e) {
e.preventDefault();
if(!animating){
var left = Math.abs(parseInt($slider.css('left')));
var side = ($(this).data('direction') == 'right') ? (((left + (liW * iXS)) >= liFW) ? 0 : -(left + liW)) : ((left > 0) ? -(left - liW) : -(liFW - (liW * iXS)));
rotate(side);
}
});
var rotate = function(leftY) {
if(!animating){
animating = true;
$slider.stop(true, true).animate({left : leftY}, 500, function(){animating = false;});
}
}
});
答案 1 :(得分:1)
<强>样本强>
我写了一些代码:
<script type="text/javascript">
$(document).ready(function() {
$('a.next').click(function() {
var duplicate = $('#a li:first').clone();
//
$(duplicate).appendTo('#a ul');
$('#a ul').animate({
marginLeft: '-=52px'
}, 2000, 'linear', function() {
$('#a li:first').remove();
});
});
});
</script>
<style type="text/css">
#a {
list-style: none;
width: 52px;
height: 50px;
border: 1px solid blue;
margin-left: 200px;
}
#a ul {
margin: 0;
margin-left: -104px;
padding: 0;
width: 420px;
border: 1px solid green;
height: 50px;
position: absolute;
}
#a ul li {
border: 1px solid red;
float: left;
width: 50px;
text-align: center;
}
.services {
border: 1px solid green;
padding: 5px;
width: 300px;
margin-left: 100px;
display: none;
}</style>
<a href="#" class="next">next</a>
<div id="a">
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
<li>7</li>
<li>8</li>
</ul>
</div>
...但是当我删除第一个元素时,元素在动画后移动到左边,当我点击“下一个”几次时,元素将位于蓝色容器之外。