当前位置: 首页 > article >正文

原生JS和CSS,HTML实现开屏弹窗

开屏弹窗常应用于打开游戏,或者打开网站的时候,跳出来在正中间,来显示一些信息,并可以设置今日不再显示

CSS代码如下

<style>
    #box {
      width: 100vw;
      height: 100vh;
      background-color: rgba(0, 0, 0, 0.2);
      position: relative;
      display: none;
    }

    .alerts {
      width: 250px;
      height: 400px;
      background-color: pink;
      position: relative;
      left: 20%;
      top: 10%;
    }

    h1 {
      color: red;
      text-align: center;
      padding-top: 20px;
      font-family: KaiTi;
    }

    #contents {
      height: 100px;
      width: 350px;
      margin-left: 10%;
      overflow-x: hidden;
      overflow-y: scroll;
      margin-top: 40%;
      color: black;

    }

    .contents_box {
      height: 300px;
      width: 400px;
      border: 1px solid pink;
      margin: auto;
      text-align: center;
      background-image: url(/img/q.jpeg);
      background-size: 120%;
      background-repeat: no-repeat;
      border-radius: 15%;
    }

    .result {
      text-align: right;
      margin-top: 20px;

    }

    .btn {
      width: 100px;
      height: 60px;
      line-height: 60px;
      margin: 40px auto;
      border: 1px solid pink;
      border-radius: 15%;
      color: white;
      text-align: center;
      background-color: purple;
      transition-duration: 0.5s;
    }

    .btn:hover {
      background-color: white;
      color: black;
      font-family: KaiTi;
      padding-top: 5px;
    }

    .confrim div {
      margin-bottom: 5px;
    }

    .pic_tree img {
      width: 100px;
      height: 100px;
      position: absolute;
      top: 15px;
    }

    .pic img {
      width: 50px;
      height: 50px;
      margin: auto;
      position: absolute;
    }

    .pic {
      width: 50px;
      height: 50px;
      margin-left: 150px;
      position: absolute;
    }
  </style>

以下为HTML代码:

<!-- 遮罩层 -->
  <div id="box">
    <!-- 圣诞树 -->
    <div class="pic_tree"><img src="/img/圣诞树.png" alt=""></div>
    <!-- 公告层 -->
    <div id="alerts">
      <!-- 公告头 -->
      <h1>圣诞快乐</h1>
      <!-- 公告内容盒子 -->
      <div class="contents_box">
        <div id="contents">
          <p>111111111</p>
        </div>
      </div>
      <div class="result"><input type="checkbox" id="results" />今日不再显示</div>
      <div class="pic"><img src="/img/猫咪.png" alt=""></div>
      <div class="btn" onclick="breakAlert()">我知道了</div>

    </div>
  </div>

注:代码内的图片可能会失效,仅仅是装饰作用,可以忽略或者删除

JS代码如下:

<script>
    //获得最外面的大盒子
    let box = document.getElementById(`box`);
    //获得内容
    let content = document.getElementById('contents');
    //获得今日不再显示的复选框
    let resultst = document.getElementById('results');
    let obj = {
      contents: '《敕勒歌》是南北朝时期流传于北朝的乐府民歌,
一般认为是由鲜卑语译成汉语的诗作。
此诗歌咏了北国草原壮丽富饶的风光,
抒写敕勒人热爱家乡热爱生活的豪情。
开头两句交代敕勒川位于高耸云霄的阴山脚下,
将草原的背景衬托得十分雄伟。接着两句用“穹庐”作比喻,
说天空如蒙古包,盖住了草原的四面八方,
以此来形容极目远望,天野相接,无比壮阔的景象。
最后三句描绘了一幅水草丰盛、牛羊肥壮的草原全景图。
有静有动,有形象,有色彩。全诗风格明朗豪爽,
境界开阔,音调雄壮,语言明白如话,艺术概括力极强
,受到历代文论家和文学史论著的好评。对它的学术研究,经久不衰。`'
    };
    //将对象的内容里的值填入content中
    content.innerHTML = obj.contents;
    //判断当本地存储的这个时间小于现在的时间时,且本地存储存在的时候
    if (localStorage.getItem('times') < + new Date() && sessionStorage.getItem('status') != 1) {
      //显示这个盒子弹窗(弹窗默认为隐藏)
      box.style.display = 'block';
    }
    //定义一个函数为breakAlert,将他绑定在“我知道了”按钮上
    function breakAlert() {
      //即当复选框被选中的时候,为true
      if (resultst.checked == true) {
        //设置一个本地存储,数值为当前时间+1天,即明天的当前时间
        localStorage.setItem('times', +new Date() + 24 * 60 * 60 * 1000);
      }
      //并且设置一个临时储存,名为“status”,值为1
      sessionStorage.setItem('status', `1`);
      //同时将盒子设为隐藏
      box.style.display = 'none';
    }
  </script>

代码内的obj仅为示例,后续可更改为任意数据或者直接从其他地方引用,本篇文章仅仅在前端并未与其他服务器等交互的前提下,使用原生JS和CSS,HTML来完成类似的开屏弹窗示例,后续可更改CSS样式代码让样式变得更好看


http://www.kler.cn/a/403220.html

相关文章:

  • C++标准模板库 -- map和set
  • 不需要双手离开键盘 vscode
  • 【前端知识】nodejs项目配置package.json深入解读
  • Ubuntu20.04从零安装IsaacSim/IsaacLab
  • 音频信号采集前端电路分析
  • Spring Cloud Alibaba、Spring Cloud 与 Spring Boot各版本的对应关系
  • 快速简单的视频下载器——lux
  • 部门管理系统功能完善(删除部门、添加部门、根据 ID 查询部门 和 修改部门)
  • 思考Redis的用途 2024-11-19
  • 【数据结构】—— 时间复杂度、空间复杂度
  • 依赖管理(go mod)
  • Android开发实战班 - 网络编程 - WebSocket 实时通信
  • 数据结构-堆排序笔记
  • 本草纲目数字化:Spring Boot在中药实验管理中的应用
  • 【Pytorch】torch.utils.data模块
  • .NET 9与C# 13革新:新数据类型与语法糖深度解析
  • 【课堂笔记】隐私计算实训营第四期:匿踪查询PIR
  • 【软件测试】自动化常用函数
  • 拼多多式社交裂变在欧美市场的困境与突破:Web3 增长的新思考
  • Spring Boot核心概念:应用配置
  • 企事业单位的敏感数据怎么保护比较安全?
  • 嵌入式学习-C嘎嘎-Day03
  • 单片机学习笔记 1. 点亮一个LED灯
  • 创建型设计模式(模版方法、观察者模式、策略模式)
  • 网络安全实施方案
  • 关联度分析、灰色预测GM(1,1)、GM(1,1)残差模型——基于Python实现