I looking-for tutorial about jQuery slider (like scrollable plugin) with cycle animation. Without any plugin, the simplest way, tutorial
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
UPDATED: 27/08/2014
- DEMO: http://so.lucafilosofi.com/scrollable-carousel-slider-in-jquery-without-any-plugin-the-simplest-way
$(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;});
}
}
});
回答2:
DEMO
https://jsfiddle.net/w9wjk22n/
I write some code:
<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>
...but when I remove first element, the elements moved to left after the animate, and when I clicked a few times 'next' the element will be outside blue container.