在水平列表中设置appendTo和prependTo动画的可能方法
Possible ways of animating appendTo and prependTo in horizontal list
有一个简单的图库插件,我想知道在这个更改幻灯片的实现中(使用ul数组中的追加,而不是边距)有没有任何方法可以动画滚动效果(从左到右,反之亦然)?
下面是片段,想象一下黑色边框就是您的视口。
function moveLeft() {
var last = $('ul li:last-child');
last.prependTo('ul');
};
function moveRight() {
var first = $('ul li:first-child');
first.appendTo('ul');
};
$('a.next').click(function (e) {
e.preventDefault();
moveRight();
});
$('a.prev').click(function (e) {
e.preventDefault();
moveLeft();
});
ul{
white-space:nowrap;
}
ul li{
display: inline-block;
margin: 15px;
}
.viewport{
position:absolute;
top: 15px;
left:100px;
width:100px;
height:50px;
border: 1px solid black;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
<div class="viewport">
</div>
<a href="" class="prev">Previous</a>
<a href="" class="next">Next</a>
这里有一个解决方案,它运行得很好,但还有一些明确的改进。我制作了ul { position: relative }
,在准备/附加项目后,立即使用left
或right
css属性偏移其位置,然后使用jquery将这些值动画化为0
。
此外,重要的是使用jquery.stop()
清除上一个动画队列,并根据要设置动画的属性重置left
/right
值。
我对数字进行了一些调整,使其看起来正确——如果你修改其当前的大小或样式,你将不得不再次调整确切的css值,但原理将完全相同。希望这能有所帮助。
我的小提琴:http://jsfiddle.net/Lmdk64a5/2/
相关文章:
- jquery:将动画绑定到滚动条位置的更好方法
- 如何抽象JQuery动画方法
- jQuery's的动画方法
- jQuery切换方法的动画不起作用
- 操作方法:第一次单击动画 1,第二次单击动画 2
- 使用each()方法来动画化代码类型
- 在要设置动画的所有方法之间进行选择
- 一种读取或更改CSS动画关键帧的方法
- 为D3.js动画编写绑定的正确方法是什么
- 如何设置“”的css值-webkit变换”;在“;动画化”;方法
- 这是在Javascript/Jquery中预加载图像的正确方法吗(带动画)
- 什么's是为网页编写动画标题的最有效方法
- 动画方法在 Chrome 中不起作用
- 使用 CSS3 或 JavaScript 对 Webkit 渐变进行动画处理的方法
- jquery:如何将 .hide() 方法与 .fadeToggle(“fast”) 动画一起使用
- 添加/删除类和动画元素的不同方法
- 将 css3 动画转换为画布动画的任何方法
- 取消对象方法内部的动画帧不起作用
- 操作方法:将鼠标悬停在图像上并制作动画绘制一条线,说明淡出
- Firefox使用jQuery动画方法和绝对位置的奇怪行为