当前位置:首页 > JavaScript

js实现公告

2026-03-14 00:13:53JavaScript

实现公告栏的 JavaScript 方法

滚动公告栏

使用 marquee 标签或通过 JavaScript 实现滚动效果。以下是纯 JavaScript 实现方案:

const announcement = document.getElementById('announcement');
let position = 0;

function scrollAnnouncement() {
  position -= 1;
  announcement.style.transform = `translateX(${position}px)`;

  if (position <= -announcement.offsetWidth) {
    position = window.innerWidth;
  }
  requestAnimationFrame(scrollAnnouncement);
}

scrollAnnouncement();

HTML 结构:

<div class="announcement-container">
  <div id="announcement">重要公告:系统将于今晚 20:00 进行维护升级</div>
</div>

CSS 样式:

.announcement-container {
  width: 100%;
  overflow: hidden;
  white-space: nowrap;
}
#announcement {
  display: inline-block;
  padding: 10px;
}

定时切换公告

通过数组存储多条公告,定时切换显示:

js实现公告

const announcements = [
  "新用户注册立享 50 元优惠券",
  "双十一活动预热开始",
  "系统维护通知:本周六 0:00-6:00"
];
let currentIndex = 0;
const announcementElement = document.getElementById('announcement');

function rotateAnnouncements() {
  currentIndex = (currentIndex + 1) % announcements.length;
  announcementElement.textContent = announcements[currentIndex];
}

setInterval(rotateAnnouncements, 3000);

带关闭按钮的公告栏

实现可关闭的公告栏组件:

document.getElementById('close-announcement').addEventListener('click', function() {
  document.getElementById('announcement-bar').style.display = 'none';
});

HTML 结构:

js实现公告

<div id="announcement-bar" class="announcement-bar">
  <span>紧急:服务器迁移可能导致短暂服务中断</span>
  <button id="close-announcement">×</button>
</div>

CSS 样式:

.announcement-bar {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  background: #ff6b6b;
  color: white;
  padding: 10px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
#close-announcement {
  background: none;
  border: none;
  color: white;
  font-size: 20px;
  cursor: pointer;
}

本地存储控制公告显示

使用 localStorage 控制公告显示频率:

if (!localStorage.getItem('announcementDismissed')) {
  document.getElementById('announcement').style.display = 'block';
}

document.getElementById('dismiss').addEventListener('click', function() {
  document.getElementById('announcement').style.display = 'none';
  localStorage.setItem('announcementDismissed', 'true');
});

响应式公告组件

结合 CSS 媒体查询和 JavaScript 实现响应式公告:

function checkScreenSize() {
  const announcement = document.getElementById('announcement');
  if (window.innerWidth < 768) {
    announcement.textContent = "移动端公告:APP下载享特权";
  } else {
    announcement.textContent = "桌面端公告:新版本已发布";
  }
}

window.addEventListener('resize', checkScreenSize);
checkScreenSize();

标签: 公告js
分享给朋友:

相关文章

js实现继承

js实现继承

原型链继承 通过将子类的原型指向父类的实例实现继承。子类实例可以访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Parent…

js 实现vue

js 实现vue

Vue.js 的基本实现 在 JavaScript 中实现 Vue.js 的核心功能,可以通过数据绑定、响应式系统和虚拟 DOM 来实现。以下是实现 Vue.js 核心功能的简化版本。 数据响应式系…

js实现类

js实现类

JavaScript 实现类的几种方式 JavaScript 是一种基于原型的语言,但在 ES6 之后引入了 class 语法糖,使得实现类更加直观。以下是几种常见的实现方式: 使用构造函数 传统的…

js实现复制到剪贴板

js实现复制到剪贴板

使用document.execCommand方法(传统方式,已废弃但部分浏览器仍支持) 该方法适用于旧版浏览器,但已被标记为废弃。执行前需确保文本已被选中: function copyToClipb…

js实现延迟

js实现延迟

实现延迟的方法 在JavaScript中,实现延迟操作有多种方式,以下是几种常见的方法: 使用setTimeout函数 setTimeout是JavaScript中最常用的延迟执行方法。它接受一个回…

js实现点击显示和隐藏

js实现点击显示和隐藏

实现点击显示和隐藏的JavaScript方法 使用classList.toggle切换类名 通过添加/移除CSS类控制元素的显示与隐藏,需提前在CSS中定义隐藏样式(如display: none)。…