JS实现的仿QQ空间图片弹出效果代码
本文实例讲述了JS实现的仿QQ空间图片弹出效果代码。分享给大家供大家参考,具体如下:
<scripttype="text/javascript">
functionimageShow(which_click){
varimage_path=which_click;
//alert(image_path);
vartag_top=Math.max(document.documentElement.scrollTop,document.body.scrollTop);
//创建底层灰色DIV
varindex_tag=document.createElement("div");
index_tag.style.cssText="width:100%;height:"+Math.max(document.body.clientHeight,document.body.offsetHeight,document.documentElement.clientHeight)+"px;position:relative;background:black;top:0;filter:Alpha(Opacity=80);Opacity:0.8;";
document.body.appendChild(index_tag);
//index_tag.ondblclick=closeIndexTag;
index_tag.onclick=closeIndexTag;
//创建图片DIV
varimg_tag=document.createElement("div");
img_tag.style.cssText="font:12px/18pxverdana;overflow:auto;text-align:center;position:absolute;width:200px;border:5pxsolidwhite;background:white;color:white;left:"+(parseInt(document.body.offsetWidth)/2-100)+"px;top:"+(document.documentElement.clientHeight/3+tag_top)+"px;";
img_tag.innerHTML="<divstyle='padding:10px;background:#cccccc;border:1pxsolidwhite'><imgsrc='images/loading.gif'/><br/><br/><bstyle='color:#999999;font-weight:normal'>Imageloading...</b><br/></div>";
img_tag.oncontextmenu=function(){
varclsOK=confirm("是否确定关闭图片显示");
if(clsOK)
closeIndexTag();
returnfalse;
}
img_tag.onclick=closeIndexTag;
//img_tag.onmousemove=barDidplay;
document.body.appendChild(img_tag);
//构建图片关闭按钮
varclose_tag=document.createElement("div");
close_tag.style.cssText="display:none;position:absolute;left:10px;top:10px;color:black;";
close_tag.innerHTML="<bstyle='background:none;border:0pxsolidwhite;filter:Alpha(Opacity=50);Opacity:0.5;cursor:pointer;'>关闭</b>";
close_tag.onclick=closeIndexTag;
varimg=newImage();
img.src=image_path;
img.style.cssText="border:1pxsolid#cccccc;filter:Alpha(Opacity=0);Opacity:0;cursor:pointer";
img.onload=imgOK();
functionimgOK(){
vartemp=0;
varstop_x=false;
varstop_y=false;
varimg_tag_x=img_tag.offsetWidth;
varimg_tag_y=img_tag.offsetHeight;
varimg_x=img.width;
varimg_y=img.height;
varscroll_x=document.documentElement.clientWidth;
varscroll_y=window.innerHeight||document.documentElement.clientHeight;
varyy=0;
varxx=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';
varmaxTime=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);
}
functioncloseIndexTag(){
document.body.removeChild(index_tag);
document.body.removeChild(img_tag);
}
functionimgOpacity(temp_imgOpacity){
vartemp=temp_imgOpacity;
temp+=10;
img.style.filter="alpha(opacity="+temp+")";
img.style.opacity=temp/100;
varimgTime=setTimeout(function(){imgOpacity(temp);},10);
if(temp>100)
clearTimeout(imgTime);
}
varbar_show;
functionbarDidplay(){
clearTimeout(bar_show);
close_tag.style.display="block";
bar_show=setTimeout(function(){close_tag.style.display="none"},1000);
}
}
</script>
html部分:
<aclass="add"href="javascript:;"onclick="imageShow('img/hn_bg.jpg')">
<span>图片效果</span>
</a>
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript查找算法技巧总结》、《JavaScript动画特效与技巧汇总》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》
希望本文所述对大家JavaScript程序设计有所帮助。