当前位置:首页 > JavaScript

js公告系统的实现

2026-04-04 16:43:45JavaScript

公告系统的实现(JavaScript)

公告系统通常用于网站或应用中展示重要通知、更新或提示信息。以下是基于JavaScript的公告系统实现方法:

基础HTML结构

创建公告容器和关闭按钮:

<div id="announcement" class="announcement">
  <div class="announcement-content">
    <span>这是重要公告内容</span>
    <button id="close-btn">×</button>
  </div>
</div>

CSS样式设计

为公告添加基本样式:

.announcement {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  background-color: #f8f9fa;
  padding: 10px;
  box-shadow: 0 -2px 5px rgba(0,0,0,0.1);
  z-index: 1000;
}

.announcement-content {
  display: flex;
  justify-content: space-between;
  align-items: center;
  max-width: 1200px;
  margin: 0 auto;
}

#close-btn {
  background: none;
  border: none;
  font-size: 20px;
  cursor: pointer;
}

JavaScript功能实现

基本交互功能:

document.addEventListener('DOMContentLoaded', function() {
  const announcement = document.getElementById('announcement');
  const closeBtn = document.getElementById('close-btn');

  // 检查本地存储是否已关闭公告
  if(localStorage.getItem('announcementClosed') !== 'true') {
    announcement.style.display = 'block';
  }

  // 关闭公告并设置本地存储
  closeBtn.addEventListener('click', function() {
    announcement.style.display = 'none';
    localStorage.setItem('announcementClosed', 'true');
  });
});

高级功能扩展

  1. 多公告轮播:
    
    let currentAnnouncement = 0;
    const announcements = [
    "公告1: 系统维护通知",
    "公告2: 新功能上线",
    "公告3: 节日优惠活动"
    ];

function rotateAnnouncements() { const content = document.querySelector('.announcement-content span'); content.textContent = announcements[currentAnnouncement]; currentAnnouncement = (currentAnnouncement + 1) % announcements.length; }

setInterval(rotateAnnouncements, 5000);


2. 带时效的公告:
```javascript
// 检查公告是否过期
const announcementExpiry = '2023-12-31';
const currentDate = new Date().toISOString().split('T')[0];

if(currentDate <= announcementExpiry) {
  announcement.style.display = 'block';
}
  1. 从服务器获取公告:
    fetch('/api/announcements')
    .then(response => response.json())
    .then(data => {
     if(data.active) {
       document.querySelector('.announcement-content span').textContent = data.message;
       announcement.style.display = 'block';
     }
    });

响应式设计改进

添加媒体查询适应不同屏幕:

@media (max-width: 768px) {
  .announcement {
    padding: 8px 5px;
    font-size: 14px;
  }

  #close-btn {
    font-size: 16px;
  }
}

可访问性增强

添加ARIA属性:

js公告系统的实现

<div id="announcement" class="announcement" role="alert" aria-live="polite">
  <div class="announcement-content">
    <span id="announcement-text">这是重要公告内容</span>
    <button id="close-btn" aria-label="关闭公告">×</button>
  </div>
</div>

以上实现可根据实际需求进行组合和扩展,创建适合不同场景的公告系统。

标签: 公告系统
分享给朋友:

相关文章

vue实现家教系统

vue实现家教系统

Vue实现家教系统的关键步骤 项目初始化与配置 使用Vue CLI创建项目框架,安装必要依赖如Vue Router、Vuex和Axios。配置基础路由和状态管理结构,确保项目具备SPA特性。 用户认…

基于vue实现桌面系统

基于vue实现桌面系统

使用Vue构建桌面系统的方法 技术选型与框架整合 Vue本身是前端框架,构建桌面系统需要结合Electron或NW.js等跨平台桌面开发工具。Electron更为流行,适合与Vue深度集成。推荐使用v…

vue实现公告文字排版

vue实现公告文字排版

Vue 实现公告文字排版的方法 使用 CSS 控制文字样式 通过 CSS 可以轻松控制公告文字的字体、颜色、大小和对齐方式。在 Vue 的 <style> 部分或外部 CSS 文件中定义样…

php实现在线预约系统

php实现在线预约系统

数据库设计 创建一个MySQL数据库表存储预约信息,包含字段如id、name、email、phone、service_type、appointment_date、appointment_time、st…

java如何获取系统时间

java如何获取系统时间

获取当前系统时间的方法 在Java中获取系统时间有多种方式,以下列举几种常用方法: 使用 java.util.Date 类 Date currentDate = new Date(); System…

java 如何获取系统时间

java 如何获取系统时间

获取系统时间的常用方法 使用 java.time 包(Java 8及以上推荐) Java 8引入了新的日期时间API(java.time),提供了更简洁和线程安全的方式获取系统时间。 impor…