鱼C论坛

 找回密码
 立即注册
查看: 1317|回复: 6

[经验总结] JS功能分享(弹窗关闭&点击遮罩层关闭关闭)

[复制链接]
发表于 2022-2-16 14:51:41 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 yanghongchen666 于 2022-2-16 14:53 编辑

思路流程:

获取元素:
        1. 弹窗按钮
        2. 弹窗
        3. 弹窗包裹层
        4. 关闭按钮

添加事件:

        打开弹窗
  1. 给弹窗按钮添加onclick事件,当点击弹窗按钮的时候给登录弹窗添加一个名为show的class,使用classList.add进行添加,如果使用className则会覆盖当前的class

        遮罩层关闭弹窗
  2. 给登录弹窗添加onclick事件,使用classList.remove移除弹窗身上show这个class
                注意: 这里需要关闭事件冒泡,不然点击登录窗口任意位置都会关闭

        关闭登录弹窗事件冒泡
  3. 给弹窗包裹层添加点击事件,传入event参数,用event.stopPropagation();关闭事件冒泡

        关闭按钮关闭弹窗
4.  给关闭按钮添加onclick事件,当点击发生移除弹窗身上的show这个class



代码实现:
  1. //登录
  2. (function(){
  3.     //获取元素
  4.     var login = document.querySelector('.login');
  5.     var loginBox = document.getElementById("loginBox");
  6.     var wrap = document.querySelector("#loginBox .wrap");
  7.     var closeBtn = document.querySelector("#loginBox .close");

  8.     login.onclick = () => loginBox.classList.add('show');   //点击登录显示弹窗
  9.     loginBox.onclick = closeBtn.onclick =() => loginBox.classList.remove('show'); //关闭登录显示弹窗
  10.     //只有一个参数可以省略括号
  11.     wrap.onclick = ev => ev.stopPropagation(); //阻止事件传递
  12.    
  13. })();
复制代码

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-2-16 14:54:47 | 显示全部楼层
争取每周更新一个!!代码实现的部分用的是部分es6的写法原生的写法后续会更新上 记录一下比较使用的js功能顺便给鱼油们发发福利~如果有什么错误欢迎大家在评论区里指出,一起交流呀~ 大佬勿喷
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-16 14:59:53 | 显示全部楼层

回帖奖励 +5 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-2-16 15:23:29 | 显示全部楼层

回帖奖励 +5 鱼币

感谢分享!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-16 15:32:57 | 显示全部楼层

回帖奖励 +5 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-2-17 00:19:13 | 显示全部楼层

回帖奖励 +5 鱼币

6666666666666666666666666
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-17 13:39:35 | 显示全部楼层

回帖奖励 +5 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 16:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表