`
ice-cream
  • 浏览: 328234 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

jquery写的弹出层

阅读更多

index.html

<body>
<div class="field"><input type="checkbox" id="choose"/><label for="choose">查看历史记录</label><select><option>ie6</option></select></div>
<div class="comparison"><div>
</body>

popUpBox.html

<ul>
	<li class="left">
		<h3>޸描述</h3>	<div>wwwwwwwwwwwwwwwwwwwwwwww1wwwwwwwwwwwwwwwwwww5wwwwwwwwwwwwwwwwwwwwww4wwwwwwwwwwwwwwwwwww1wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww1wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww3wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww2wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww</div>
	</li>
	<li class="right">
		<h3>޸描述</h3>
		<div>07年将是web标准大面积推广的年份07年将是web标准大面积推广的年07年将是web标准大面积推广的年份07年将是web标准大面积推广的年07年将是web标准大面积推广的年份07年将是web标准大面积推广的年07年将是web标准大面积推广的年份07年将是web标准大面积推广的年07年将是web标准大面积推广的年份07年将是web标准大面积推广的年07年将是web标准大面积推广的年份07年将是web标准大面积推广的年07年将是web标准大面积推广的年份07年将是web标准大面积推广的年07年将是web标准大面积推广的年份07年将是web标准大面积推广的年</div>
	</li>
</ul>
<span class="close">CLOSE</span>

 css

<style>
	ul,li,h3,div{ margin:0;padding:0;font-size:12px;}
	div.comparison{display:none;z-index:3;position:absolute;width:800px;border:2px dashed #333;background-color:#fff;padding:10px;}
	ul{list-style-type:none;clear:both;overflow:hidden;height:120px;}
	li.left{float:left;width:395px;}
	li.right{width:395px;float:right;}
	h3,span.close{color:green;font-size:16px;}
	span.close{float:right;font-weight:bold;cursor:pointer;}
	li div{word-wrap:break-word;overflow:auto;border:1px solid #333;max-height:80px;_height:auto;padding:3px;margin:10px 0;}
	.wrap{z-index:1;background-color:#000;opacity:0.1;filter:alpha(opacity:10);position:absolute;left:0;top:0;width:100%;}
	iframe.ie6Bug{border:0;z-index:2;position:absolute;left:0;top:0;width:100%;background-color:#000;}
</style>

 javascript

<script type="text/javascript">
	$(document).ready(function(){
		function browserIe(){
			if ($.browser.msie && $.browser.version < 7) {
			   $("li div").each(function(){
					var HeightValue = $(this).height();
					if(HeightValue >= 80){
						$(this).css("height","80px");
				   }
				   else{
						$(this).css("height","auto");
				   }
			   });
			}
		}
		function closeEvent(){
			$("span.close").click(function(){
				$(".wrap,div.comparison,iframe.ie6Bug").hide();
				$(".field #choose").attr("checked","");
				$("select").show();
			});
		}
		$("#choose").bind("click",function(event){
			$(".comparison").load("popUpBox.html",function(){
				var bodyWidth = document.documentElement.clientWidth;       
				if($("#choose").attr("checked")){
					$("<div class='wrap'></div>").appendTo("body");
					if ($.browser.msie && $.browser.version < 7) {
						$("<iframe class='ie6Bug'></iframe>").appendTo("body");
						$("select").hide();
						$(".wrap").width($(document).width()-21);
						$(".wrap").height($(document).height()-4);
					}
					$(".ie6Bug").width(parseInt($(".comparison").width()) + parseInt($(".comparison").css("padding-left")) + parseInt($(".comparison").css("padding-right")));
					$(".ie6Bug").height(parseInt($(".comparison").height()) + parseInt($(".comparison").css("padding-top")) + parseInt($(".comparison").css("padding-bottom")));
					$("div.comparison,.ie6Bug").css({"left":(bodyWidth-$('div.comparison').width()) / 2 + "px","top":(document.documentElement.clientHeight-$('div.comparison').height()) / 2 + document.documentElement.scrollTop + "px"}).show();
					browserIe();
					closeEvent();
				}	
			});
		});
	})
</script>

1 . 通过ajax方法在当前index页面点击input后load一个新页面popUpBox.

2 . 为了区分弹出层内容和当前页的内容,需要在中间插入一个层,给背景色,用滤镜调整透明度。

动态获取当前页面的宽度。

var bodyWidth = document.documentElement.clientWidth;

document.documentElement.clientHeight指当前浏览器的可视范围内高度。

关于怎么取页面宽度高度的各种问题大家可以googe一下,方法很多。

http://www.jzym.net/article/sort019/sort0302/sort0318/info-3634.html

网页可见区域宽: document.body.clientWidth;
网页可见区域高: document.body.clientHeight;
网页可见区域高: document.body.offsetWeight //包括边线的宽
网页可见区域高: document.body.offsetHeight   //包括边线的宽
网页正文全文宽: document.body.scrollWidth
网页正文全文高: document.body.scrollHeight
网页被卷去的高: document.body.scrollTop
网页被卷去的左: document.body.scrollLeft
网页正文部分上: window.screenTop
网页正文部分左: window.screenLeft
屏幕分辨率的高: window.screen.height
屏幕分辨率的宽: window.screen.width
屏幕可用工作区宽度: window.screen.availWidth
屏幕可用工作区高度: window.screen.availHeight

3 .通过绝对定位让弹出框显示在水平,垂直居中的位置。

$("div.comparison,.ie6Bug").css({"left":(bodyWidth-$('div.comparison').width()) / 2 + "px","top":(document.documentElement.clientHeight-$('div.comparison').height()) / 2 + document.documentElement.scrollTop + "px"}).show();

left:用(浏览器的可视宽度-弹出层的宽度)/2

top:用(浏览器的一屏高度-弹出层的高度)/2 + 纵向滚动条滚过的高度

4 .解决ie6的bug

a.如果弹出层下面是select框就遮不住,需要在当前页面和弹出层之间加一个iframe层就可以遮住当前页面的select,iframe层的大小和弹出层的大小一样。

b.弹出层以外的select框只有当弹出层出现后让select框隐藏,关闭弹出层后在让select框出现

c.或者用input框+js来模拟select框就不会出现a,b的问题。

5 .弹出层里的内容是两个div模拟的文本框,用max-height给最大高度,ie6不认max-height.

那么判断当前浏览器和版本,用js动态取文本框的高度来设定最大高度

6 .jquery的两个弹出层插件

UI Block

UI dialog

15
9
分享到:
评论
6 楼 wangzhen1984815 2008-12-02  
学习,谢谢
5 楼 yucc77 2008-12-01  
果然是在学习
4 楼 linginfanta 2008-12-01  
你又造了一个轮子。
3 楼 ice-cream 2008-12-01  
playfish 写道

弹出层。。。为什么还要造轮子呢。。jquery很多插件有这个效果的。另外官方的也有dialog UI,还有一个blockUI插件也很强大

那都是别人写的现成的,自己写一个体验一下,学习学习。
2 楼 playfish 2008-12-01  
弹出层。。。为什么还要造轮子呢。。jquery很多插件有这个效果的。另外官方的也有dialog UI,还有一个blockUI插件也很强大
1 楼 上一站,火星 2008-12-01  
Math.max(document.documentElement.clientHeight,document.body.scrollHeight);


恩,这个方法比较好用

相关推荐

    自写jQuery插件,实现简单网页遮罩层/弹出层功能,兼容IE6、IE7

    实现弹出网页遮罩层,可兼容IE6/IE7/IE+++等; 缩放浏览器时,内容狂始终居中; 有点小bug,在IE6下,遮罩层颜色没透明,屎黑色,等我有空完善下。

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

    《jQuery弹出层技术详解与应用实践》 在网页开发中,用户交互体验的重要性日益凸显,其中弹出层(Popup Layer)作为一种常见的交互元素,被广泛应用于提示信息、表单填写、图片预览等场景。jQuery,作为JavaScript...

    jquery弹出层

    《jQuery弹出层技术详解与应用实践》 在网页设计中,弹出层是一种常见的交互方式,用于在不离开当前页面的情况下展示额外的信息或功能。jQuery作为一款强大的JavaScript库,提供了丰富的API和插件,使得实现弹出层...

    jquery弹出层特效

    本文将详细探讨"jquery弹出层特效"这一主题,以及相关文件如何实现这一功能。 首先,标题"jquery弹出层特效"指的是使用jQuery库创建的弹出窗口或模态对话框效果。在网页设计中,弹出层通常用于显示警告信息、用户...

    jquery弹出层 jquery弹出层 jquery弹出层

    标题“jquery弹出层”暗示我们将会探讨的是如何使用jQuery来实现网页上的弹出层效果,这在网页设计中是非常常见的一种功能,用于显示警告、信息、确认对话框或者复杂的模态窗口。 首先,让我们理解什么是弹出层。弹...

    Jquery 图片弹出层框架

    **jQuery图片弹出层框架详解** 在Web开发中,经常需要实现一种效果,即当用户点击图片链接时,图片能够以弹出层的形式全屏展示,这种功能在jQuery库的支持下变得非常简单。"jQuery图片弹出层框架"就是一种实现这种...

    漂亮的jquery 弹出层

    标题中的“漂亮的jquery 弹出层”指的是使用jQuery库实现的一种视觉效果良好的弹出窗口功能。在网页设计中,弹出层(也称为模态窗口或对话框)是一种常见的交互元素,用于显示额外的信息、提示用户操作或者进行表单...

    jquery弹出层框架方便简单

    《jQuery弹出层框架——便捷美观的dialogs实现》 在Web开发中,用户交互体验是至关重要的一个环节,其中弹出层(popup layer)作为常见的一种交互方式,被广泛应用于消息提示、表单填写、信息展示等场景。jQuery库...

    jquery登录弹出层

    首先,我们要理解jQuery弹出层的基本原理。通常,弹出层是通过CSS定位和JavaScript控制显示与隐藏来实现的。在jQuery中,我们可以利用`.show()`和`.hide()`方法来控制元素的可见性,而`.fadeIn()`和`.fadeOut()`则...

    jquery弹出层插件

    《jQuery弹出层插件深度解析》 在Web开发领域,jQuery库因其简洁的API和强大的功能而广受开发者喜爱。对于用户交互和界面展示,弹出层(Modal)是不可或缺的一部分,它能够吸引用户的注意力并提供额外的信息或操作...

    jQuery弹出层

    **jQuery弹出层详解** 在Web开发中,弹出层是一种常见的交互元素,用于显示临时信息、用户对话或进行操作确认。本篇文章将深入探讨如何使用jQuery实现弹出层功能,以及相关源码分析和应用工具。 首先,jQuery库...

    jQuery弹出层 可加载iframe 功能强大 简单易用

    jQuery弹出层是一种常见的网页交互元素,用于在用户与页面交互时显示额外信息或功能,如提示、对话框、表单、或者加载外部内容。在这个特定的案例中,标题和描述提到的“jQuery弹出层可加载iframe”指的是一个利用...

    Jquery弹出层时尚特效10种

    【jQuery弹出层时尚特效10种】 在Web开发中,弹出层(Modal)是一种常用的交互元素,它能够在用户不离开当前页面的情况下显示额外的信息或功能。jQuery库以其强大的DOM操作和事件处理能力,为创建弹出层特效提供了...

    jquery弹出层不关闭 父页面刷新

    在IT领域,尤其是在Web开发中,"jquery弹出层不关闭 父页面刷新"是一个常见的交互需求。这里,我们主要讨论如何使用jQuery实现这样的功能,即在一个弹出层(通常是一个模态对话框)显示时,用户可以操作父页面而不会...

    jquery colorbox弹出层插件制作图片弹出显示代码

    《jQuery Colorbox弹出层插件:实现图片弹出显示的代码详解》 在Web开发中,为了提供更好的用户体验,我们常常需要实现一种效果:当用户点击某个元素时,图片或者其他内容以弹出层的形式展示出来。jQuery Colorbox...

    jquery 弹出层插件

    **jQuery弹出层插件详解** 在Web开发中,弹出层(Popup)是一种常见的交互设计元素,用于显示额外的信息、对话框或者进行特定操作。jQuery作为一款强大的JavaScript库,提供了丰富的插件来实现弹出层功能。本文将...

    jquery弹出层特效超炫

    《jQuery弹出层特效:打造超炫用户体验》 在网页设计和开发中,弹出层是一种常见的交互元素,用于展示信息、提示用户或进行交互操作。jQuery作为一个强大的JavaScript库,为实现这种效果提供了丰富的功能和便利。本...

    JQuery 弹出层,始终显示在屏幕正中间

    JQuery 弹出层始终显示在屏幕正中间 在 Web 开发中,弹出层是常见的交互效果,通常用于提示信息、确认操作或显示详细信息。本文将详细介绍如何使用 JQuery 实现弹出层始终显示在屏幕正中间。 首先,需要定义弹出层...

    jquery 弹出层,点击链接弹出,不支持框架

    首先,让我们了解jQuery弹出层的基本概念。弹出层通常指的是在用户与页面交互时,如点击按钮或链接,会在当前页面上弹出一个浮动窗口,显示额外的信息或功能。这种效果可以用来展示详细信息、表单、图片等,而不会...

    jquery dialog弹出层

    而jQuery UI则是在jQuery基础上扩展的一套交互式用户界面组件库,其中包括一个强大的对话框(Dialog)功能,即“jQuery dialog弹出层”。这个弹出层在网页应用中广泛用于创建模态或非模态警告、提示、确认或者更复杂...

Global site tag (gtag.js) - Google Analytics