`
itace
  • 浏览: 180832 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

可移动的带遮罩的弹出层

    博客分类:
  • js
 
阅读更多
/**
 * ----div----dialog-----------------
 * ---支持IE6以上版本,google,firefox(不支持拖动)---
 * --只需要调用openDialog,closeDialog
 */
var idialog = null;
function alertDialog(content){
	var title="提示";
	var contentHtml="<div style='font-family: Verdana, Arial, Helvetica, sans-serif;margin-left: 20%;margin-top: 20%;'>"+content+"</div>"
	+"<div style='line-height: 20px;margin-left: 68%;margin-top: 30px;'><input type='button' style='line-height: 25px;border: 0px;' onclick='closeDialog()' value='确认'/></div>";
	openDialog(title,contentHtml);
}
function openDialog(title,contentHtml){
	var w=300;
	var h=200;
	var s=true;//是否要遮罩
	
	idialog=new IDialog(w,h,s,title,contentHtml);
	idialog.open();
}
//------------close--dialog--------------
function closeDialog(){
	//document.getElementById(screenID).style.display="none";
	//document.getElementById(dialogID).style.display="none";
	document.body.removeChild(document.getElementById(screenID));
	document.body.removeChild(document.getElementById(dialogID));
	idialog=null;
}

//----v-----
var screenID="screenID";
var dialogID="dialogID";
var titleID="titleID";
//-----new a object---
IDialog=function(w,h,s,title,contentHtml){
	//var screenh=window.screen.height;//屏幕分辨率的高:
	//var screenw=window.screen.width;//屏幕分辨率的宽:
//	var bow = document.body.offsetWidth;
//	var boh = document.body.offsetHeight;
	var bw = document.documentElement.clientWidth;
	var bh = document.documentElement.clientHeight;
	var top = document.documentElement.clientTop;
//	var bw = document.documentElement.scrollWidth;
//	var bh = document.documentElement.scrollHeight;
//	var top = document.documentElement.scrollTop;
	if(bh<h*2){
		bh=h*2;
	}
	//---------background---------
	var myScreen = document.createElement("div");
	myScreen.setAttribute("id", screenID);
	myScreen.style.backgroundColor = "#000000";
	myScreen.style.left = "0px";
	myScreen.style.right = "0px";
	myScreen.style.top = "0px";
	myScreen.style.bottom = "0px";
	myScreen.style.width = bw+"px";
	myScreen.style.height = bh+"px";
	myScreen.innerHTML = "";
	myScreen.style.position = "absolute";
	myScreen.style.zIndex = "100";
	myScreen.style.display = "none";
	if(s){
		myScreen.style.opacity = "0.5";
	}else{
		myScreen.style.opacity = "0.0";
	}
	
	
	//-----------dialog---------------
	var myDialog = document.createElement("div");
	myDialog.setAttribute("id", dialogID);
	myDialog.style.backgroundColor = "#D9D9D9";
	myDialog.style.zIndex = "1020";
	myDialog.style.display = "none";
	myDialog.style.left = (bw - w) / 2 + "px";
	myDialog.style.top = top + (bh - h) / 2 + "px";
//window.pageYOffset 当前窗口左上角坐标,是弹出层始终在当前窗口中间
//myDialog.style.top =  window.pageYOffset + (document.documentElement.clientHeight - h) / 2 + "px";//注意:bw使用scrollWidth,bh使用scrollHeight
	myDialog.style.width = w+"px";
	myDialog.style.height = h+"px";
	myDialog.style.color = "#890987";
	myDialog.style.border="1px solid #87CEFF";
	myDialog.style.position = "absolute";
	//标题title
	var titleDiv = document.createElement("div");
	titleDiv.style.cssText="width: 100%;line-height: 23px;background-color:#E3E3E3; ";
	titleDiv.innerHTML="<table><tr><td width='98%'>&nbsp;&nbsp;&nbsp;<label>"+title+"</label></td><td width='2%;'>"
		+"<input type='button' style='border: 0;background-color:#D6D6D6;height: 20px;width:20px;' value='x' onclick='closeDialog()'/>"
		+"</td></tr></table>";
	myDialog.appendChild(titleDiv);
	titleDiv.onmousedown=function(){
		move(myDialog,event);
	};
	//内容content
	var contentDiv=document.createElement("div");
	contentDiv.innerHTML =contentHtml;
	myDialog.appendChild(contentDiv);
	
	//----add element to  body-----
	document.body.appendChild(myDialog);
	document.body.appendChild(myScreen);
	
	
	//---resize with window------随着window改变大小
	window.onresize=function(){
		//screen
		//myScreen.style.width = document.documentElement.scrollWidth+"px";
		//myScreen.style.height = document.documentElement.scrollHeight+"px";
		myScreen.style.width = document.documentElement.clientWidth+"px";
		myScreen.style.height = document.documentElement.clientHeight+"px";
		//dialog
//		myDialog.style.left = (document.documentElement.scrollWidth - w) / 2 + "px";
//		myDialog.style.top = document.documentElement.scrollTop + (document.documentElement.scrollHeight - h) / 2 + "px";
		myDialog.style.left = (document.documentElement.clientWidth - w) / 2 + "px";
		myDialog.style.top = document.documentElement.clientTop + (document.documentElement.clientHeight - h) / 2 + "px";
//		I("info").innerHTML=document.documentElement.clientWidth+"--"+document.documentElement.scrollWidth
//		+"--"+document.documentElement.clientHeight+"--"+document.documentElement.scrollHeight;
	};
	
};
//------------open--dialog-------------- 
IDialog.prototype.open = function() {
	
	document.getElementById(screenID).style.display = "block";
	document.getElementById(dialogID).style.display = "block";
};

//----------drag-----start--------
var a,b,c;//a--移动对象,(b,c)--鼠标点击点相对于移动对象的坐标
document.onmouseup=function(){
    if(!a)return;
    document.all?a.releaseCapture():window.captureEvents(Event.MOUSEMOVE|Event.MOUSEUP);
    a="";
};
//---every time listening  mouse move--
document.onmousemove=function (d){
    if(!a) return;
    if(!d) d=event;
	var g=parseInt(a.style.width.replace("px",""));
	var h=parseInt(a.style.height.replace("px",""));
	var m=(d.clientX-b);
	var n=(d.clientY-c);
	
//	var e = document.body.scrollWidth;
//	var f = document.body.scrollHeight;
	var o=document.documentElement.clientWidth;
	var p=document.documentElement.clientHeight;
	//I("info").innerHTML=b+"--"+c+"--"+m+"---"+n+"--"+g+"--"+h+"--"+o+"--"+p; 
	if(m>0&&n>0&&(m+g)<o&&(n+h)<p){
		a.style.left=m+"px";
		a.style.top=n+"px";
		
	}
	
};

function move(o,e){
	a=o;
    document.all?a.setCapture():window.captureEvents(Event.MOUSEMOVE);
    b=e.clientX-parseInt(a.style.left);
    c=e.clientY-parseInt(a.style.top);
    o.style.zIndex=3000+1;
    
}
//----------drag-----end--------

 

分享到:
评论

相关推荐

    jQuery点击事件遮罩弹出层可移动特效代码.zip

    "jQuery点击事件遮罩弹出层可移动特效代码下载。一款jquery弹出层插件制作注册表单点击按钮弹出层表单提交效果,可支持拖到的jQuery弹出层效果。标题、高度、宽度等可以自定义弹出层js插件。

    lhgdialog弹出层,遮罩层效果源码示例

    "lhgdialog"是一个JavaScript库,专为创建各种类型的弹出层效果而设计,其中包括带或不带遮罩层的窗口,以及具有返回值功能、定位弹出窗口和随滚动条滚动等功能。下面我们将详细探讨这些知识点。 1. 弹出层(Pop-up...

    简单实用的jquery可拖动弹出层,遮罩层

    本文将深入探讨“简单实用的jQuery可拖动弹出层,遮罩层”这一主题,旨在帮助开发者了解如何利用jQuery实现这种功能。 首先,我们来解析标题中的关键词“jQuery可拖动弹出层”。jQuery是一个广泛使用的JavaScript库...

    jQuery弹出层 可移动层 提示框 浮动层

    jQuery,作为JavaScript库的杰出代表,提供了丰富的API和插件,使得创建可移动、可自定义的弹出层变得轻而易举。本文将深入探讨jQuery弹出层的实现原理,以及如何构建可移动的提示框和浮动层。 首先,我们来理解...

    简单的jQuery弹出遮罩层小插件,可移动,兼容IE678.rar

    这个小插件的核心功能是创建一个可移动、可关闭的弹出层,它在设计时特别考虑了对老版本Internet Explorer(IE6、IE7和IE8)的兼容性。 jQuery是一个广泛使用的JavaScript库,它简化了HTML文档遍历、事件处理、动画...

    JS移动端点击弹出遮罩层

    "JS移动端点击弹出遮罩层"这一功能就是一个典型的交互设计,它允许用户通过点击按钮来显示一个覆盖整个屏幕的半透明层,通常用于加载提示、模态对话框或者阻止背景操作等场景。下面将详细介绍如何使用JavaScript来...

    js弹出遮罩的可移动层

    "js弹出可移动的遮罩层"是一个典型的JavaScript技术应用,用于在网页上生成一个可移动的覆盖层,通常用于显示提示信息、加载进度或者进行用户确认操作。这种功能在各种浏览器中都需要保持良好的兼容性,包括IE、Fire...

    jQuery遮罩弹出带步骤流程窗口代码.zip

    综上所述,"jQuery遮罩弹出带步骤流程窗口代码"是一个结合了遮罩层、弹出窗口、步骤流程、表单验证、动画效果和Ajax交互的综合应用。通过熟练掌握这些jQuery技术,开发者可以构建出更加高效、易用的用户界面,提升...

    js+css点击弹出遮罩层图片放大展示demo

    综上所述,这个"js+css点击弹出遮罩层图片放大展示demo"通过结合JavaScript和CSS的力量,实现了优雅的图片放大查看功能,为用户带来了更直观、更具沉浸感的浏览体验。在实际项目中,可以根据需求进行调整和优化,以...

    jQuery手机端遮罩弹出菜单代码.zip

    "jQuery手机端遮罩弹出菜单代码.zip"这个压缩包包含了一套专门为手机端设计的jQuery实现的遮罩弹出菜单。这个解决方案利用了jQuery库的灵活性和HTML5的先进特性,以创建一个高效且响应式的模态窗口弹出层。 首先,...

    Div 弹出 DIV移动 遮罩层 Div对话框 Div窗口

    Div 对话框 可移动 可设遮罩层 可以同时打开多个对话框,JS源代码

    js弹出层居中可移动

    ### JS弹出层居中可移动技术解析 #### 一、引言 在网页开发过程中,弹出层(Modal)是一种常见的交互设计模式,用于在当前页面上展示额外的信息或功能,而无需重新加载页面。其中,弹出层能够居中显示并且可以被...

    jQuery从下到上弹出遮罩层.rar

    "jQuery从下到上弹出遮罩层.rar"这个压缩包提供了一个实用的示例,它演示了如何利用CSS、jQuery和JavaScript技术来实现一个底部弹出的遮罩层。下面,我们将详细探讨这些技术以及它们在实现这个功能时的角色。 首先...

    弹出遮罩层

    - **Vue/React/Angular**:在前端框架中,可以利用组件化思想创建可复用的弹出遮罩层组件,通过状态管理控制其显示和隐藏。 3. **常见应用场景**: - **登录/注册**:在用户需要登录或注册时,弹出相应的表单窗口...

    点击小图遮罩弹出大图幻灯片切换代码.zip

    在IT领域,网页交互设计是不可或缺的一部分,而“点击小图遮罩弹出大图幻灯片切换代码”就是一种常见的网页动态效果,用于提升用户体验。这种技术常应用于产品展示、图片库或相册等场景,让用户能够预览并浏览更清晰...

    弹出层,可拖动,仿discuz2.x 登陆弹出

    这通常通过在弹出层下方添加一个半透明的遮罩层来实现,遮罩层的CSS可以设置为全屏并拥有一定的透明度。例如,可以使用`rgba()`颜色函数设置背景色,其中的透明度参数控制暗化程度。 弹出层的边框半透明且具有圆角...

    Android使用popUpWindow带遮罩层的弹出框

    Android 弹出框是移动应用程序中常用的交互方式之一,通过 PopUpWindow 可以轻松地实现弹出框的功能,而带遮罩层的弹出框则可以更加美观,今天我们就来详细介绍如何使用 PopUpWindow 带遮罩层的弹出框。 布局设计 ...

    ASP.NET 绝对居中弹出层

    - 弹出层的内容应可访问,符合WCAG(Web Content Accessibility Guidelines)无障碍标准。 综上所述,ASP.NET绝对居中弹出层的实现涉及到了前端和后端技术的结合,包括ASP.NET控件、JavaScript、CSS以及可能的...

    jQuery+HTML5手机移动端遮罩弹出菜单代码

    这款"jQuery+HTML5手机移动端遮罩弹出菜单代码"正是为了实现这一目标而设计的。它利用了强大的JavaScript库jQuery和现代Web技术HTML5,创建了一个在手机屏幕上能够无缝展示的弹出菜单,为用户提供了便捷的导航体验。...

    JQuery弹出层插件

    弹出层,也称为Popup或Modal,是一种在网页上覆盖一层半透明或不透明的遮罩,以突出显示特定信息或进行用户交互的设计模式。它们通常用于展示警告、确认信息、登录表单等,以避免用户在未完成操作前离开当前页面。 ...

Global site tag (gtag.js) - Google Analytics