zoukankan      html  css  js  c++  java
  • 漂亮提醒框js

    <script type="text/javascript">
      var filename = "PICC_V2.1.3.0_新增功能操作手册.doc";
      window.onload = function(){
          var dialog1;
          dialog1 = new Dialog({310,height:250,title:"重要通知"});//background:pink;
          dialog1.content.innerHTML ="<table ><tr style='margin-top: 5' style='height:4' >"+
          "<td style='font-size:14px;'>通知:系统已于2014年04月16号升级到V2.1.3.0版本,相关新增功能手册如下:</td></tr><tr></tr><tr></tr>"+
          "<tr><td><a href='#' style='font-size:13px;' onclick='setWinSize()'>1."+filename+"</a></td></tr></table>";
       }
      function setWinSize() {
           window.location = "<%=request.getContextPath()%>/"+"filedown.do?filename="+filename;
       }
    </script>

    需要引入以下js文件

      var Dialog = function(){
        var options = arguments[0] || {};
        this.title = options.title || "我只打",
        this.width = options.width || 350,
        this.height = options.height || 250,
        this.container = document.createElement("div"),
        this.id = "id" + Math.abs(new Date() * Math.random()).toFixed(0);
        this.init();
      }
      Dialog.prototype = {
        constructor: Dialog,
        init: function() {
          var me = this,container = me.container,width = me.width, height = me.height,
          id = me.id,builder = [],t = "getElementsByTagName",
          bg = function(pic){
            var bgcolor = arguments[1] || 'transparent',
            left = arguments[2] || 'left',
            s =  'background:'+bgcolor + ' url(http://images.cnblogs.com/cnblogs_com/rubylouvre/205314/'
              +  pic + ') no-repeat '+left+' center;';
            return s;
          };
          if(typeof Dialog.z === "undefined"){
            Dialog.zIndex = 999;
          }
          document.body.insertBefore(container,null);
          container.id = id;
          container.className = "popups";
          builder.push('<div class="caption" >'+me.title+'</div>');
          builder.push('<form><div class="replaceable"></div>');
          builder.push('<div class="submitable">');
          builder.push('<a class="negative" href="javascript:void(0)">取消</a>');
          builder.push('<a class="positive" href="javascript:void(0)">确认</a>');
          builder.push('</div></form>');
          builder.push('<a class="closebtn" href="javascript:void(0)"></a>');
          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.css(".popups","position:absolute;"+width+"px;height:"+
            height+"px;right:"+14+"px;top:"+4+"px;"+"background:#ccc");//background:#68DFFB
          container.style.zIndex = Dialog.zIndex++;
          me.css(".popups .caption",'position:absolute;top:10px;left:10px;'+(width-50)+'px;height:20px;'+
            '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;28px; '+
            'height:17px;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-26)+"px;height:"+(height-51)+"px;background:#fff;");
          me.css(".popups .submitable","position:absolute;bottom:0;border-top:1px solid #c0c0c0;100%;height:40px;background:#fff;");
          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("<object classid=CLSID:10072CEC-8CC1-11D1-986E-00A0C955B42E id=VMLRender>"),
              head = document.getElementsByTagName("head")[0];
              head.appendChild(vmlobj);
              document.createStyleSheet().addRule(".vml", "behavior: url(#VMLRender); display:inline-block;");
            }
            var rect = document.createElement('<vml:roundrect class="vml">');
            container.insertBefore(rect,container.firstChild);
            rect.style.cssText = "position:absolute;top:0px;left:0px;"+width+"px;height:"+height+"px;";
            me.attr(rect,{arcsize:5 /Math.min(width, height),stroked:"f"});
            rect.innerHTML = '<vml:fill class="vml" opacity="0.8" color="#68DFFB" />' +
              '<vml:shadow class="vml" on="t" color="#333" opacity="0.2"  offset="10px,10px" />'
          }else{
            var svg = me.createSVG("svg");
            container.insertBefore(svg,container.firstChild);
            me.attr(svg,{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",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,{me.width+"px",height:me.height+"px",rx:5,fill:"#68DFFB",style:"opacity:0.8"});
          }
          //***************************IE6 弹出窗口中遮不住select******************************
          if(me.ie6){
            me.iframe = document.createElement("<iframe style='position:absolute;left:"+
              me.left+"px;top:"+me.top+"px;"+(me.width+10)+"px;height:"+
              (me.height+10)+"px;z-index:"+(Dialog.zIndex-2)+";filter:mask();display:none;' ></iframe>");
            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" :
                  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{auto;height:auto;overflow:auto;}
          this.incss(document.body, {"auto",height:"auto",overflow:"auto"});
          this.incss(document.documentElement, {"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 {
             (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, {"100%",height:"100%",overflow:"hidden"});
          this.incss(document.documentElement, {"100%",height:"100%",overflow:"hidden"});
          this.incss(mask,{position:"absolute",background:"#fff",top:0,left:0,
            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<l;i++){
                    if(keys[i] == k){
                      results.push(values[i])
                    }
                  }
                  return results;
                },
                exists:function(k,v){
                  var vs = this.get(k);
                  for(var i=0,l=vs.length;i<l;i++){
                    if(vs[i] == v)
                      return true;
                  }
                  return false;
                },
                set : function(k,v){
                  keys.push(k);
                  values.push(v);
                  size++;
                },
                length :function(){
                  return size;
                }
              }
            }
            Dialog.memory = memory();
            Dialog.memory.set(selector,declaration);
            Dialog.sheet.addRule(selector,declaration);
            Dialog.mask = document.createElement("div");
            document.body.insertBefore(Dialog.mask,this.container);
          }
        }
      }
  • 相关阅读:
    制作在线简历(一)——Loading与底部菜单
    然而这并没有什么卵用
    移动开发中Fiddler的那些事儿
    多种方法实现Loading(加载)动画效果
    总结)Nginx/LVS/HAProxy负载均衡软件的优缺点详解
    SQLServer和MySQL job和 event定时器的差别
    全局ID的重要性
    Windows操作系统上各种服务使用的端口号, 以及它们使用的协议的列表
    Linux发展历史图
    奇特的Local System权限(转载)
  • 原文地址:https://www.cnblogs.com/holdon521/p/4329186.html
Copyright © 2011-2022 走看看