js超漂亮弹出层,带阴影效果

作者:袖梨 2022-07-02
提示:您可以先修改部分代码再运行
'); builder.push(''); container.innerHTML = builder.join(''); var size = me.getBrowserWindowSize(); me.left = ((size.width - width)/2) >> 0; me.top = ((size.height - height)/2) >> 0; me.ie6 = /msie|MSIE 6/.test(navigator.userAgent); var divs = container[t]("div"),k = divs.length; while (--k >= 0) { if(divs[k].className == "replaceable"){ me.content = divs[k] break; } } //设置样式 me.(".popups","position:absolute;width:"+width+"px;height:"+ height+"px;left:"+me.left+"px;top:"+me.top+"px;");//background:#68DFFB container.style.zIndex = Dialog.zIndex++; me.css(".popups .caption",'position:absolute;top:10px;left:10px;width:'+(width-50)+'px;'+ 'padding-left:30px;font:700 14px/20px "SimSun","Times New Roman";color: #fff;'+ bg("o_icon.gif","#68DFFB","5px")); me.css(".popups .closebtn",'position:absolute;top:0;right:10px;display:block; '+ 'text-decoration:none;'+ bg("o_dialog_closebtn.gif")); me.css(".popups a.closebtn:hover",bg("o_dialog_closebtn_over.gif")); me.css(".popups form","position:absolute;top:30px;left:10px;border:3px solid #68DFFB;width:"+(width-26)+"px;height:"+(height-51)+"px;background:#fff;"); me.css(".popups .submitable","position:absolute;bottom:0;border-top:1px solid #c0c0c0;width:100%;background:#f9f9f9;"); var buttoncss = 'display:block;float:right;margin: 0.7em 0.5em;padding:2px 7px;border:1px solid #dedede;' + 'background:#f5f5f5;color:#a9ea00;font:700 12px/130% "SimSun","Times New Roman";text-decoration:none;'; me.css("a.positive",buttoncss);//IE6有bug,不能动态创建联合选择器 me.css("a.negative",buttoncss); me.css("a.negative","color:#ff5e00;"); me.css("a.positive:hover","border:1px solid #E6EFC2;background:#E6EFC2;color:#529214;"); me.css("a.negative:hover","border:1px solid #fbe3e4;background:#fbe3e4;color:#d12f19;"); me.css("a.positive:active","border:1px solid #529214;background:#529214;color:#fff;"); me.css("a.negative:active","border:1px solid #d12f19;background:#d12f19;color:#fff;"); me.css("a","outline: 0;"); //按钮的圆角 var ff = /a/[-1]=='a'; if(ff){ me.css("a.positive","-moz-border-radius:4px;"); me.css("a.negative","-moz-border-radius:4px;"); }else{ me.css("a.positive","-webkit-border-radius:4px;"); me.css("a.negative","-webkit-border-radius:4px;"); } //*************************** if (!+"v1" ){ if(!document.namespaces.vml){ document.namespaces.add('vml', 'urn:schemas-microsoft-com:vml'); var vmlobj = document.createElement(""), head = document.getElementsByTagName("head")[0]; head.appendChild(vmlobj); document.createStyleSheet().addRule(".vml", "behavior: url(#VMLRender); display:inline-block;"); } var rect = document.createElement(''); container.insertBefore(rect,container.firstChild); rect.style.cssText = "position:absolute;top:0px;left:0px;width:"+width+"px;height:"+height+"px;"; me.attr(rect,{arcsize:5 /Math.min(width, height),stroked:"f"}); rect.innerHTML = '' + '' }else{ var svg = me.createSVG("svg"); container.insertBefore(svg,container.firstChild); me.attr(svg,{width:me.width+10+"px",height:me.height+10+"px"}); var defs = me.createSVG("defs"); svg.appendChild(defs); var filter = me.createSVG("filter"); defs.appendChild(filter); me.attr(filter,{id:"filter"+id}); var feGaussianBlur = me.createSVG("feGaussianBlur"); filter.appendChild(feGaussianBlur) me.attr(feGaussianBlur,{"in":"SourceAlpha",result:"blur-out",stdDeviation:1.5}); var feOffset = me.createSVG("feOffset"); filter.appendChild(feOffset) me.attr(feOffset,{"in":"blur-out",result:"the-shadow",dx:0,dy:2}); var feBlend = me.createSVG("feBlend"); filter.appendChild(feBlend) me.attr(feBlend,{"in":"SourceGraphic","in2":"the-shadow",mode:"normal"}); var shadow = me.createSVG("rect"); svg.appendChild(shadow); me.attr(shadow,{x:"10px",y:"10px",width:me.width+"px",height:me.height+"px",rx:10, fill:"#333",style:"opacity:0.2",filter:"url(#filter"+id+")"}); var rect = me.createSVG("rect"); svg.appendChild(rect); me.attr(rect,{width:me.width+"px",height:me.height+"px",rx:5,fill:"#68DFFB",style:"opacity:0.8"}); } //***************************IE6 弹出窗口中遮不住select****************************** if(me.ie6){ me.iframe = document.createElement(""); container.insertAdjacentElement('beforeBegin',me.iframe); } //*****************************监听点击************************** container.onclick = function(){ var ee = me.getEvent(), node = ee[1],tag = ee[2]; if(tag == "a" ){ switch(node.className){ case "closebtn" : me.hide(); break; case "positive" : me.hide(); //form.submit(); break; case "negative" : alert("你点击了取消按钮!"); break; } } } container.onmousedown = function(e){ e = e || window.event; container.offset_x = e.clientX - container.offsetLeft; container.offset_y = e.clientY - container.offsetTop; document.onmousemove = function(e){ me.drag(e,me) } document.onmouseup = function(){ me.dragend(container) } } }, drag:function(e,me){ e = e || window.event;//获得事件对象 var el = me.container; var l = e.clientX - el.offset_x + "px", t = e.clientY - el.offset_y + "px"; with(el.style){ left=l; top=t; cursor="move" } if(me.ie6){ with(me.iframe.style){ left=l; top=t; } } !+"v1"? document.selection.empty() : window.getSelection().removeAllRanges(); }, dragend:function(el){ el.style.cursor = ""; document.onmouseup = document.onmousemove = null; }, hide : function(){ this.container.style.display = "none" ; if(this.ie6){ this.iframe.style.display = "none"; } this.mode(0,0); //下面两行目的是生成 html,body{width:auto;height:auto;overflow:auto;} this.incss(document.body, {width:"auto",height:"auto",overflow:"auto"}); this.incss(document.documentElement, {width:"auto",height:"auto",overflow:"auto"}); }, show : function(){ this.container.style.display = "block" ; if(this.ie6){ this.iframe.style.display = "block"; } var size = this.getBrowserWindowSize(); this.mode(size.width, size.height); }, getBrowserWindowSize :function(){ var de = document.documentElement; return { width: (de.clientWidth || document.body.clientWidth), height:(de.clientHeight || document.body.clientHeight) } }, createSVG : function(tag){ return document.createElementNS("http://www.***w3.org/2000/svg",tag); }, attr: function(node,bag){ for(var i in bag){ if(bag.hasOwnProperty(i)) node.setAttribute(i,bag[i]) } }, getEvent : function(e) { e = e || window.event; if (!e) { var c = this.getEvent.caller; while (c) { e = c.arguments[0]; if (e && (Event == e.constructor || MouseEvent == e.constructor)) { break; } c = c.caller; } } var target = e.srcElement ? e.srcElement : e.target, currentN = target.nodeName.toLowerCase(), parentN = target.parentNode.nodeName.toLowerCase(), grandN = target.parentNode.parentNode.nodeName.toLowerCase(); return [e,target,currentN,parentN,grandN]; }, mode:function(w,h){ var mask = Dialog.mask,me = this; this.incss(document.body, {width:"100%",height:"100%",overflow:"hidden"}); this.incss(document.documentElement, {width:"100%",height:"100%",overflow:"hidden"}); this.incss(mask,{position:"absolute",background:"#fff",top:0,left:0, width:w +"px",height:h +"px","-moz-user-select":"none"}); !+"v1"? (mask.style.filter = "alpha(opacity=0)") : (mask.style.opacity = "0"); mask.onselectstart = function(e){ me.stopEvent(e); } mask.oncontextmenu = function(e){ me.stopEvent(e); } }, stopEvent:function(e){ e = e || window.event; if(e.preventDefault) { e.preventDefault(); e.stopPropagation(); }else{ e.returnValue = false; e.cancelBubble = true; } }, incss:function(node,bag){ var str = ";" for(var i in bag){ if(bag.hasOwnProperty(i)) str += i+":"+bag[i]+";" } node.style.cssText = str; }, css:function(selector,declaration){ if(typeof document.createStyleSheet === 'undefined') { document.createStyleSheet = (function() { function createStyleSheet() { var element = document.createElement('style'); element.type = 'text/css'; document.getElementsByTagName('head')[0].appendChild(element); var sheet = document.styleSheets[document.styleSheets.length - 1]; if(typeof sheet.addRule === 'undefined') sheet.addRule = function(selectorText, cssText, index) { if(typeof index === 'undefined') index = this.cssRules.length; this.insertRule(selectorText + ' {' + cssText + '}', index); }; return sheet; } return createStyleSheet; })(); } if(!!Dialog.sheet){ if(!Dialog.memory.exists(selector,declaration)){ Dialog.memory.set(selector,declaration); Dialog.sheet.addRule(selector,declaration); } }else{ Dialog.sheet = document.createStyleSheet(); var memory = function(){ var keys = [],values = [],size = 0; return { get : function(k){ var results = []; for(var i=0,l=keys.length;i文字居中" } bn2.onclick = function(){ dialog2.show(); dialog2.content.innerHTML = "" }; bn3.onclick = function(){ dialog3.show(); dialog3.content.innerHTML = "
" + document.getElementById("hide").innerHTML + "
" } }

一步步教你实现弹出窗口 by 司徒正美

#navigation {
-webkit-box-shadow: 0 0 10px #000;
-moz-box-shadow: 0 0 10px #000;
}
#navigation li a:hover,
#navigation li a:focus {
-webkit-box-shadow: 0 0 5px #111;
-moz-box-shadow: 0 0 5px #111;
}
box-shadow属性可以用多个值:水平偏移、垂直偏移、模糊半径、伸展半径和阴影颜色。水平和垂直偏移和阴影色使用的最多。
在一个div上应用红色阴影,右边和下边偏移4px,无模糊,我们可以使用下面的代码:
div {
   -moz-box-shadow: 4px 4px 0 #f00;
   -webkit-box-shadow: 4px 4px 0 #f00;
   box-shadow: 4px 4px 0 #f00;
   }

我的博客:http://www.c*n*bl*ogs.com/rubylouvre/

提示:您可以先修改部分代码再运行

相关文章

精彩推荐