实现消息滚动效果有很多种方式,这里提供一种基于JS实现的方法:
实现消息滚动效果有很多种方式,这里提供一种基于JS实现的方法:
1. 初步实现
首先,在需要实现消息滚动效果的HTML页面中,建立一个 <div>
容器,用来包含滚动的消息。然后在CSS样式中设置容器的高度和宽度等基本属性。
在JS中,获取该容器并且将其内容进行复制一次,从而可以实现消息的不停循环滚动。使用setInterval函数实现定时不断改变容器的top值,实现滚动效果。
代码示例如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JS消息滚动效果</title>
<style type="text/css">
#scroll-container {
height: 100px;
width: 300px;
border: 1px solid #ccc;
overflow: hidden;
position: relative;
}
#scroll-container-inner {
position: absolute;
top: 0px;
left: 0px;
}
</style>
</head>
<body>
<div id="scroll-container">
<div id="scroll-container-inner">
<p>第一个消息</p>
<p>第二个消息</p>
<p>第三个消息</p>
<p>第四个消息</p>
</div>
</div>
<script type="text/javascript">
var scrollInterval;
function startScroll() {
scrollInterval = setInterval(scroll, 30);
}
function scroll() {
var scrollContainer = document.getElementById('scroll-container');
var scrollContainerInner = document.getElementById('scroll-container-inner');
if (scrollContainerInner.offsetTop <= -scrollContainerInner.offsetHeight) {
scrollContainerInner.style.top = "0px";
} else {
scrollContainerInner.style.top = scrollContainerInner.offsetTop - 1 + "px";
}
}
startScroll();
</script>
</body>
</html>
2. 添加鼠标事件操作
上面的示例中,滚动效果是自动的,为了方便用户操作,我们可以添加鼠标事件,当鼠标悬停在滚动容器上时,滚动停止,鼠标移开后滚动继续。
在JS中,对容器添加 onmouseover
和 onmouseout
事件,当事件触发时暂停或恢复滚动。
代码示例如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>JS消息滚动效果</title>
<style type="text/css">
#scroll-container {
height: 100px;
width: 300px;
border: 1px solid #ccc;
overflow: hidden;
position: relative;
}
#scroll-container-inner {
position: absolute;
top: 0px;
left: 0px;
}
</style>
</head>
<body>
<div id="scroll-container" onmouseover="stopScroll()" onmouseout="startScroll()">
<div id="scroll-container-inner">
<p>第一个消息</p>
<p>第二个消息</p>
<p>第三个消息</p>
<p>第四个消息</p>
</div>
</div>
<script type="text/javascript">
var scrollInterval;
function startScroll() {
scrollInterval = setInterval(scroll, 30);
}
function stopScroll() {
clearInterval(scrollInterval);
}
function scroll() {
var scrollContainer = document.getElementById('scroll-container');
var scrollContainerInner = document.getElementById('scroll-container-inner');
if (scrollContainerInner.offsetTop <= -scrollContainerInner.offsetHeight) {
scrollContainerInner.style.top = "0px";
} else {
scrollContainerInner.style.top = scrollContainerInner.offsetTop - 1 + "px";
}
}
startScroll();
</script>
</body>
</html>
以上就是基于JS实现消息滚动效果的攻略。
沃梦达教程
本文标题为:js实现消息滚动效果
基础教程推荐
猜你喜欢
- vuecli4配置路由 简单记录一下 2023-10-08
- javascript静态页面传值的三种方法分享 2024-02-10
- js实现中文转拼音的完整步骤记录 2024-01-06
- HTML 绝对路径与相对路径概念详细 2022-11-20
- vue keep-alive 2023-10-08
- 详解Ajax跨域(jsonp) 调用JAVA后台 2023-02-01
- 设置和读取cookie的javascript代码 2024-03-20
- 详解IE6中的position:fixed问题与随滚动条滚动的效果 2022-11-13
- 微信小程序 常见问题总结(4058,40013)及解决办法 2024-02-10
- css 控制鼠标显示样式示例 2024-01-24