0


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

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

CSS代码如下

  1. <style>
  2. #box {
  3. width: 100vw;
  4. height: 100vh;
  5. background-color: rgba(0, 0, 0, 0.2);
  6. position: relative;
  7. display: none;
  8. }
  9. .alerts {
  10. width: 250px;
  11. height: 400px;
  12. background-color: pink;
  13. position: relative;
  14. left: 20%;
  15. top: 10%;
  16. }
  17. h1 {
  18. color: red;
  19. text-align: center;
  20. padding-top: 20px;
  21. font-family: KaiTi;
  22. }
  23. #contents {
  24. height: 100px;
  25. width: 350px;
  26. margin-left: 10%;
  27. overflow-x: hidden;
  28. overflow-y: scroll;
  29. margin-top: 40%;
  30. color: black;
  31. }
  32. .contents_box {
  33. height: 300px;
  34. width: 400px;
  35. border: 1px solid pink;
  36. margin: auto;
  37. text-align: center;
  38. background-image: url(/img/q.jpeg);
  39. background-size: 120%;
  40. background-repeat: no-repeat;
  41. border-radius: 15%;
  42. }
  43. .result {
  44. text-align: right;
  45. margin-top: 20px;
  46. }
  47. .btn {
  48. width: 100px;
  49. height: 60px;
  50. line-height: 60px;
  51. margin: 40px auto;
  52. border: 1px solid pink;
  53. border-radius: 15%;
  54. color: white;
  55. text-align: center;
  56. background-color: purple;
  57. transition-duration: 0.5s;
  58. }
  59. .btn:hover {
  60. background-color: white;
  61. color: black;
  62. font-family: KaiTi;
  63. padding-top: 5px;
  64. }
  65. .confrim div {
  66. margin-bottom: 5px;
  67. }
  68. .pic_tree img {
  69. width: 100px;
  70. height: 100px;
  71. position: absolute;
  72. top: 15px;
  73. }
  74. .pic img {
  75. width: 50px;
  76. height: 50px;
  77. margin: auto;
  78. position: absolute;
  79. }
  80. .pic {
  81. width: 50px;
  82. height: 50px;
  83. margin-left: 150px;
  84. position: absolute;
  85. }
  86. </style>

以下为HTML代码:

  1. <!-- 遮罩层 -->
  2. <div id="box">
  3. <!-- 圣诞树 -->
  4. <div class="pic_tree"><img src="/img/圣诞树.png" alt=""></div>
  5. <!-- 公告层 -->
  6. <div id="alerts">
  7. <!-- 公告头 -->
  8. <h1>圣诞快乐</h1>
  9. <!-- 公告内容盒子 -->
  10. <div class="contents_box">
  11. <div id="contents">
  12. <p>111111111</p>
  13. </div>
  14. </div>
  15. <div class="result"><input type="checkbox" id="results" />今日不再显示</div>
  16. <div class="pic"><img src="/img/猫咪.png" alt=""></div>
  17. <div class="btn" onclick="breakAlert()">我知道了</div>
  18. </div>
  19. </div>

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

JS代码如下:

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

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

标签: css html javascript

本文转载自: https://blog.csdn.net/m0_75075881/article/details/143905596
版权归原作者 QTX18730 所有, 如有侵权,请联系我们删除。

“原生JS和CSS,HTML实现开屏弹窗”的评论:

还没有评论