以下是改进后的代码:

function showQrcode(qrcodeUrl) { $('#qrcode-img').attr('src', qrcodeUrl); $('#qrcode-modal').css('display', 'flex'); $('#qrcode-modal').on('click', function(e) { if (e.target.id === 'qrcode-modal') { $('#qrcode-modal').css('display', 'none'); } }); $('#qrcode-modal .btn-close').on('click', function(e) { e.preventDefault(); $('#qrcode-modal').css('display', 'none'); }); $(window).on('resize', function() { $('#qrcode-modal').css({ top: ($(window).height() - $('#qrcode-modal').outerHeight()) / 2 + 'px', left: ($(window).width() - $('#qrcode-modal').outerWidth()) / 2 + 'px' }); }).resize(); }

解释:

  1. 将原来的 ('#qrcode-modal').show(); 改为 $('#qrcode-modal').css('display', 'flex');,这样可以使用 flex 布局让弹出框在屏幕中央。

  2. 添加一个点击空白处关闭弹出框的逻辑。当点击弹出框之外的区域时,判断点击事件的目标元素是否是弹出框本身,如果是则关闭弹出框。

  3. 添加一个 “知道了” 按钮的逻辑。给按钮添加一个类名 .btn-close,当点击按钮时,关闭弹出框。

  4. 添加一个窗口大小改变时重新居中的逻辑。当窗口大小改变时,重新计算弹出框的位置并居中显示

这段代码的js写的不行 弹出框要有按钮知道了和点击空白处而且弹出要居中function showQrcodeqrcodeUrl #qrcode-imgattrsrc qrcodeUrl; #qrcode-modalshow;layui-layer-close layui-layer-shadeclickfunction #qrcode-modalhide;;

原文地址: https://www.cveoy.top/t/topic/dS0D 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录