`
dreamoftch
  • 浏览: 496768 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

初步制作拖拽div以及弹出层 以及 切换标签

阅读更多

 

 

html代码:

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>blog.html</title>
	
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <link type="text/css" rel="stylesheet" href="../css/blog.css">
	<script type="text/javascript" src="../js/jquery.min.js"></script>
	<script type="text/javascript" src="../js/blog.js"></script>
  </head>
  
  <body>
  		<div id="login">
  			<div class="login_header"><h2>登陆中心</h2></div>
  			<div class="username">账 号:<input type="text"></div>
  			<div class="password">密 码:<input type="password"></div>
  		</div>
  		<div id="screen"></div>
  </body>
</html>

 

 

css代码:

 

body{
	margin:0px;
	padding:0px;
	text-align:center;
	background:#fff;
}
#login{
	width:350px;
	height:200px;
	margin:0px;
	padding:0px;
	border:1px solid black;
	z-index:999;
	background:#fff;
}
#screen{
	width:100%;
	height:100%;
	background:#000;
	filter:alpha(opacity=30);
	opacity:0.3;
	position:absolute;
	top:0;
	left:0;
	z-index:998;
}

 

 

 

 

js代码(需要引入jquery)下面的document.documentElement可以用document代替

 

		$(function(){
			//计算登陆框的内边距
			var marginTop = -(parseInt($("#login").css("height"))/2);
			var marginLeft = -(parseInt($("#login").css("width"))/2);
			//登陆框居中
			$("#login").css({
				position:"absolute",
				top:"50%",
				left:"50%",
				marginTop:marginTop,
				marginLeft:marginLeft
			});
			//登陆框绑定鼠标按下的事件
			$("#login").bind('mousedown',function(e){
				e = e||window.event;
				var old_mouse_x = e.clientX;
				var old_mouse_y = e.clientY;
				var new_mouse_x;
				var new_mouse_y;
				var old_div_x = parseInt($(this).css('left'));
				var old_div_y = parseInt($(this).css('top'));
				var new_div_x;
				var new_div_y;
                                //解决IE鼠标移出浏览器出现的bug
                                if(this.setCapture){
                                    this.setCapture();
                                }
				//绑定鼠标移动的事件(这里是给整个窗体绑定的,但是为了兼容IE,不使用window,注意也不是绑定login这个div)
				$(document.documentElement).bind('mousemove',function(e2){
					e2 = e2||window.event;
					new_mouse_x = e2.clientX;
					new_mouse_y = e2.clientY;
					new_div_x = (old_div_x + (new_mouse_x - old_mouse_x));
					new_div_y = (old_div_y + (new_mouse_y - old_mouse_y));
					$("#login").css({
						'left':new_div_x+'px',
						'top':new_div_y+'px',
						'position':'absolute',
						'marginTop':marginTop+'px',
						'marginLeft':marginLeft+'px'				
					});
				});
			});
			//绑定鼠标弹起的事件(这里是给整个窗体绑定的,但是为了兼容IE,不使用window,注意也不是绑定login这个div)
			$(document.documentElement).bind('mouseup',function(){
                                //解绑鼠标移动事件处理
				$(document.documentElement).unbind('mousemove');
                                //解决IE鼠标移出浏览器出现的bug
                                if(this.releaseCapture){
                                   this.releaseCapture();
                                 }
			});
		});

  

 上面的mousemove和mouseup事件绑定到document.documentElement上面,而不是login这个div上面,也不是window上面,因为window的话,在IE里面不兼容,在Login这个div上面的话,会出现div跟不上鼠标移动的情况,是为了解决鼠标移动较快的时候,div不能跟上鼠标的移动节奏所导致的一些Bug。。。

 

 

如果上面login这个div的定位不是使用的top:50,left:50%,而是通过像素来定位的话,需要注意:

 

//获取鼠标位置:
e.clientX,e.clientY

//获取login这个div的左上角的实际位置:
var _login = document.getElementById("login");
top = _login.offsetTop;
left = _login.offsetLeft;

//获取login这个div的宽高:
width = _login.offsetWidth;
height = _login.offsetHeight;

//获取浏览器实际大小:
if(typeof window.innerHeight != 'undefined'){
   alert({
         width:window.innerWidth,
         height:window.innerHeight
    });
}else{
  alert({
     width:document.documentElement.clientWidth,
     height:document.documentElement.clientHeight
  });

}

 

 

 

 切换标签小demo(jquery权威指南例子):

 

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>ZeroClipboard demo实例</title>
	<style type="text/css">
		*{
			padding:0px;margin:0px;
		}
		#main{
			position:absolute;
			top:50%;
			left:50%;
			width:400px;
			height:250px;
			margin:-125px -200px;
		}
		ul li{
			list-style-type:none;
			height:50px;
			line-height:50px;
		}
		#menu li{
			text-align:center;
			width:50px;
			cursor:pointer;
			float:left;
		}
		#menu li.tabFocus{
			width:50px;
			border:1px solid black;
			border-bottom:none;
			z-index:999;
			position:relative;
			background:#fff;
		}
		#content{
			width:300px;
			clear:both;
			border:1px solid black;
			position:relative;
			top:-1px;
			z-index:998;
		}
		#content li{
			display:none;
		}
		#content li.conFocus{
			display:block;
		}
		#screen{
			display:none;
			width:100%;
			height:100%;
			background:#000;
			filter:alpha(opacity=30);
			opacity:0.3;
			position:absolute;
			top:0px;
			left:0px;
			z-index:1000;
		}
	</style>
	<script src="../js/jquery.min.js"></script>
    <script>
		$(function(){
			$("#menu li").each(function(index){
				$(this).bind('click',function(){
					$("#menu li.tabFocus").removeClass('tabFocus');
					$("#content li.conFocus").removeClass('conFocus');
					$(this).addClass('tabFocus');
					$("#content li").eq(index).addClass('conFocus');
				});
			});
			$(window).scroll(function(){
				var top = $(this).scrollTop();
				var left = $(this).scrollLeft();
				$("#screen").css({
					'top':top,
					'left':left
				});
			});
		});
		function showScreen(){
			$("#screen").css('display','block');
		}
    </script>
</head>
<body><input type="button" onclick="showScreen();" value="show screen">
<div id="main">
<ul id="menu">
	<li class="tabFocus">家居</li>
	<li>电器</li>
	<li>二手</li>
</ul>

<ul id="content">
	<li class="conFocus">家居显示区</li>
	<li>电器显示区</li>
	<li>二手货显示区</li>
</ul>
</div>
<div id="screen"></div>
<p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p>
<p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p>
<p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p>
<p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p>
<p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p>
<p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p>
<p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p>
<p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p>
<p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p>
<p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p><p>aaa</p>
</body>
</html>

 

 提示框跟随鼠标移动:

 

 

<!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"> 
<head> 
<title>鼠标跟随提示框</title> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
<style type="text/css"> 
body{font:12px/1.8 arial;} 
a,a:visited{color:#3366cc;text-decoration:none;} 
a:hover{color:#f60;text-decoration:underline;} 
.tip{width:200px;border:2px solid #ddd;padding:8px;background:#f1f1f1;color:#666;} 
img{border:none;} 
</style> 
<script type="text/javascript"> 
var tip={$:function(ele){ 
    if(typeof(ele)=="object") 
        return ele; 
    else if(typeof(ele)=="string"||typeof(ele)=="number") 
        return document.getElementById(ele.toString()); 
        return null; 
    }, 
    mousePos:function(e){ 
        var x,y; 
        var e = e||window.event; 
        return{x:e.clientX+document.body.scrollLeft+document.documentElement.scrollLeft,y:e.clientY+document.body.scrollTop+document.documentElement.scrollTop}; 
    }, 
    start:function(obj){ 
        var self = this; 
        var t = self.$("mjs:tip"); 
        obj.onmousemove=function(e){ 
            var mouse = self.mousePos(e);     
            t.style.left = mouse.x + 10 + 'px'; 
            t.style.top = mouse.y + 10 + 'px'; 
            t.innerHTML = obj.getAttribute("tips"); 
            t.style.display = ''; 
        } 
        obj.onmouseout=function(){ 
            t.style.display = 'none'; 
        } 
    } 
} 
</script> 
</head> 
<body> 
<ol> 
<li> 
<a href="http://www.jb51.net/article/21812.htm" target="_blank"><img src="http://www.jb51.net/images/logo.gif" onmouseover="tip.start(this)" tips="JQuery获取元素文档大小、偏移和位置和滚动条位置的 " /></a> 
</li> 
<li> 
<a href="http://www.jb51.net/article/21808.htm" target="_blank" onmouseover="tip.start(this)" tips="Javascript 实现TreeView CheckBox全选效果 ……">关于用户研究的一点思考</a> 
</li> 
<li> 
<a href="http://www.jb51.net/article/21806.htm" target="_blank" onmouseover="tip.start(this)" tips="JavaScript 学习笔记(九)call和apply方法 ……">WEB重构拾趣</a> 
</li> 
</ol> 
<div id="mjs:tip" class="tip" style="position:absolute;left:0;top:0;display:none;"></div> 
</body> 
</html> 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    Js弹出层(支持拖拽,多个弹窗自动切换层级)

    标题"Js弹出层(支持拖拽,多个弹窗自动切换层级)"提及的核心知识点是JavaScript中的弹出层实现,特别是它包含的两个关键特性:拖拽功能和多层弹窗之间的层级自动切换。这意味着我们要探讨的是如何在JavaScript中...

    div弹出层 jquery

    在网页设计中,"div弹出层"是一种常见的交互元素,用于显示临时信息或与用户进行交互。jQuery库因其简洁的API和强大的功能,成为实现此类效果的首选工具。本主题将深入探讨如何利用jQuery来实现十种不同的弹出层效果...

    Jquery弹出div层窗口以及div屏幕居中,背景滤镜效果,div拖拽效果

    以上就是关于“jQuery弹出div层窗口、div屏幕居中、背景滤镜效果和div拖拽效果”的核心知识点。通过熟练掌握这些技巧,开发者可以创建更富有互动性和用户体验的网页应用。在实际开发中,还需要根据不同的项目需求,...

    Jquery弹出层

    // 切换弹出层的显示状态 ``` 为了增强用户体验,我们还可以使用`fadeIn()`、`fadeOut()`或`slideToggle()`等方法实现平滑的过渡效果。 另外,Jquery的插件系统也是创建弹出层的重要工具。例如,"Jquery Dialog...

    js 弹出窗口 弹出div window 支持遮罩、拖动、嵌入页面、换肤等实用功能

    首先,让我们了解“弹出窗口”或“弹出层”的概念。在网页设计中,弹出窗口通常指的是不依赖浏览器原生窗口(如alert()、prompt()、confirm())的自定义对话框。这些对话框可以是div元素或其他HTML元素,通过CSS进行...

    Javascripters万能JQuery弹出层类库

    - `toggle()`:切换弹出层的开闭状态。 - `isOpened()`:检查弹出层是否处于打开状态。 同时,还支持事件绑定,如: ```javascript modal.on('open.modal', function() { console.log('弹出层打开'); }); modal....

    jquery > boxy 弹出层

    5. **键盘支持**:支持Esc键关闭弹出层,以及Tab键在弹出层内的元素间进行焦点切换。 6. **动画效果**:Boxy提供了多种打开和关闭的动画效果,增加视觉吸引力。 使用Boxy插件,开发者需要先引入jQuery库和Boxy的...

    jQuery实现单击弹出Div层窗口效果(可关闭可拖动)

    在本文中,我们将深入探讨如何使用jQuery来实现一个可单击弹出的Div层窗口,同时具备可关闭和拖动的功能。这个功能在许多网页应用中都非常常见,它能够为用户提供交互式的用户体验,例如提示信息、用户反馈或者简单...

    JQuery&CSS;&CSS;+DIV实例大全.rar

    3.jQuery弹出层插件PopupDiv-v1.0下载(支持ajax、居中等效果) 4.jQuery超炫淡入淡出效果DIV渐变居中弹出框插件下载 5.jquery黑色+蓝色风格DIV提示框示例 6.一款jQuery+DIV居中淡入淡出信息提示框示例 7.一...

    jQuery制作弹出框效果.rar

    6. **自定义功能**:根据需求,还可以扩展弹出框功能,比如添加自动关闭计时器、拖动功能、键盘关闭支持等。 总结来说,通过jQuery,我们可以轻松地创建具有各种特性的弹出框效果,提高网站的用户体验。在这个过程...

    前端拖拽布局框架.pdf

    - 弹出层:如模态框,用于显示额外信息或确认操作。 - 手风琴菜单:可展开和折叠的菜单项。 - 瀑布流布局:根据屏幕尺寸自适应的网格布局,常用于图片展示。 - 滚动大事:跟随页面滚动显示固定内容。 - 滚差...

    前端拖拽布局框架.docx

    弹出层和手风琴菜单利用了JS的显示/隐藏功能,而瀑布流布局和滚动监听则涉及到更复杂的布局计算和事件处理。 JavaScript的高级特性,如闭包、原型链、异步编程(Promise和async/await),对于优化拖拽布局框架的...

    网页制作测试题.pdf

    4. 使用`alert("弹出的信息内容")`方法实现JavaScript弹出信息对话框。 5. 网页之间的链接是通过URL(Uniform Resource Locator)来实现的。 6. 创建网站首页时通常取文件名为`index.html`。 7. 要退出DreamweaverMX...

    常用的做网页的技巧,一用就知道

    1. **纯div+css制作的弹出菜单**: 这是一种常见的网页交互设计,使用HTML的`div`元素作为容器,CSS来定义样式和布局,实现菜单的弹出效果。通常涉及定位(positioning)、浮动(floating)、过渡(transitions)和...

    50个jqery插件

    19. **jQuery ThickBox**:一种网页用户界面对话小部件,使用JavaScript编写,提供弹出式对话框。 20. **Simple Modal Demos**:跨浏览器覆盖层和容器,用于填充由Simple Modal提供的内容,增强页面互动性。 21. *...

    JavaScript效果源码

    弹出提示和透明层常用于警告、确认或信息传递。JavaScript可以创建新的元素,设置内容和样式,然后将其定位在屏幕的特定位置。透明层通常用于覆盖页面,防止用户在提示显示时进行其他操作。 类似163的JavaScript...

    JavaScript网页特效范例宝典源码

    1.1 弹出窗口控制 2 实例001 打开新窗口显示广告信息 2 实例002 定时打开窗口 4 实例003 通过按钮创建窗口 5 实例004 自动关闭的广告窗口 6 实例005 控制弹出窗口居中显示 7 实例006 弹出的窗口之Cookie控制 9 实例...

    超实用的jQuery代码段

    1.12 强制在弹出窗口中打开链接 1.13 平滑滚动页面到某个锚点 1.14 阻止文本行换行 1.15 实现iframe高度自适应 1.16 实现左右div自适应相同高度 1.17 获取鼠标在屏幕中的坐标 1.18 获取鼠标在窗口客户区中的坐标 ...

    《程序天下:JavaScript实例自学手册》光盘源码

    1.12 进入页面同时弹出欢迎对话框 1.13 禁止网页另存 1.14 禁止页面加入缓存 1.15 离开页面时弹出对话框 1.16 判断页面是否添加了W3C声明 1.17 屏蔽网页中的脚本 1.18 以频道模式打开页面 1.19 自动识别网页类型 ...

    程序天下:JavaScript实例自学手册

    1.12 进入页面同时弹出欢迎对话框 1.13 禁止网页另存 1.14 禁止页面加入缓存 1.15 离开页面时弹出对话框 1.16 判断页面是否添加了W3C声明 1.17 屏蔽网页中的脚本 1.18 以频道模式打开页面 1.19 自动识别网页类型 ...

Global site tag (gtag.js) - Google Analytics