当前位置:首页 > JavaScript

js实现通知滚动

2026-02-02 15:11:13JavaScript

实现通知滚动的方法

使用JavaScript实现通知滚动可以通过多种方式完成,以下介绍几种常见的方法:

使用CSS动画和JavaScript控制

通过CSS的@keyframes定义滚动动画,JavaScript动态添加内容到滚动容器中。示例代码:

<div class="notification-scroll" id="notificationContainer"></div>
.notification-scroll {
  overflow: hidden;
  white-space: nowrap;
  animation: scroll 10s linear infinite;
}

@keyframes scroll {
  0% { transform: translateX(100%); }
  100% { transform: translateX(-100%); }
}
const container = document.getElementById('notificationContainer');
container.textContent = '这是一条滚动通知内容,可以动态更新';

使用setInterval实现手动滚动

通过定时器不断更新元素的scrollLeft属性实现滚动效果:

js实现通知滚动

const element = document.getElementById('notificationContainer');
let scrollPos = 0;

setInterval(() => {
  scrollPos += 1;
  element.scrollLeft = scrollPos;

  if (scrollPos >= element.scrollWidth - element.clientWidth) {
    scrollPos = 0;
  }
}, 20);

使用Marquee标签(不推荐但简单)

HTML原生提供了<marquee>标签,虽然已废弃但某些场景仍可使用:

<marquee behavior="scroll" direction="left">
  这是一条简单的滚动通知
</marquee>

使用第三方库

js实现通知滚动

考虑使用专门的通知库如Notyf或Toastr,它们内置了动画效果:

import { Notyf } from 'notyf';
const notyf = new Notyf({
  duration: 3000,
  position: {
    x: 'right',
    y: 'top',
  },
  ripple: true
});

notyf.success('这是一条会消失的通知');

实现无限循环滚动

对于需要无限循环的通知列表,可以采用克隆节点的方式:

const container = document.getElementById('notificationContainer');
const content = container.innerHTML;
container.innerHTML += content;

function scroll() {
  if (container.scrollLeft >= container.scrollWidth / 2) {
    container.scrollLeft = 0;
  } else {
    container.scrollLeft += 1;
  }
  requestAnimationFrame(scroll);
}

scroll();

响应式设计考虑

为确保在不同屏幕尺寸下正常显示,需要添加CSS媒体查询:

@media (max-width: 768px) {
  .notification-scroll {
    font-size: 14px;
    animation-duration: 15s;
  }
}

标签: 通知js
分享给朋友:

相关文章

vue实现js休眠

vue实现js休眠

Vue 中实现 JavaScript 休眠 在 Vue 中实现 JavaScript 休眠通常需要使用异步方式,以避免阻塞主线程。以下是几种常见方法: 使用 setTimeout 和 Promis…

css3结合js制作

css3结合js制作

CSS3 结合 JavaScript 制作动态效果 CSS3 和 JavaScript 结合可以实现丰富的动态效果,包括动画、交互和响应式设计。以下是几种常见的实现方式: CSS3 动画与 Java…

js实现

js实现

实现 JavaScript 功能的方法 在 JavaScript 中实现特定功能通常涉及多个步骤。以下是常见的实现方法: 基础语法和变量声明 使用 let 或 const 声明变量: let…

js实现倒计时

js实现倒计时

使用 setInterval 实现倒计时 通过 setInterval 定时器每秒更新剩余时间,适用于简单倒计时场景。 function countdown(seconds, callbac…

js实现图片上传

js实现图片上传

图片上传的基本实现 使用HTML的<input type="file">元素配合JavaScript的File API可以实现图片上传功能。HTML部分需要创建一个文件选择输入框和一个用于…

js 进度条的实现

js 进度条的实现

使用 HTML 和 CSS 创建基础进度条 HTML 结构可以简单使用一个 div 元素作为容器,内部嵌套另一个 div 表示进度: <div class="progress-contain…