jQuery实现无限循环滚动
时间: 2023-06-29 20:19:54 浏览: 140
可以使用jQuery的animate()方法和定时器实现无限循环滚动。具体步骤如下:
1. 将需要滚动的元素复制一份,并插入到元素列表的末尾,形成一个循环列表。
2. 使用定时器,每隔一定时间执行一次滚动动画。
3. 在滚动动画完成后,判断当前滚动到的位置是否是复制元素的位置,如果是,则立即将滚动位置重置到原始位置。
下面是一个简单的示例代码:
HTML代码:
```
<div class="scroll-wrap">
<ul class="scroll-list">
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
</div>
```
CSS代码:
```
.scroll-wrap {
overflow: hidden;
}
.scroll-list {
width: 5000px; /* 滚动列表的总宽度,需要根据实际情况进行调整 */
position: relative;
left: 0;
margin: 0;
padding: 0;
list-style: none;
}
.scroll-list li {
float: left;
width: 200px; /* 每个元素的宽度,需要根据实际情况进行调整 */
height: 100px; /* 每个元素的高度,需要根据实际情况进行调整 */
text-align: center;
line-height: 100px;
font-size: 36px;
background-color: #ccc;
margin-right: 20px; /* 每个元素之间的间距,需要根据实际情况进行调整 */
}
```
JavaScript代码:
```
$(function() {
var $scrollWrap = $('.scroll-wrap');
var $scrollList = $('.scroll-list');
var $scrollItems = $scrollList.find('li');
var scrollWidth = $scrollItems.eq(0).outerWidth() * $scrollItems.length;
$scrollList.css({ width: scrollWidth });
// 将列表复制一份,并插入到末尾
$scrollList.append($scrollItems.clone());
// 定时器,每隔1秒执行一次滚动动画
setInterval(function() {
$scrollList.animate({ left: '-=200px' }, 500, function() {
// 判断是否滚动到了复制元素的位置
if ($scrollList.position().left <= -scrollWidth) {
$scrollList.css({ left: 0 });
}
});
}, 1000);
});
```
在上面的代码中,我们通过计算滚动列表的总宽度,并将滚动元素复制一份,形成一个循环列表。然后使用定时器每隔一定时间执行一次滚动动画,滚动完成后判断是否到达复制元素的位置,如果是则重置滚动位置。
阅读全文