现在的位置: 首页 > 综合 > 正文

分享一个网页右下角弹窗的代码

2018年05月22日 ⁄ 综合 ⁄ 共 5390字 ⁄ 字号 评论关闭

dialogBox\css\dialogBox.css

 

*{
	margin:0px;
	border:0px;
	padding:0px;
}
.backgroundLayer_db{
	position:absolute;
	z-index:9998;
    border: 1px solid #A67901;
    background: #EAEAEA;
    overflow:hidden;
}
.move_div{
	width:100%;
	height:25px;
	background:url(../img/title_bg.jpg) repeat-x;
}
.close_a{
	cursor: pointer;
	text-decoration: none;
	display:inline-block;
	width:25px;
	height:25px;
	line-height:25px;
    overflow:hidden;
}
.title_span{
	height:25px;
	line-height:25px;
	display:inline-block;
    overflow:hidden;
}
.close_span{
	width:100%;
	height:100%;
	background:url(../img/closeBox.gif) no-repeat;
	background-position:center center;
	display:inline-block;
}
.content_div{
	width:100%;
	height:100%;
    background: #ffffff;
    overflow:hidden;
}

dialogBox\css\dialogBox.js

function DialogBox(args){
	this.id = "0";//层ID
	this.title = "";//层标题
	this.width = 300;//层宽度
	this.height = 200;//层高度
	this.step = 10;
    this.instance = "dialog";//实例
	this.content = "";//层内容
	
	if(args){
		if(args.id) this.id = args.id;
		if(args.title) this.title = args.title;
		if(args.width) this.width = args.width;
		if(args.height) this.height = args.height;
		if(args.instance) this.instance = args.instance;
		if(args.content) this.content = args.content;
	}
	if(!window.dialogBoxList){
		window.dialogBoxList = [];
	}
	window.dialogBoxList[window.dialogBoxList.length] = this;
	this.index = window.dialogBoxList.length;
	//弹出层
	this.show = function(){
		
		//背景层
		var bgl = document.getElementById("backgroundLayer_"+this.id);
		if(bgl) document.body.removeChild(bgl);
		
		//创建弹出背景层
		bgl = document.createElement("div");
		//给这个元素设置属性与样式
		bgl.id = "backgroundLayer_"+this.id;
		bgl.className = "backgroundLayer_db";
		bgl.style.width = this.width+"px";
		bgl.style.height = this.height+"px";
		bgl.style.left = "0px";
		bgl.style.top = "0px";
		document.body.appendChild(bgl);

		var titleHTML = "";
		titleHTML += "<div id=\"move_div_"+this.id+"\" name=\"move_div\" class=\"move_div\">";
			titleHTML += "<span id=\"title_span_"+this.id+"\" name=\"title_span\" class=\"title_span\" style=\"width:"+(this.width - 35)+"px;\">";
			titleHTML += this.title;
			titleHTML += "</span>";
			
			titleHTML += "<a href=\"#\" onclick=\""+this.instance+".close();return false;\" class=\"close_a\" title=\"关闭\">";
				titleHTML += "<span id=\"close_span_"+this.id+"\" name=\"close_span\" class=\"close_span\"> </span>";
			titleHTML += "</a>";
		titleHTML += "</div>";
		titleHTML += "<div id=\"content_div_"+this.id+"\" name=\"content_div\" class=\"content_div\">";
		if(this.content) titleHTML += this.content;
		titleHTML += "</div>";
		
		bgl.innerHTML = titleHTML;
		
		this.resize();
		bgl.style.height = "0px";
		bgl.style.top = (this.top + this.height )+ "px";
		
		this.moveTo();
	};
	//关闭层
	this.close = function(){
	    var me = this;
		var bgl = document.getElementById("backgroundLayer_"+me.id);
		if(bgl){
			document.body.removeChild(bgl);
		}
	};
	this.moveTo = function(){
        clearInterval(this.tempTimer);
		this.bf = this.buffer(0, this.height,this.step);
		var bgl = document.getElementById("backgroundLayer_"+this.id);
		var me = this;
		this.tempTimer = setInterval(function() {//alert(me.bf[0]);
			bgl.style.height = me.bf[0] + "px";
			bgl.style.top = me.top + me.index * me.height - me.index * me.bf[0] + "px";
	        if(me.bf[1] == 0) {
	            clearInterval(me.tempTimer);
	        }
	        me.bf = me.buffer(me.bf[0],me.height,me.step);
	    }, 10);
	}
	
	this.buffer = function(a, b, c) {//缓冲计算
        var cMath = Math[(a - b) > 0 ? "floor" : "ceil"];
        c = c || 0.1;
        return [a += cMath((b - a) / c), a - b];
    }
    this.top = 0;
	//窗体改变大小时——遮罩背景层
	this.resize = function(){
	    var me = this;
		var bgl = document.getElementById("backgroundLayer_"+me.id);
		if(bgl){
			bgl.style.top = "0px";
			bgl.style.left = "0px";
			var pageSize = new PageSize();
			bgl.style.left = (pageSize.clientWidth + pageSize.scrollLeft - me.width - 4) + "px";
			bgl.style.top = (pageSize.clientHeight + pageSize.scrollTop - (me.index * (me.height + 4))) + "px";
			this.top = pageSize.clientHeight + pageSize.scrollTop - (me.index * (me.height + 4));
		}
	};
	this.onresize_fun = window.onresize;
	//窗体改变大小时——重绘网格列表
	this.onresize = function(){
		var me = this;
		window.onresize = function(){
			if(me.onresize_fun){
				me.onresize_fun();
		    }
			if(me) me.resize();
		}
	};
	this.onresize();//执行
}

