网站首页 手机版
 注册 登录
您现在的位置: 畅无忧设计 >> 网页特效 >> 背景图像 >> 正文
最新文章
· 带文字说明的js幻灯片代码
· 浏览器全屏浏览图片集
· 创意中国flash+xml焦点图代码
· 仿QQ商城焦点图jquery幻灯特效
· 带缓冲效果的图片幻灯片
· css和jquery配合完成-ipad向左向右拖
· 图片自动按比例缩小代码(防止页面被
· 仿QQ新闻图片浏览效果
· 一个横向滑动的图片切换容器代码
· 鼠标移入/移出改变图片透明度
热门文章
 图片上的左右箭头切换上一张下一张
 带缩略图和左右箭头自动切换的图片
 产品展示专用的jQuery图片幻灯+缩略
 Flash+XML前后按钮的超漂亮图片切换
 图片左右滚动,带有左右方向控制
 Jquery幻灯片/焦点图插件KinSlides
 JS 图片左右滚动,图片控制左右滚动
 可控制左右滚动的无缝图片滚动特效
 可控制图片放大缩小还原移动效果的
 非常漂亮的JS带缩略图的幻灯图片切
相关文章
没有相关文章
JS/CSS点小图弹大图实例代码
来源:源码爱好者 更新时间:2010/8/14 23:43:39 阅读次数: 我要投稿
△运行 ☉预览 #复制 +收藏
特效代码:
<!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" xml:lang="zh">
<head>
 <meta http-equiv="content-type" content="text/html; charset=utf-8" />
 <title>小图弹大图</title>
 <style type="text/css">
  body { background:#f1f1f1; margin:0 }
  #workDemo { width:100%; }
  #workDemo a { width: 150px; height:90px; margin:5px; padding:0; border:gray 5px solid; float:left; overflow:hidden; text-decoration:none; display:block; position:relative }
  #workDemo a span { display:none; }
  #workDemo a img { border:none; }
  #workDemo a:hover { border-color:red; }
  #workDemo a:hover span { position:absolute; background:red; color:white; width:100%; padding-top:3px; text-align:center;  right:0; bottom:0; display:block; font-size:11px; filter: Alpha(Opacity=60);Opacity:0.6; }
 </style>
</head>
<body>
<div id="workDemo">
<a href="#"><img src="/effects/UploadFiles_7074/201008/2010081423463115.jpg" /><span>把浏览器窗口放小后点击</span></a>
<a href="#"><img src="/effects/UploadFiles_7074/201008/2010081423463177.jpg" /><span>把浏览器窗口放小后点击</span></a>
</div>
<script type="text/javascript">
function ImgShow(evt){
 var imgTag=(window.event)?event.srcElement:evt.target;
 var imgPath=imgTag.src.replace(/\_\d\./,"_4.");//取得弹出的大图url
 var tagTop=Math.max(document.documentElement.scrollTop,document.body.scrollTop);
 var tag=document.createElement("div");
  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;";
  tag.ondblclick=closes;
 var tagImg=document.createElement("div");
  tagImg.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+tagTop)+"px;"
  tagImg.innerHTML="<div style='padding:10px;background:#cccccc;border:1px solid white'><img src='http://www.codefans.net/jscss/loading.gif' /><br /><br /><b style='color:#999999;font-weight:normal'>Image loading...</b><br /></div>";
  tagImg.oncontextmenu=function(){var clsOK=confirm("确定要取消图片显示吗?点击确定将关闭图片。\n如果您是想缩放图片请在图片上双击。"); if(clsOK){closes();};return false};
 var closeTag=document.createElement("div");
  closeTag.style.cssText="display:none;position:absolute;left:10px;top:10px;color:black;";
  var closesHtml="<b style='background:red;border:1px solid white;filter:Alpha(Opacity=50);Opacity:0.5;cursor:pointer;'> 关闭 </b>";
  closeTag.innerHTML=closesHtml+" 提示:双击图片缩放";
  closeTag.onclick=closes;
 document.body.appendChild(tag);
 document.body.appendChild(tagImg);
 var img=new Image();
  img.src=imgPath;
  img.style.cssText="border:1px solid #cccccc;filter: Alpha(Opacity=0);Opacity:0;cursor:pointer";
 var barShow,imgTime;
 img.complete?ImgOK():img.onload=ImgOK;
 function ImgOK(){
  var Stop1=false,Stop2=false,temp=0;
  var tx=tagImg.offsetWidth,ty=tagImg.offsetHeight;
  var ix=img.width,iy=img.height;
  var sx=document.documentElement.clientWidth,sy=window.innerHeight||document.documentElement.clientHeight;
  if(iy>sy||ix>sx){
    var yy=sy-100;
    var xx=(ix/iy)*yy;
  }else{
   var xx=ix+4;
   var yy=iy+3;
  }
   img.style.width=xx-4+'px';
   img.style.height=yy-3+'px';
  if(ix<sx&&iy<sy){tagImg.alt="";closeTag.innerHTML=closesHtml;};
  var maxTime=setInterval(function(){
   temp+=35;
   if((tx+temp)<xx){
    tagImg.style.width=(tx+temp)+"px";
    tagImg.style.left=(sx-(tx+temp))/2+"px";
   }else{
    Stop1=true;
    tagImg.style.width=xx+"px";
    tagImg.style.left=(sx-xx)/2+"px";
   }
   if((ty+temp)<yy){
    tagImg.style.height=(ty+temp)+"px";
    tagImg.style.top=(tagTop+((sy-(ty+temp))/2))+"px";
   }else{
    Stop2=true;
    tagImg.style.height=yy+"px";
    tagImg.style.top=(tagTop+((sy-yy)/2))+"px";
   }
   if(Stop1&&Stop2){
    clearInterval(maxTime);
    tagImg.appendChild(img);
    temp=0;
    imgOPacity();
   }
  },1);
  function imgOPacity(){
   temp+=10;
   img.style.filter="alpha(opacity="+temp+")";
   img.style.opacity=temp/100;
   imgTime=setTimeout(imgOPacity,1)
   if(temp>100) clearTimeout(imgTime);
  }
  tagImg.innerHTML="";
  tagImg.appendChild(closeTag);
   
  if(ix>xx||iy>yy){
   img.alt="左键拖动,双击放大缩小";
   img.ondblclick=function (){
    if(tagImg.offsetWidth<img.offsetWidth||tagImg.offsetHeight<img.offsetHeight){
     img.style.width="auto";
     img.style.height="100%";
     img.alt="双击可以放大";
     img.onmousedown=null;
     closeTag.style.top="10px";
     closeTag.style.left="10px";
     tagImg.style.overflow="visible";
     tagImg.style.width=img.offsetWidth+"px";
     tagImg.style.left=((sx-img.offsetWidth)/2)+"px";
    }else{
     img.style.width=ix+"px";
     img.style.height=iy+"px";
     img.alt="双击可以缩小";
     img.onmousedown=dragDown;
     tagImg.style.overflow="auto";
     tagImg.style.width=(ix<sx-100?ix+20:sx-100)+"px";
     tagImg.style.left=((sx-(ix<sx-100?ix+20:sx-100))/2)+"px";
    }
   }
   img.onmousedown=dragDown;
   tagImg.onmousemove=barHidden;
   tagImg.onmouseout=moveStop;
   document.onmouseup=moveStop;
  }else{
   tagImg.style.overflow="visible";
   tagImg.onmousemove=barHidden;
  }
 }
 function dragDown(a){
  img.style.cursor="move";
  var evts=a||window.event;
  var onx=evts.clientX,ony=evts.clientY;
  var sox=tagImg.scrollLeft,soy=tagImg.scrollTop;
  var sow=img.width+2-tagImg.clientWidth,soh=img.height+2-tagImg.clientHeight;
  var xxleft,yytop;
  document.onmousemove=function(e){
   var evt=e||window.event;
   xxleft=sox-(evt.clientX-onx)<0?"0":sox-(evt.clientX-onx)>sow?sow:sox-(evt.clientX-onx);
   yytop=soy-(evt.clientY-ony)<0?"0":soy-(evt.clientY-ony)>soh?soh:soy-(evt.clientY-ony);
   tagImg.scrollTop=yytop;
   tagImg.scrollLeft=xxleft;
   closeTag.style.top=(yytop+10)+"px";
   closeTag.style.left=(xxleft+10)+"px";
   return false;
  }
  return false;
 }
 function barHidden(){
  clearTimeout(barShow);
  closeTag.style.top=(tagImg.scrollTop+10)+"px";
  closeTag.style.left=(tagImg.scrollLeft+10)+"px";
  if(closeTag.style.display=="none")closeTag.style.display="block";
  barShow=setTimeout(function(){closeTag.style.display="none";},1000);
 }
 function closes(){
  document.body.removeChild(tag);
  document.body.removeChild(tagImg);
  clearTimeout(barShow);
  clearTimeout(imgTime);
  document.onmouseup=null;
  tag=img=tagImg=closeTag=null;
 }
 function moveStop(){
  document.onmousemove=null;
  tagImg.onmousemove=barHidden;
  img.style.cursor="pointer";
 }
}
//事件绑定部分
if(document.getElementById("workDemo")){
 var workTag=document.getElementById("workDemo");
 var workImg=workTag.getElementsByTagName("img"); //注册此处会把 workDemo下的所有img选中,包括子集下的子集。
 var worka=workTag.getElementsByTagName("a");
 for(var i=0; i<workImg.length; i++){workImg[i].onclick=ImgShow;worka[i].href="##"}
}
</script></body>
△运行 ☉预览 #复制 +收藏
特效说明:

  JavaScript/CSS共同实现点小图弹大图效果代码,兼容IE6/7/8,火狐下表现也不错,代码中有注释,使用前请注意注释部分的代码。

  • 上一篇文章:
  • 下一篇文章:
  • 关于我们 - 联系我们 - 广告服务 - 在线投稿 - 友情链接 - 网站地图 - 版权声明
    CopyRight 2008-2010, CWYDESIGN.COM - 畅无忧设计, Inc. All Rights Reserved
    滇ICP备09005765号