当前位置:首页 > 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分组实现

分组实现方法 在JavaScript中,可以通过多种方式实现数组或对象的分组操作。以下是几种常见的方法: 使用Array.prototype.reduce() 通过reduce方法可以轻松实现数组分…

js 实现链表

js 实现链表

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的指针。与数组不同,链表在内存中是非连续存储的,插入和删除操作效率较高。 链表的实现 在 JavaScrip…

js实现点击显示和隐藏

js实现点击显示和隐藏

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

vue实现js休眠

vue实现js休眠

实现 JavaScript 休眠的方法 在 Vue 中实现 JavaScript 休眠(延迟执行)可以通过以下方式实现。由于 JavaScript 本身没有内置的 sleep 函数,通常使用 Prom…

js实现视口

js实现视口

js实现视口检测的方法 使用JavaScript检测元素是否进入视口(viewport)可以通过Intersection Observer API或手动计算元素位置实现。以下是两种常见方法: Int…

js实现文字滚动

js实现文字滚动

实现文字滚动的几种方法 使用CSS动画实现滚动 通过CSS的@keyframes和transform属性可以实现平滑的文字滚动效果。 <style> .scroll-text { w…