html+css+js实现Notification 通知
实现效果:

代码实现:
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Notification 通知</title><style>*{padding: 0;margin: 0;box-sizing: border-box;}.source{display: flex;margin-top: 50px;margin-left: 50px;width: 870px;height: 80px;padding: 24px;border: 1px solid #ecf5ff;}button{width: 110px;height:40px;margin-right: 20px;color: #606266;border: 1px solid #c0c4cc;background-color: #fff;border-radius: 3px;}button:hover{border: 1px solid #409eff;color:#409eff ;}button.active{border: 1px solid #409eff;color:#409eff ;}.modal-container {position: fixed;top: 20px;right: 20px;width: 330px;}.modal{width: 330px;border: 1px solid #c0c4cc;padding: 14px 24px 14px 18px;border-radius: 5px;margin-bottom: 14px;transform: translateX(350px);transition: transform 0.3s ease-in-out;}.open{transform: translateX(0);}.modal .header{display: flex;justify-content: space-between;font-weight: 700;font-size: 16px;color: #303133;padding-bottom: 5px;}i{cursor: pointer;font-style: normal;font-weight: 300;color: #606266;}.modal .footer{color: #606266;font-size: 14px;}</style>
</head>
<body><div class="source"><button class="close">可自动关闭</button><button class="unclose">不会自动关闭</button></div><div class="modal-container"><!-- 模态框将被动态添加到这个容器中 --><!-- <div class="modal"><div class="header">标题名称<i>X</i></div><div class="footer">这是提示文案这是提示文案这是提示文案这是提示文案这是提示文案这是提示文案这是提示文案这是提示文案</div></div> --></div><script>// 1.Modal构造函数封装模态框function Modal(title='',message=''){// console.log(title,message);// 创建modal模态框盒子// 1.1创建div标签this.modalBox=document.createElement('div')// 1.2给div标签添加modal类this.modalBox.className='modal'// 1.3给modal盒子内部填充两个div标签this.modalBox.innerHTML=`<div class="header">${title} <i>X</i></div><div class="footer">${message} </div>`// console.log(this.modalBox);}new Modal('提示','这是一条不会自动关闭的消息')// 2.给构造函数原型对象身上挂载open方法Modal.prototype.open=function(){document.querySelector('.modal-container').append(this.modalBox);setTimeout(() => {this.modalBox.classList.add('open');}, 300);// 点击关闭this.closeBtn=this.modalBox.querySelector('.close-btn');this.modalBox.querySelector('i').addEventListener('click', () => {this.close();});}// close方法Modal.prototype.close=function(){this.modalBox.classList.remove('open');setTimeout(() => {this.modalBox.remove();}, 300); // 等待动画完成后移除元素}// 绑定点击事件document.querySelector('.close').addEventListener('click', function() {const modal = new Modal('标题名称','这是提示文案这是提示文案这是提示文案这是提示文案这是提示文案这是提示文案这是提示文案这是提示文案');modal.open();// 设置模态框在3秒后自动关闭setTimeout(() => {modal.close();}, 3000);});document.querySelector('.unclose').addEventListener('click',function(){const unclose=new Modal('提示','这是一条不会自动关闭的消息')unclose.open()})</script>
</body>
</html>
相关文章:
html+css+js实现Notification 通知
实现效果: 代码实现: <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Notif…...
【Linux】拆分详解 - 常见指令和权限理解
文章目录 前言一、常用指令1. 基本查看与路径跳转1.1文件与目录1.2 ls 指令(显示文件)1.3 pwd (查看当前目录)1.4 clear (清屏)1.5 whoami (查看用户名)1.6 cd(跳转路径&…...
UniHttp 框架,请求http接口
项目案例下载地址: https://download.csdn.net/download/jinhuding/89902024 1.快速开始 2.1引入依赖 <dependency><groupId>io.github.burukeyou</groupId><artifactId>uniapi-http...
C++20中头文件ranges的使用
<ranges>是C20中新增加的头文件,提供了一组与范围(ranges)相关的功能,此头文件是ranges库的一部分。包括: 1.concepts: (1).std::ranges::range:指定类型为range,即它提供开始迭代器和结束标记(it provides a begin iterato…...
设计一个html+css+js的注册页,对于注册信息进行合法性检测
综合使用HTML、JavaScript和CSS进行注册页面设计,实现以下若干功能: 注意整个页面的色调和美观使用FramesetTable布局(div也可)对用户ID和用户名、口令不符合条件及时判断对口令不一致进行及时判断(34的及时判断&#…...
语音识别——使用Vosk进行语音识别
文章目录 前言一、Vosk模型1.准备好所需要的语音包2.下载使用 二、使用示例1.文件读取示例2.结合麦克风演示 总结 前言 如何编译Vosk请参照之前的文章,ubuntu编译kaldi和vosk Vosk是语音识别开源框架,支持二十种语言 - 中文,英语࿰…...
element ui中el-image组件查看图片的坑
比如说上传组件使用el-image-viewer组件去看,如果用错了,你会发现,你每次只能看一张图片 <template><div><el-upload action="#" list-type="picture-card" :auto-upload="false" :file-list="fileList"@change=&qu…...
LabVIEW水质监测系统
在面对全球性的海洋污染问题时,利用先进技术进行水质监测成为了保护海洋环境的关键手段之一。开发了一种基于LabVIEW的海洋浮标水质监测系统,该系统能够实时监测并评估近海水域的水质状况,旨在为海洋保护和污染防治提供科技支持。 项目背景 …...
SpringMVC之 文件上传和下载
1. 文件上传 1.1 前端注意事项 文件上传操作,前端的表单项需要如下三项设置: (1)input标签的type属性应设置为file,并且注意不要在input标签中设置value属性,因为这可能导致文件上传不成功; …...
LeetCode Hot 100:二分查找
LeetCode Hot 100:二分查找 35. 搜索插入位置 思路 1:lower_bound class Solution { public:int searchInsert(vector<int>& nums, int target) {return lower_bound(nums.begin(), nums.end(), target) - nums.begin();} };思路 2…...
打包方式-jar和war的区别
1、jar包 JAR包是类的归档文件,与平台无关的文件格式,其实jar包就是java的类进行编译生成的class文件进行打包的压缩包。 JAR以ZIP文件格式为基础,与ZIP不同的是,JAR不仅用于压缩和发布,还用于部署和封装库、组件和插…...
【论文+源码】基于spring boot的垃圾分类网站
创建一个基于Spring Boot的垃圾分类网站涉及多个步骤,包括环境搭建、项目创建、数据库设计、后端服务开发、前端页面设计等。下面我将引导您完成这个过程。 第一步:准备环境 确保您的开发环境中安装了以下工具: Java JDK 8 或更高版本Mav…...
【C++ STL 模板类】pair 键值对
文章目录 【 1. pair 对象的创建 】【 2. pair 对象的赋值 】【 3. pair 对象的比较 】【 4. pair对象成员的互换】 C STL 标准库提供了 pair 类模板,专门用来将 2 个普通元素 first 和 second(可以是 C 基本数据类型、结构体、类自定的类型)…...
paddleocr使用FastDeploy 部署工具部署 rknn 模型
在 PC 端转换 pdmodel 模型为 rknn 模型和在板端使用百度飞浆开发的 FastDeploy 部署工具部署 rknn 模型 以下内容是在 PC 端系统为 Ubuntu20.04,板端系统为ubuntu20.04 的环境下实现的 描述: 官网地址 rknn_zoo RKNPU2_SDK …...
Apple Vision Pro市场表现分析:IDC最新数据揭示的真相
随着AR/VR技术逐渐成熟并被更多消费者接受,2024年第二季度(Q2)成为这一领域的一个重要转折点。根据国际数据公司(IDC)发布的最新报告,整个AR/VR市场在本季度经历了显著的增长。接下来,我们将深入探讨Apple Vision Pro在这股增长浪潮中的具体表现。 市场背景 2024年Q2,…...
Mybatis-04.入门-JDBC
一.JDBC 二.原始的JDBC程序代码 (不做要求) Test public void testJdbc() throws Exception {//1. 注册驱动Class.forName("com.mysql.cj.jdbc.Driver");//2. 获取连接对象String url "jdbc:mysql://localhost:3306/mybatis";Str…...
拥抱云开发的未来:腾讯云数据库、云模板与AI智能化的应用场景探索
本文目录: 💡前言:技术的边界在不断延展🌟目录🌈什么是腾讯云云开发?💾云数据库:让数据成为开发的稳固基石🥑数据,不再只是数据 🛠云模板…...
新手铲屎官求推荐,噪音低的宠物空气净化器应该用哪款
当初选择养橘猫就是因为我听到有人说橘猫不容易掉毛才养的,谁知道养了之后和传闻中的不一样,真正的让我明白了什么叫“眼见为实”。 主要是猫掉毛就掉毛,只要我能清理的我都会清理,只要能保证养猫的同时还能保持家里卫生干净就行…...
玄机平台-应急响应-webshell查杀
首先xshell连接 然后进入/var/www/html目录中,将文件变成压缩包 cd /var/www/html tar -czvf web.tar.gz ./* 开启一个http.server服务,将文件下载到本地 python3 -m http.server 放在D盾中检测 基本可以确认木马文件就是这四个 /var/www/html/shell.p…...
LeetCode Hot 100:图论
LeetCode Hot 100:图论 200. 岛屿数量 思路 1:深度优先搜索 class Solution { private:const int dx[4] {-1, 0, 1, 0};const int dy[4] {0, 1, 0, -1};public:int numIslands(vector<vector<char>>& grid) {if (grid.empty())retu…...
利用ngx_stream_return_module构建简易 TCP/UDP 响应网关
一、模块概述 ngx_stream_return_module 提供了一个极简的指令: return <value>;在收到客户端连接后,立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量(如 $time_iso8601、$remote_addr 等)&a…...
逻辑回归:给不确定性划界的分类大师
想象你是一名医生。面对患者的检查报告(肿瘤大小、血液指标),你需要做出一个**决定性判断**:恶性还是良性?这种“非黑即白”的抉择,正是**逻辑回归(Logistic Regression)** 的战场&a…...
多场景 OkHttpClient 管理器 - Android 网络通信解决方案
下面是一个完整的 Android 实现,展示如何创建和管理多个 OkHttpClient 实例,分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...
8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...
uni-app学习笔记二十二---使用vite.config.js全局导入常用依赖
在前面的练习中,每个页面需要使用ref,onShow等生命周期钩子函数时都需要像下面这样导入 import {onMounted, ref} from "vue" 如果不想每个页面都导入,需要使用node.js命令npm安装unplugin-auto-import npm install unplugin-au…...
在Ubuntu中设置开机自动运行(sudo)指令的指南
在Ubuntu系统中,有时需要在系统启动时自动执行某些命令,特别是需要 sudo权限的指令。为了实现这一功能,可以使用多种方法,包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法,并提供…...
Spring AI 入门:Java 开发者的生成式 AI 实践之路
一、Spring AI 简介 在人工智能技术快速迭代的今天,Spring AI 作为 Spring 生态系统的新生力量,正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务(如 OpenAI、Anthropic)的无缝对接&…...
【HTTP三个基础问题】
面试官您好!HTTP是超文本传输协议,是互联网上客户端和服务器之间传输超文本数据(比如文字、图片、音频、视频等)的核心协议,当前互联网应用最广泛的版本是HTTP1.1,它基于经典的C/S模型,也就是客…...
Swagger和OpenApi的前世今生
Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章,二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑: 🔄 一、起源与初创期:Swagger的诞生(2010-2014) 核心…...
无人机侦测与反制技术的进展与应用
国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机(无人驾驶飞行器,UAV)技术的快速发展,其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统,无人机的“黑飞”&…...
