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日

相关文章

  • javascript定义函数的方法

    下面是关于JavaScript定义函数的方法的完整攻略: 1. 常规函数定义 最常见的JavaScript函数定义方式是使用function关键字。 function functionName(parameter1, parameter2, …parameterN) { // 函数体 return returnValue; } 其中: functionN…

    JavaScript 2023年5月27日
    00
  • Javascript实现数组中的元素上下移动

    下面是“Javascript实现数组中的元素上下移动”的完整攻略: 1. 实现思路 首先需要获取要移动的元素和移动方向; 然后通过数组中splice方法实现元素位置的上移或下移; 最后需要对移动后的新数组进行操作。 2. 具体实现 2.1 上移元素 function arrayMoveUp(arr, index) { if (index == 0) { re…

    JavaScript 2023年5月27日
    00
  • JavaScript 中的输出数据多种方式

    JavaScript 中的输出数据多种方式,下面介绍几种常用方式: console.log() console.log() 是在浏览器控制台输出信息的最常用方式之一,可以输出字符串、数字、布尔值等,也可以输出对象或数组。示例如下: console.log(‘Hello, World!’); // 输出字符串 console.log(123); // 输出数字…

    JavaScript 2023年5月28日
    00
  • JS操作iframe里的dom(实例讲解)

    关于JS操作iframe里的dom,以下是完整攻略: 1. iframe简介 iframe是HTML中嵌入其他HTML页面的标签,即在当前页面内嵌入并展示另一个HTML页面。它可以是跨域的,也可以是同域的。在开发中,经常会用到iframe来展示一些独立的组件或页面。 2. JS操作iframe 在父页面内,我们可以通过JS来操作iframe内部的DOM元素。…

    JavaScript 2023年6月10日
    00
  • js字符串处理之绝妙的代码

    下面我将详细讲解“js字符串处理之绝妙的代码”这个主题,帮助你了解这个主题的内容和示例。 什么是 JavaScript 字符串处理? JavaScript 是一种具有强大字符串处理能力的编程语言。字符串作为 JavaScript 中最常见的数据类型之一,经常需要被处理和操作。JavaScript 提供了一组内置的字符串方法,用于处理和操作字符串。 常见的字符…

    JavaScript 2023年5月28日
    00
  • 详解JS内存空间

    下面是详解JS内存空间的完整攻略。 什么是JS内存空间 JS内存空间是指JS程序运行时候所使用的内存区域。这个内存区域分为两个部分:栈内存和堆内存。在JS程序运行时,变量和函数都要被存储在内存空间中,以便被调用和使用。 栈内存和堆内存 栈内存 栈内存是以FIFO(先进先出)的方式存储数据的,它的存储方式和变量的生命周期有关系。当一个函数被调用时,会自动在栈内…

    JavaScript 2023年6月11日
    00
  • DOM 基本方法

    DOM(Document Object Model,文档对象模型)是一套对 HTML 和 XML 文档的编程接口,它把整个文档抽象成一组“节点”和“对象”结构(包括元素、属性、文本等),开发者可以利用 DOM API 对页面进行增删改查等操作。 DOM 的基本方法主要有以下几类: 1. 获取元素对象 getElementById() getElementBy…

    JavaScript 2023年6月10日
    00
  • 基于Two.js实现星球环绕动画效果的示例

    以下是 “基于Two.js实现星球环绕动画效果的示例”的完整攻略: 1. Two.js简介 Two.js是一款轻量级的渲染工具库,可以轻松使用它来创建2d图形和动画。 2. 创建场景和画布 这个示例的第一步是使用Two.js创建一个场景和画布。 // 创建画布 var two = new Two({ fullscreen: true, autostart: …

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