HTML+JS(jQuery)无缝衔接滚动,鼠标移入开始移出停止
warning:
这篇文章距离上次修改已过193天,其中的内容可能已经有所变动。
以下是一个简单的HTML和jQuery代码示例,实现了一个无缝衔接滚动的效果,并且可以通过鼠标移入和移出控制滚动:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>无缝衔接滚动</title>
<style>
.scroll-container {
width: 300px;
height: 100px;
overflow: hidden;
position: relative;
}
.scroll-content {
width: 1000px; /* 足够长,以便可以滚动 */
position: absolute;
left: 0;
}
.scroll-item {
height: 100%;
float: left;
width: 300px;
background-color: #ddd;
line-height: 100px;
text-align: center;
font-size: 30px;
}
</style>
</head>
<body>
<div class="scroll-container">
<div class="scroll-content">
<div class="scroll-item">1</div>
<div class="scroll-item">2</div>
<div class="scroll-item">3</div>
<!-- 更多内容 -->
</div>
</div>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
$(document).ready(function() {
var scrollContainer = $('.scroll-container');
var scrollContent = $('.scroll-content');
var contentWidth = scrollContent.outerWidth();
var timer;
// 设置滚动内容宽度,使其超过容器宽度
scrollContent.css('width', contentWidth * 3);
// 鼠标移入停止滚动,移出开始滚动
scrollContainer.hover(function() {
clearInterval(timer);
}, function() {
timer = setInterval(function() {
var left = scrollContent.position().left;
if (left === 0) {
left = contentWidth * 2; // 当滚动到头部时,直接跳转到中间位置
}
left -= 1; // 每次滚动1像素
if (left <= -contentWidth) {
left = 0; // 当滚动到尾部时,跳转到开始位置
}
scrollContent.css('left', left);
}, 20); // 20毫秒滚动一次
}).trigger('mouseleave'); // 触发mouseleave事件开始滚动
});
</script>
</body>
</html>
这段代码实现了一个无缝衔接的自动滚动效果,当鼠标移入容器时滚动停止,移出则开始滚动。使用了HTML和CSS来设计布局和样式,以及使用jQuery来处理鼠标事件和滚动逻辑。
评论已关闭