js实现公告自动滚动

当我们在网站中需要展示一些公告信息时,如果公告内容比较多,可以通过实现公告自动滚动来达到更好的展示效果。下面是 JS 实现公告自动滚动的完整攻略。

步骤

1. 准备 HTML 结构

首先需要在 HTML 中定义公告的容器和公告内容的列表,如下所示:

<div class="notice">
    <ul>
        <li>公告1</li>
        <li>公告2</li>
        <li>公告3</li>
        <li>公告4</li>
        <li>公告5</li>
    </ul>
</div>  

2. 设置 CSS 样式

为公告容器 .notice 和公告列表 ul 设置 CSS 样式,如下所示:

.notice{
    width: 500px;
    height: 40px;
    overflow: hidden;
    position: relative;
}
.notice ul{
    position: absolute;
    padding: 0;
    margin: 0;
    list-style: none;
    animation: move 10s infinite linear;
}
.notice li{
    height: 40px;
    line-height: 40px;
}
@keyframes move{
    0%{top: 0;}
    100%{top: -200px;}
}

其中,overflow: hidden; 表示内容超出容器部分隐藏,absolute 使公告列表脱离普通文档流,animation: move 10s infinite linear; 表示执行 move 动画,执行时间为 10s,无限循环,动画速度线性。

3. 实现 JavaScript 动态效果

使用 JS 动态地向公告列表 ul 中添加单个公告,直到列表中的公告数等于指定的数量,之后删除最上面的公告,以达到公告自动滚动的效果。JavaScript 代码如下所示:

var notice_list = document.querySelector('.notice ul');
var notice_items = ['公告1', '公告2', '公告3', '公告4', '公告5'];
var notice_num = notice_items.length;
var interval = 3000; // 时间间隔为3秒

for(var i = 0; i < notice_num; i++){
    var li = document.createElement('li');
    li.innerHTML = notice_items[i];
    notice_list.appendChild(li);
}

setInterval(function(){
    var first_li = notice_list.firstElementChild;
    notice_list.removeChild(first_li);
    var li = document.createElement('li');
    var random_num = Math.floor(Math.random()*notice_num);
    li.innerHTML = notice_items[random_num];
    notice_list.appendChild(li);
}, interval);

其中,firstElementChild 方法获取公告列表的第一个子元素,removeChild 方法删除该子元素,createElement 方法创建新的 li 元素并插入公告内容,random_num 表示随机的公告内容下标。

示例

示例1

公告内容固定展示,每 3 秒钟自动滚动。

演示效果:https://codepen.io/xiaoyunfeixue/pen/LYpyjWG

示例2

公告内容可随机变化,每 5 秒钟自动滚动。

演示效果:https://codepen.io/xiaoyunfeixue/pen/gOryExR

以上是 JS 实现公告自动滚动的完整攻略和示例说明。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js实现公告自动滚动 - Python技术站

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • 使用canvas生成含有微信头像的邀请海报没有微信头像问题

    使用Canvas生成含有微信头像的邀请海报是一项常见的需求,当中有时会遇到生成海报时,无法正确显示微信头像的问题。基于此,我编写了以下攻略来帮助您解决该问题。 常见问题分析 微信头像无法正确显示原因 微信头像无法正确显示,通常情况下是由于CORS的限制所导致的。在浏览器中,脚本的跨源HTTP请求通常会受到同源策略的限制,因此无法获取其他网站的数据。而我们在使…

    JavaScript 2023年6月11日
    00
  • JS中DOM元素的attribute与property属性示例详解

    关于“JS中DOM元素的attribute与property属性示例详解”,我们可以从以下几个方面进行说明: 一、什么是DOM元素的attribute和property? DOM元素可以看做是一个JS对象,它有很多属性和方法,其中包括两个比较容易混淆的属性,分别是attribute和property。 attribute是DOM元素具有的属性,就是标签上的属…

    JavaScript 2023年6月10日
    00
  • JavaScript中Window对象的属性及事件

    关于JavaScript中Window对象的属性及事件,我可以给你提供以下完整攻略。 Window对象 Window对象代表浏览器的窗口。窗口对象是全局对象,即它在全局作用域下可用,而且每个窗口都有一个Window对象。在浏览器中打开的每个页面和每个框架都有自己的Window对象。 Window的属性 Window的位置和尺寸 Window对象有一些属性,这…

    JavaScript 2023年5月27日
    00
  • 微信小程序页面传多个参数跳转页面的实现方法

    以下是关于“微信小程序页面传多个参数跳转页面的实现方法”的详细攻略。 1. 基础知识:微信小程序页面传参 在微信小程序中,页面跳转时可以使用wx.navigateTo()方法来进行页面跳转,同时也可以使用wx.redirectTo()等其他相关方法来进行页面跳转。对于页面跳转传参,一般的方法是使用URL参数传递,例如: wx.navigateTo({ url…

    JavaScript 2023年6月11日
    00
  • 纯JS打造网页中checkbox和radio的美化效果

    让我来详细讲解一下“纯JS打造网页中checkbox和radio的美化效果”的完整攻略。 1. 美化checkbox 1.1 隐藏原生checkbox 首先,需要隐藏原生的checkbox,在CSS文件中添加以下样式: input[type="checkbox"] { visibility: hidden; position: absol…

    JavaScript 2023年6月11日
    00
  • JavaScript闭包和回调详解

    JavaScript闭包和回调是JavaScript编程中重要的概念,下面我会详细讲解这两个概念以及如何使用它们。 什么是闭包? 在JavaScript中,函数内部的作用域可以访问函数外部的作用域。而且,当外部函数执行完毕后,其内部的变量通常会被销毁。但是,如果在内部函数中定义了一个新的闭包函数并返回它,那么这个闭包函数将会保留对其父函数的词法环境的引用,因…

    JavaScript 2023年6月10日
    00
  • 微信JSSDK调用微信扫一扫功能的方法

    针对您提供的话题,我来详细讲解一下微信JSSDK调用微信扫一扫功能的方法的完整攻略。 一、前置准备 要完成微信JSSDK调用微信扫一扫功能,需要提前完成以下几个步骤: 申请微信公众号。在微信公众平台上申请并审核通过公众号。 拥有有效的微信公众号开发者身份。在微信公众平台上注册并审核通过开发者账号,并进行开发者认证。 获得合法的微信JS-SDK权限。即在微信公…

    JavaScript 2023年6月10日
    00
  • php+xml结合Ajax实现点赞功能完整实例

    这里是详细的“php+xml结合Ajax实现点赞功能完整实例”的攻略。 简介 在Web开发中,点赞功能是非常常见的需求。本攻略将使用PHP+XML+Ajax的组合,完成一个基本的点赞功能。其中,PHP用于处理请求,XML用于存储数据,Ajax用于异步更新网页。 处理请求 首先,需要在服务器端处理点赞请求。这里我们假设有一个like.php文件,用于接收请求并…

    JavaScript 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部