在网页上经常遇到需要等待很久的操作,比如导出报表等。为了预防用户点击其他操作或者多次点击同个功能,需要用遮罩层把页面或者操作区盖住,防止用户进行下一步操作,同时可以提高界面友好度,让用户知道操作正在执行。
$.fn.extend({ /** * 给元素添加遮罩层 * @param message {String} [可选]遮罩层显示内容 */ mask: function (message) { var $target = this, fixed = false, targetStatic = true; if (Object.prototype.toString.call(message) !== '[object String]' || !message) { //如果message为空或者不是字符串,则用默认的消息提示。 message = '请稍候。。。'; } if ($target.length === 0) { $target = $('body'); } else { if ($target.length > 1) { $target = $target.first(); } if ($target[0] === window || $target[0] === document) { $target = $('body'); } } if($target[0] === document.body){ fixed = true; } //如果目标元素已经有遮罩层,获取遮罩层 var old = $target.data('rhui.mask'); if (old) { old.$content.html(message); center($target, old.$content, fixed); return; } //如果被遮盖的元素是static,把元素改成relative if ($target.css('position') === 'static') { targetStatic = true; $target.css('position', 'relative'); } var $content, $overlay; if (fixed) { $overlay = $('<div class="rhui-mask" style="position:fixed;"></div>'); $content = $('<div class="rhui-mask-content" style="position:fixed;">' + message + '</div>'); } else { $overlay = $('<div class="rhui-mask"></div>'); $content = $('<div class="rhui-mask-content">' + message + '</div>'); } $overlay.appendTo($target); $content.appendTo($target); //显示遮罩层 $overlay.show(); $content.show(); //让遮罩层居中 center($target, $content, fixed); //把遮罩层信息添加到$target $target.data('rhui.mask', { fixed: fixed, $overlay: $overlay, $content: $content, targetStatic: targetStatic }); /** * 让遮罩层内容居中显示 * @param $target 被遮盖的元素 * @param $content 遮罩层内容元素 * @param fixed 遮罩层是否固定显示 */ function center($target, $content, fixed) { var $window, height = $content.outerHeight(true), width = $content.outerWidth(true); if (fixed) { //如果遮罩层固定显示,让遮罩层在window居中 $window = $(window); $content.css({ left: ($window.width() - width) / 2, top: ($window.height() - height) / 2 }); } else { //让遮罩层在$target中居中 $content.css({ left: ($target.width() - width) / 2, top: ($target.height() - height) / 2 }); } } }, /** * 取消遮罩层 */ unmask: function () { var $target; if (this.length === 0) { $target = $('body'); } else { $target = this.first(); if ($target[0] === window || $target[0] === document) { $target = $('body'); } } var data = $target.data('rhui.mask'); if (!data) { return; } //还原目标元素的position属性 if (data.targetStatic) { $target.css('position', 'static'); } data.$overlay.remove(); data.$content.remove(); $target.removeData('rhui.mask'); } });
插件样式由rhui-mask和rhui-mask-content类控制,rhui-mask是遮罩层样式,rhui-mask-content是遮罩层的提示内容样式。
/* 遮罩层样式 */ .rhui-mask { position: absolute; top: 0; right: 0; bottom: 0; left: 0; z-index: 9000; display: block; margin: 0; padding: 0; border-style: none; background-color: #777; opacity: 0.3; zoom: 1; filter: alpha(opacity=30); } /* 遮罩层显示内容样式 */ .rhui-mask-content { position: absolute; z-index: 9999; display: block; margin: 0; padding: 15px 20px; border: 2px solid rgb(109, 157, 215); background-color: #fff; color: blue; letter-spacing: 2px; font-weight: bold; font-size: 15px; cursor: wait; }
效果如图所示
页面调用完整代码
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>网页遮罩层的实现</title> <style type="text/css"> /* 遮罩层样式 */ .rhui-mask { position: absolute; top: 0; right: 0; bottom: 0; left: 0; z-index: 9000; display: block; margin: 0; padding: 0; border-style: none; background-color: #777; opacity: 0.3; zoom: 1; filter: alpha(opacity=30); } /* 遮罩层显示内容样式 */ .rhui-mask-content { position: absolute; z-index: 9999; display: block; margin: 0; padding: 15px 20px; border: 2px solid rgb(109, 157, 215); background-color: #fff; color: blue; letter-spacing: 2px; font-weight: bold; font-size: 15px; cursor: wait; } </style> <script type="text/javascript" src="/UploadFiles/2021-04-02/jquery.js">
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
暂无评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
2024年11月30日
2024年11月30日
- 黄乙玲1993-受伤的心·冷暖人生[台湾首版][WAV+CUE]
- (G)I-DLE《I SWAY》[FLAC/分轨][150.46MB]
- FTISLAND《Serious》[320K/MP3][82.33MB]
- FTISLAND《Serious》[FLAC/分轨][476.5MB]
- 曾庆瑜1988-你听一听[清优][WAV+CUE]
- Bach,Vieuxtemps,Gruenberg-ViolinConcertos-Heifetz(2012)FLAC
- ConcertoScirocco-SirensSoldiers.SongswithoutWordsfromtheItalianSeicento(2024)[24
- NCT 127《WALK - The 6th Album》[320K/MP3][76.57MB]
- NCT 127《WALK - The 6th Album》[FLAC/分轨][432.81MB]
- Weeekly《Bliss》[320K/MP3][36.2MB]
- TIS《三国志V》原音母盘[24-96][WAV+分轨]
- 林翠萍.1988-绵绵细雨的夜晚【艺歌】【WAV+CUE】
- 张帝《成名经典歌曲》【WAV】
- Weeekly《Bliss》[FLAC/分轨][215.35MB]
- 群星《当打之年》 HQII[WAV+CUE][640M]