实现图片遮罩层展示页面的方法

发布时间:2020-02-06编辑:脚本学堂
最近一段时间,实现图片遮罩层展示页面受到主流网站的重视,QQ空间和人人网两大社区采用了此种方法展示照片。方法实用:不用重新打开窗口;点击空白区域自动关闭;背景半透明,突出主题。大家是不是很想学一下实现的方法?请看下文吧!

html代码:
 

复制代码 代码示例:
<body class="body">
<p>
<a href="www.jb200.com" rel="Imgbox"><img src="www.jb200.com.jpg" alt="点我啊" title="点击我显示大图片"></a>
</p>
</body>
 

注意:body标签中的class属性很关键,不要漏掉。。。

然后就是写js了:
 

复制代码 代码示例:

function topDiv(el){
var elem=document.createElement("div");
elem.className="top-div";
//=========生成图片标签
var img=document.createElement("img");
img.src=el.href;
elem.appendChild(img);
//=========生成遮罩层的关闭按钮
var closediv=document.createElement("div");
closeDiv.innerHTML="关闭";
closeDiv.onclick=function(){
document.body.removeChild(elem);
document.body.removeChild(alpha);
}
closeDiv.style.position="absolute";
closeDiv.style.right="2px";
closeDiv.style.top="2px";
closeDiv.style.fontSize="12px";
closeDiv.style.color="red";
closeDiv.style.border="1px solid #333";
closeDiv.style.backgroundColor="#eee";
closeDiv.style.cursor="hand";
elem.appendChild(closeDiv);
//=========将生成的遮罩层附到 body 标签内
document.body.appendChild(elem);
var alpha = alphaDiv(elem);
}

function alphaDiv(el){
var elem=document.createElement("div");
elem.className="alphaDiv";
elem.onclick=function(e){
document.body.removeChild(elem);
document.body.removeChild(el);
}
document.body.appendChild(elem);
return elem;
}

onload=function(){
var links=document.getElementsByTagName("a");
for(var i=0,len=links.length;i<len;i++){
if(links[i].rel=="Imgbox"){
links[i].onclick=function(){
topDiv(this);
return false;
}
}
}
}
 

加上CSS代码:
 

复制代码 代码示例:
.alphaDiv{
z-index:100;
width:100%;
height:100%;
opacity:0.5;
background:#666666;
top:0;
left:0;
position:absolute;
filter:alpha(opacity=50);
}
.top-div{
z-index:101;
border:1px solid #333;
padding:2px;
background:#eee;
position:absolute;
}
a{
outline:none;
}
 

完成了,可以在自己的图片上应用这种遮罩效果了。