实现消息滚动效果有很多种方式,这里提供一种基于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实现消息滚动效果
猜你喜欢
- javascript 按键事件(兼容各浏览器) 2023-12-24
- vxe-list vue 如何实现下拉框的虚拟列表 2024-02-19
- PHP如何读取由JavaScript设置的Cookie 2024-02-13
- AJAX 动态加载后台数据 绑定select的方法 2023-02-23
- js如何根据id删除数组中对象 2023-11-30
- echarts中X轴显示特定个数label并修改样式的方法详 2022-08-31
- js实现广告漂浮效果的小例子 2024-02-05
- vue正则验证 2023-10-08
- vue相关面试知识点总结 2023-10-08
- JS+CSS实现的拖动分页效果实例 2024-01-02