function PageSize(){
    this.pageWidth = 0 ;
    this.pageHeight = 0 ;
    
    this.clientWidth = 0;
    this.clientHeight = 0;
    
    //注意:scrollLeft、scrollTop必须在onscroll函数下才有值,直接打印出来是为0
    this.scrollLeft = 0;//网页被卷去的左
    this.scrollTop = 0;//网页被卷去的高

    if(document.compatMode == "BackCompat") {
		this.pageWidth = document.body.scrollWidth;//body 对象
		this.pageHeight = document.body.scrollHeight;
		
		this.clientWidth = document.body.clientWidth;
		this.clientHeight = document.body.clientHeight;
		
		this.scrollLeft = document.body.scrollLeft;
		this.scrollTop = document.body.scrollTop;
	}else if(document.compatMode == "CSS1Compat"){
		this.pageWidth = document.documentElement.scrollWidth;//html 对象
		this.pageHeight = document.documentElement.scrollHeight;
		
		this.clientWidth = document.documentElement.clientWidth;
		this.clientHeight = document.documentElement.clientHeight;
		
		this.scrollLeft = document.documentElement.scrollLeft == 0 ? document.body.scrollLeft : document.documentElement.scrollLeft;
		this.scrollTop = document.documentElement.scrollTop == 0 ? document.body.scrollTop : document.documentElement.scrollTop;
	}
	
	this.pageWidth = this.pageWidth > this.clientWidth ? this.pageWidth : this.clientWidth;
	this.pageHeight = this.pageHeight > this.clientHeight ? this.pageHeight : this.clientHeight;
	
}

dialogBox\img

closeBox.gif

还有一张背景上传不了。。

 

例子dialogBox.html

<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
		<title>层</title>
		<link href="css/dialogBox.css" type="text/css" rel="stylesheet"/>
		<script src="js/dialogBox.js" type="text/javascript"></script>
	</head>
	<body>
	    <script type="text/javascript">
			var dialog1 =new DialogBox({id:"1",instance:"dialog1",title:"提示"});
			dialog1.content="dialog1";
			dialog1.show();
			var dialog2 =new DialogBox({id:"2",instance:"dialog2",title:"提示"});
			dialog2.content="dialog2";
			dialog2.show();
	    </script>
	</body>
</html>

 

 

抱歉!评论已关闭.