本文实例分析了jQuery遮罩层效果。分享给大家供大家参考,具体如下:
先来看看示例代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh" lang="zh" dir="ltr"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <mce:script type="text/javascript" src="jquery-1.4.4.min.js" mce_src="jquery-1.4.4.min.js"></mce:script> <title>Example | xHTML1.0</title> <mce:style> <!-- *{ font-family:Arial, Helvetica, sans-serif; font-size:12px; } #full_box{ background-color:gray; display:none; z-index:3; position:absolute; left:0px; top:0px; filter:Alpha(Opacity=30); /* IE */ -moz-opacity:0.4; /* Moz + FF */ opacity: 0.4; } #dialog{ position:absolute; width:200px; height:200px; background:#F00; display:none; z-index:5; } --> </mce:style> <style mce_bogus="1"> *{ font-family:Arial, Helvetica, sans-serif; font-size:12px; } #full_box{ background-color:gray; display:none; z-index:3; position:absolute; left:0px; top:0px; filter:Alpha(Opacity=30); /* IE */ -moz-opacity:0.4; /* Moz + FF */ opacity: 0.4; } #dialog{ position:absolute; width:200px; height:200px; background:#F00; display:none; z-index:5; } </style> <mce:script type="text/javascript"> <!-- function showBox() { var bH = $(window).height(); var bW = $(window).width(); $("#full_box").css({width:bW,height:bH,display:"block"}); var objWH = getObjWh('dialog'); var tbT = objWH.split("|")[0] + "px"; var tbL = objWH.split("|")[1] + "px"; $("#dialog").css({top:tbT,left:tbL,display:"block"}); $("#dialog_content").html("<div style="text-align:center" mce_style="text-align:center">正在加载,请稍后...</div>"); $(window).scroll(function (){ resetBox();}); $(window).resize(function (){ resetBox();}); } function resetBox() { var full_box = $("#full_box").css("display"); if (full_box == 'block') { var bH = $(window).height(); var bW = $(window).width(); var objWH = getObjWh('dialog'); var tbT = objWH.split("|")[0] + "px"; var tbL = objWH.split("|")[1] + "px"; $("#dialog").css({top:tbT,left:tbL,display:"block"}); } } function getObjWh(obj) { var st = $(window).scrollTop(); var sl = $(window).scrollLeft(); var ch = $(window).height(); var cw = $(window).width(); var objH = $("#"+obj).height(); var objW = $("#"+obj).width(); var objT = Number(st) + (Number(ch) - Number(objH))/2; var objL = Number(sl) + (Number(cw) - Number(objW))/2; return objT +"|" +objL; } function closeBox() { $("#dialog").css("display","none"); $("#full_box").css("display","none"); } // --> </mce:script> <button id="click" onclick="showBox()">click</button> <div id="full_box"></div> <div id="dialog"> <div id="dialog_content"></div> <div style="text-align:center;" mce_style="text-align:center;"> <a href="#" mce_href="#" onclick="closeBox();">关闭</a> </div> </div> </body> </html>
其实遮罩层原理很简单。
一个div 遮住下面的内容。
其中比较关键的一个css 样式是
x-index: 整数值
数值越大在越上层,越小就在越下层,可以是负数。
上面的js 代码有部分错误。下面已经修正。
//显示层 function showBox(id) { var bH = document.body.offsetHeight;//$(window).height(); var bW = document.body.offsetWidth;//$(window).width(); if (bH < $(window).height()) { bH = $(window).height(); } $("#full_box").css({width:bW,height:bH,display:"block"}); var objWH = getObjWh('dialog'); var tbT = objWH.split("|")[0] + "px"; var tbL = objWH.split("|")[1] + "px"; if(id=='template'){ $("#div_template").show(); }else if(id == 'history'){ $("#div_history").show(); }else{ $("#tree_"+id).show(); } $(window).scroll(function (){ resetBox(id);}); $(window).resize(function (){ resetBox(id);}); } //重置层 function resetBox(id) { var full_box = $("#full_box").css("display"); if (full_box == 'block') { var bH = document.body.offsetHeight;//$(window).height(); var bW = document.body.offsetWidth;//$(window).width(); if (bH < $(window).height()) { bH = $(window).height(); } var objWH = getObjWh('dialog'); var tbT = objWH.split("|")[0] + "px"; var tbL = objWH.split("|")[1] + "px"; $(".dialog").css({top:tbT,left:tbL}); $("#full_box").css({width:bW,height:bH}); } } //获得层参数 function getObjWh(obj) { var st = $(window).scrollTop(); var sl = $(window).scrollLeft(); var ch = $(window).height(); var cw = $(window).width(); var objH = $("#"+obj).height(); var objW = $("#"+obj).width(); var objT = Number(st) + (Number(ch) - Number(objH))/2; var objL = Number(sl) + (Number(cw) - Number(objW))/2; return objT +"|" +objL; } //关闭层 function closeBox(id) { if(id == 'template'){ $("#div_template").hide(); }else if(id == 'history'){ $("#div_history").hide(); }else{ $("#tree_"+id).hide(); } $("#full_box").hide(); }
更多关于jQuery特效相关内容感兴趣的读者可查看本站专题:《jQuery常见经典特效汇总》
希望本文所述对大家jQuery程序设计有所帮助。

实现方法:1、用“$("img").delay(毫秒数).fadeOut()”语句,delay()设置延迟秒数;2、用“setTimeout(function(){ $("img").hide(); },毫秒值);”语句,通过定时器来延迟。

区别:1、axios是一个异步请求框架,用于封装底层的XMLHttpRequest,而jquery是一个JavaScript库,只是顺便封装了dom操作;2、axios是基于承诺对象的,可以用承诺对象中的方法,而jquery不基于承诺对象。

修改方法:1、用css()设置新样式,语法“$(元素).css("min-height","新值")”;2、用attr(),通过设置style属性来添加新样式,语法“$(元素).attr("style","min-height:新值")”。

增加元素的方法:1、用append(),语法“$("body").append(新元素)”,可向body内部的末尾处增加元素;2、用prepend(),语法“$("body").prepend(新元素)”,可向body内部的开始处增加元素。

删除方法:1、用empty(),语法“$("div").empty();”,可删除所有子节点和内容;2、用children()和remove(),语法“$("div").children().remove();”,只删除子元素,不删除内容。

在jquery中,apply()方法用于改变this指向,使用另一个对象替换当前对象,是应用某一对象的一个方法,语法为“apply(thisobj,[argarray])”;参数argarray表示的是以数组的形式进行传递。

on()方法有4个参数:1、第一个参数不可省略,规定要从被选元素添加的一个或多个事件或命名空间;2、第二个参数可省略,规定元素的事件处理程序;3、第三个参数可省略,规定传递到函数的额外数据;4、第四个参数可省略,规定当事件发生时运行的函数。

去掉方法:1、用“$(selector).removeAttr("readonly")”语句删除readonly属性;2、用“$(selector).attr("readonly",false)”将readonly属性的值设置为false。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

Dreamweaver Mac版
视觉化网页开发工具

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

记事本++7.3.1
好用且免费的代码编辑器