js实现公告自动滚动

yizhihongxing

当我们在网站中需要展示一些公告信息时,如果公告内容比较多,可以通过实现公告自动滚动来达到更好的展示效果。下面是 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 数据类型详解 简介 JavaScript 是一种弱类型、动态类型的编程语言,数据类型非常多样化。本文将从基本数据类型、对象类型和特殊数据类型三个方面详细介绍 JavaScript 中的数据类型。 基本数据类型 数值型(Number) 数值型是 JavaScript 中最基本的数据类型。它可以表示整数和浮点数。JavaScript 使用 …

    JavaScript 2023年5月17日
    00
  • Javascript简写条件语句(推荐)

    当需要根据某个条件来执行不同的代码块时,我们可以使用条件语句来实现。在JavaScript中,有多种实现条件语句的方式,而本攻略将介绍一种简写条件语句的实现方式。 简写条件语句的语法 简写条件语句的语法基于三元运算符:condition ? expr1 : expr2。它具有以下结构: condition ? expr1 : expr2 这行代码的意思是,如…

    JavaScript 2023年5月28日
    00
  • JavaScript实现表单验证示例

    下面是针对“JavaScript实现表单验证示例”的完整攻略: 1. 表单验证的基本思路 前端表单验证的基本思路是,当用户提交表单时,先阻止表单的默认提交行为,然后通过JavaScript对表单进行内容的检测和验证,如果发现问题,则提示用户并阻止表单的提交。否则,允许表单进行提交操作。 通常,表单验证的实现流程如下: 针对表单的提交事件进行监听; 在提交事件…

    JavaScript 2023年6月10日
    00
  • 基于JavaScript实现仿京东图片轮播效果

    我会为你详细讲解如何基于JavaScript实现仿京东图片轮播效果的完整攻略。 1. 准备工作 在开始实现之前,需要先准备好以下内容:- 一份HTML文档,在其中包含轮播图片的标签- 用于存储图片的路径数组- 一个计时器用于定时切换图片- 两个按钮,分别用于切换到上一张或下一张图片 以下是一个简单的HTML文档示例,其中包含一张图片和两个按钮: <!D…

    JavaScript 2023年6月11日
    00
  • jquery.validate使用时遇到的问题

    下面是详细讲解jquery.validate使用时遇到的问题的攻略: 问题描述 在使用jquery.validate进行表单验证时,可能会遇到以下几个问题:1. 表单重复提交;2. 校验失败时无法获取错误信息;3. 重置表单时无法清除样式。 解决方案 1. 表单重复提交 为了避免用户重复提交表单,我们需要在第一次提交之后就禁用提交按钮。可以通过以下代码实现:…

    JavaScript 2023年6月10日
    00
  • jquery实现简单的表单验证

    下面是jQuery实现简单的表单验证的完整攻略: 1. 导入jQuery库文件 要使用jQuery,首先需要在页面头部导入jQuery库文件,可以从官网下载或直接使用CDN加速链接。示例: <head> <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jque…

    JavaScript 2023年6月10日
    00
  • 总结Node.js中的一些错误类型

    下面是关于总结Node.js中的一些错误类型的完整攻略: 错误类型 在Node.js使用过程中,我们会遇到多种错误类型,下面是一些常见的错误类型。 SyntaxError SyntaxError 是在JavaScript代码解析过程中发现的语法错误。通常,这种错误是因为代码中有一个或多个拼写错误或语法错误导致的。例如: if (mood === "…

    JavaScript 2023年5月28日
    00
  • JavaScript 巧学巧用

    JavaScript 巧学巧用完整攻略 JavaScript 是一种脚本语言,具有广泛的应用场景,尤其在 Web 开发中独树一帜。掌握 JavaScript 不仅可以增加开发效率,还可以开发出更加炫酷、交互性更强的网站和应用。本文将为大家介绍 JavaScript 巧学巧用的攻略,包括常用的技巧和使用示例。 1. 事件监听 事件监听是 JavaScript …

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