`
longxingtx520
  • 浏览: 17843 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

仿QQ空间图片弹出效果

    博客分类:
  • js
阅读更多

参考网上代码,自己做了一个仿QQ空间图片弹出效果,但现在还无法在弹出层切换图片。

以下是js代码:

function imageShow(which_click) {
		var image_path = which_click.src;
		//alert(image_path);
		var tag_top = Math.max(document.documentElement.scrollTop, document.body.scrollTop);
		
		//创建底层灰色DIV
		var index_tag = document.createElement("div");
		index_tag.style.cssText = "width:100%;height:"+Math.max(document.body.clientHeight,document.body.offsetHeight,document.documentElement.clientHeight)+"px;position:absolute;background:black;top:0;filter: Alpha(Opacity=80);Opacity:0.8;";
		document.body.appendChild(index_tag);
		index_tag.ondblclick = closeIndexTag;
		
		//创建图片DIV
		var img_tag = document.createElement("div");
		img_tag.style.cssText = "font:12px /18px verdana;overflow:auto;text-align:center;position:absolute;width:200px;border:5px solid white;background:white;color:white;left:"+(parseInt(document.body.offsetWidth)/2-100)+"px;top:"+(document.documentElement.clientHeight/3+tag_top)+"px;";
		img_tag.innerHTML = "<div style='padding:10px;background:#cccccc;border:1px solid white'><img src='images/loading.gif' /><br /><br /><b style='color:#999999;font-weight:normal'>Image loading...</b><br /></div>";
		img_tag.oncontextmenu = function() {
			var clsOK=confirm("是否确定关闭图片显示"); 
			if(clsOK)
				closeIndexTag();
			return false;
		}
		img_tag.onmousemove = barDidplay;
		document.body.appendChild(img_tag);
		
		//构建图片关闭按钮
		var close_tag = document.createElement("div");
		close_tag.style.cssText = "display:none;position:absolute;left:10px;top:10px;color:black;";
		close_tag.innerHTML = "<b style='background:red;border:1px solid white;filter:Alpha(Opacity=50);Opacity:0.5;cursor:pointer;'>&nbsp;关闭&nbsp;</b>";
		close_tag.onclick = closeIndexTag;
		
		var img = new Image();
		img.src = image_path;
		img.style.cssText = "border:1px solid #cccccc;filter: Alpha(Opacity=0);Opacity:0;cursor:pointer";
		img.onload = imgOK();
		
		function imgOK() {
			var temp = 0;
			
			var stop_x = false;
			var stop_y = false;
			var img_tag_x = img_tag.offsetWidth;
			var img_tag_y = img_tag.offsetHeight;
			var img_x = img.width;
			var img_y = img.height;
			var scroll_x=document.documentElement.clientWidth;
			var scroll_y=window.innerHeight||document.documentElement.clientHeight;
			var yy = 0;
			var xx = 0;
			if(img_y > scroll_y || img_x > scroll_x){
				yy = scroll_y - 100;
				xx = (img_x / img_y) * yy;
			}else{
				xx = img_x + 4;
				yy = img_y + 3;
			}
			img.style.width=xx-4+'px';
			img.style.height=yy-3+'px';
			
			var maxTime = setInterval(function() {
				temp += 30;
				if((img_tag_x + temp) < xx) {
					img_tag.style.width = (img_tag_x + temp) + "px";
					img_tag.style.left = (scroll_x - img_tag_x - temp)/2 + "px";
				} else {
					stop_x = true;
					img_tag.style.width = xx + "px";
					img_tag.style.left = (scroll_x - xx)/2 + "px";
				}
				if((img_tag_y + temp) < yy) {
					img_tag.style.height = (img_tag_y + temp) + "px";
					img_tag.style.top = (tag_top + (scroll_y - img_tag_y - temp)/2) + "px";
				} else {
					stop_y = true;
					img_tag.style.height = yy + "px";
					img_tag.style.top = (tag_top + (scroll_y - yy)/2) + "px";
				}
				if(stop_x && stop_y) {
					clearInterval(maxTime);
					img_tag.appendChild(img);
					temp = 0;
					imgOpacity(temp);
				}
			}, 1);
			img_tag.innerHTML="";
			img_tag.appendChild(close_tag);
		}		
		
		function closeIndexTag() {
			document.body.removeChild(index_tag);
			document.body.removeChild(img_tag);
		}
		
		function imgOpacity(temp_imgOpacity) {
					var temp = temp_imgOpacity;
					temp += 10;
					img.style.filter = "alpha(opacity=" + temp + ")";
					img.style.opacity = temp/100;
					var imgTime = setTimeout(function() {imgOpacity(temp);}, 10);
					if(temp > 100)
						clearTimeout(imgTime);
		}
		
		var bar_show;
		function barDidplay(){
			clearTimeout(bar_show);
			close_tag.style.display = "block";
			bar_show = setTimeout(function() {close_tag.style.display = "none"}, 1000);
		}
}

 

分享到:
评论
31 楼 alask2011 2011-05-17  
要是能切换图片就好了,楼主努力尝试下
30 楼 Dev|il 2011-05-17  
nnnnn分vcxzcv
29 楼 Dev|il 2011-05-17  
没图,求真相
28 楼 gongrunlian 2011-05-16  
虽然有点小bug但还是很不错的,加油,向你学习
27 楼 小手冰凉 2011-05-13  
挺不错的。感谢
26 楼 4268146 2011-05-06  
呵,我先看看……可以的话,当然要支持一下了
25 楼 ws347575294 2011-05-05  
不错啊 ,学习了。。
24 楼 wj6175256 2011-04-29  
很强大,学习学习!
23 楼 yjhailsl 2011-03-11  
刚下了,很不错,不过 杨幂的qq号是真  的不是?
22 楼 tanchong 2011-03-03  
[html]
    [span]aaaa[/span]
[/html]
21 楼 bn922 2011-03-03  
菜鸟,怎么图片很多 弹出的图片居中 但页面跑到顶部去了 要让他显示在弹出的图片那里 怎么改?
20 楼 jiahch 2011-02-24  

colorbox!
19 楼 andyfish915 2011-02-23  
是的,做得真不错,大家需要用的也可以在这基础上改改,和楼主交流交流
18 楼 dir_murong 2011-02-22  
做的不错 赞一个
17 楼 satanultra 2011-02-21  
用心了         
16 楼 TonyBug 2011-02-21  
里面存在脚本错误,上面所有楼上面的大虾们都没有发现吗?在火狐浏览器下面执行是没有错的,但是在IE下面执行就报脚本错误。请用IE8试试就可以到脚本错误了。错误的大致内容是尚未实现。
15 楼 sbzk 2011-02-21  
snowstone 写道
2.在loading时候,div 灰色的层占满屏幕,但是如果页面很长,灰色的div就无法遮罩全部了.


clientHeight换成scrollheight
14 楼 抢街饭 2011-02-21  
首先感谢楼主 看见你这个列子 我颇受启发 就是在火狐加载有点慢
13 楼 yangleilt 2011-02-21  
snowstone 写道
2.在loading时候,div 灰色的层占满屏幕,但是如果页面很长,灰色的div就无法遮罩全部了.

例子挺好 功能不全自己不会改改呀!
12 楼 snowstone 2011-02-20  
2.在loading时候,div 灰色的层占满屏幕,但是如果页面很长,灰色的div就无法遮罩全部了.

相关推荐

    JS实现的仿QQ空间图片弹出效果代码

    主要介绍了JS实现的仿QQ空间图片弹出效果代码,涉及JavaScript响应鼠标事件动态生成弹出层的相关技巧,需要的朋友可以参考下

    js仿QQ空间相册照片展示效果

    点击图片放大并且可以左右切换代码,弹出图片渐渐出现,效果比较良好

    仿QQ空间相片展示GreyBox

    此示例用GreyBox控件,Asp.net之DataList动态绑定图片实现仿QQ空间弹出图片效果。点击图片可以查看大图展示,图片之间的切换,有需要的朋友可以下载看看……

    仿最新版QQ空间,新浪微博底部菜单(Menu)

    仿最新版QQ空间,新浪微博底部菜单(Menu)源码,该效果是Fragment+FragmentTabHost实现仿新浪微博底部菜单栏,Fragment+PopupWindow仿QQ空间最新版底部菜单栏等,仿QQ空间的底部菜单栏效果为主,仿新浪微博底部菜单栏...

    完美实现仿QQ空间评论回复特效

    事实上,qq空间的这种实现在效果上是兼容了ie和现代浏览器的,做的非常好。上面是chrome ie8 ie7 ie6就不上图片了,太卡了,都懂得,最后本屌会附上最终例子的,当然也兼容ie6。 下面就说说怎么实现的。 先看看qq

    javascript经典效果示例

    38:___图片拖拉缩放效果(仿PHOTOSHOP) 39:___图片控制内容框的文字上下翻滚 40:___图片旋转构成3D圆环的展示特效 41:___图片点击后变灰色的CSs代码 42:___图片闪烁代码 43:___图片雷达效果,像光照一样 44:___在...

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

    2.jQuery层拖拽插件之jquery仿QQ空间的模块拖动功能插件下载 3.jQuery动感图标切换网页Tab选项卡导航代码 4.jquery封装Tab标签选项卡,内含动画版选项卡及滑动门 5.jQuery实现flash动感切换选项卡TAB插件示例 ...

    3D4U和PSDTO3D立体图像制作教程

    可以把任意一张平面的画面转换成立体图片,无需专用立体相机,更省去了冲印胶片的繁杂工序,只需要用数码相机拍摄一张平面图像,导入电脑后,就能立即制作出一幅栩栩如生的立体画面,给人以身临其境的感觉,这样,就...

    delphi 开发经验技巧宝典源码

    0223 怎样弹出ConnectionString设置页 148 0224 利用ADO获取DELETE后所影响的记录数 148 7.3 业务实现数据处理技术 149 0225 随机产生中奖号码 149 0226 使用快捷键保存数据 150 0227 密码只允许输入8位...

    vc++ 应用源码包_1

    TT--仿qq+p2p通讯(nat穿透) VC++遍历文件夹自动生成目录树 对CTree控件的操作。 vc++动态链接库(dll)编程深入浅出 内含开发文档。主要是对动态链接库的教程。 vc++动态链接库编程之DLL典型实例源代码下载 VC++仿...

    vc++ 应用源码包_2

    TT--仿qq+p2p通讯(nat穿透) VC++遍历文件夹自动生成目录树 对CTree控件的操作。 vc++动态链接库(dll)编程深入浅出 内含开发文档。主要是对动态链接库的教程。 vc++动态链接库编程之DLL典型实例源代码下载 VC++仿...

    vc++ 应用源码包_6

    TT--仿qq+p2p通讯(nat穿透) VC++遍历文件夹自动生成目录树 对CTree控件的操作。 vc++动态链接库(dll)编程深入浅出 内含开发文档。主要是对动态链接库的教程。 vc++动态链接库编程之DLL典型实例源代码下载 VC++仿...

    delphi 开发经验技巧宝典源码06

    0223 怎样弹出ConnectionString设置页 148 0224 利用ADO获取DELETE后所影响的记录数 148 7.3 业务实现数据处理技术 149 0225 随机产生中奖号码 149 0226 使用快捷键保存数据 150 0227 密码只允许输入8位...

    vc++ 应用源码包_5

    TT--仿qq+p2p通讯(nat穿透) VC++遍历文件夹自动生成目录树 对CTree控件的操作。 vc++动态链接库(dll)编程深入浅出 内含开发文档。主要是对动态链接库的教程。 vc++动态链接库编程之DLL典型实例源代码下载 VC++仿...

    vc++ 应用源码包_3

    TT--仿qq+p2p通讯(nat穿透) VC++遍历文件夹自动生成目录树 对CTree控件的操作。 vc++动态链接库(dll)编程深入浅出 内含开发文档。主要是对动态链接库的教程。 vc++动态链接库编程之DLL典型实例源代码下载 VC++仿...

    vc++ 开发实例源码包

    9:采用Messenger的弹出滑动消息提示框. 10:下载管理,虚拟文件夹. 11:自动ping. 12:连接到搜索引擎. 13:自动报告bug,建议等. 14:宏功能. 15:自动同步文件夹. 16:保存加载任务. 17:计划任务. 18:单线程下载时不能创建...

    JAVA 范例大全 光盘 资源

    实例139 模仿QQ空间的电子相册 409 实例140 会动的七彩文字 413 实例141 模仿3D渐层效果 416 实例142 模仿QQ空间的欢迎动画 418 实例143 百叶窗效果 420 实例144 闪电效果 425 实例145 模拟放大镜效果 430 ...

    微信通源码+wap手机版

    用户分享商品链接到QQ空间,微信,百度,豆瓣,微博....等等都可以返积分或则现金,完美对接ecshop推荐分享功能! 2014年9月20日更新 不同会员登陆后显示对应的会员等级价格 2014.9.26 手机产品详情页选择颜色属性...

Global site tag (gtag.js) - Google Analytics