鼠標跟隨圖片看大圖


<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>跟隨鼠標移動(大圖展示)</title>
<style type="text/css">
html,body{overflow:hidden;}
body,div,ul,li{margin:0;padding:0;}
#box ul{width:768px;height:172px;list-style-type:none;margin:10px auto;}
#box li{float:left;width:170px;height:170px;cursor:pointer;display:inline;border:1px solid #ddd;margin:0 10px;}
#box li.active{border:1px solid #a10000;}
#box li img{width:170px;height:170px;vertical-align:top;}
#big{position:absolute;width:400px;height:400px;border:2px solid #ddd;display:none;}
#big div{position:absolute;top:0;left:0;width:400px;height:400px;opacity:0.5;filter:alpha(opacity=50);background:#fff url(http://js.fgm.cc/learn/lesson5/img/loading.gif) 50% 50% no-repeat;}
</style>
<script type="text/javascript">
window.onload = function ()
{
 var aLi = document.getElementsByTagName("li");
 var oBig = document.getElementById("big");
 var oLoading = oBig.getElementsByTagName("div")[0];
 var i = 0;
 
 for (i = 0; i < aLi.length; i++)
 {
  aLi[i].index = i;
  //鼠標劃過, 預加載圖片插入容器並顯示
  aLi[i].onmouseover = function ()
  {
   var oImg = document.createElement("img");
   //圖片預加載
   var img = new Image();   
   img.src = oImg.src = aLi[this.index].getElementsByTagName("img")[0].src.replace(".jpg","_big.jpg");
   //插入大圖片
   oBig.appendChild(oImg);
   //鼠標移過樣式
   this.className = "active";
   //顯示big
   oBig.style.display = oLoading.style.display = "block";
   //判斷大圖是否加載成功
   img.complete ? oLoading.style.display = "none" : (oImg.onload = function() {oLoading.style.display = "none";})  
  };
  //鼠標移動, 大圖容器跟隨鼠標移動
  aLi[i].onmousemove = function (event)
  {
   var event = event || window.event;
   var iWidth = document.documentElement.offsetWidth - event.clientX;
   //設置big的top值
   oBig.style.top = event.clientY + 20 + "px";
   //設置big的left值, 如果右側顯示區域不夠, 大圖將在鼠標左側顯示.
   oBig.style.left = (iWidth < oBig.offsetWidth + 10 ? event.clientX - oBig.offsetWidth - 10 : event.clientX + 10) + "px";
   
  };
  //鼠標離開, 刪除大圖並隱藏大圖容器
  aLi[i].onmouseout = function ()
  {
   this.className = "";
   oBig.style.display = "none";
   //移除大圖片
   oBig.removeChild(oBig.lastChild)
  }
 }
};
</script>
</head>
<body>
<div id="box">
    <ul>
     <li><img src="http://js.fgm.cc/learn/lesson5/img/shirt_1.jpg" /></li>
        <li><img src="http://js.fgm.cc/learn/lesson5/img/shirt_2.jpg" /></li>
        <li><img src="http://js.fgm.cc/learn/lesson5/img/shirt_3.jpg" /></li>
        <li><img src="http://js.fgm.cc/learn/lesson5/img/shirt_4.jpg" /></li>
    </ul>
</div>
<div id="big"><div></div></div>
</body>
</html>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章