javascript實現動態側邊欄

奮程式序猿發表於2014-02-18

總的來說就是利用 滑鼠懸停onmouseover   和  滑鼠移除onmouseout 這兩個時間來完成的。

首先是HTML 結構

<body>
<div id="div1">
<span>側邊欄</span>
</div>
</body>

然後是css的樣式:

#div1{
    width:150px;
    height:200px;
    background:#999999;
    position:absolute;
    left:-150px;}
span{
    width:20px;
    height:70px;
    line-height:23px;
    background:#09C;
    position:absolute;
    right:-20px;
    top:70px;}

預設的樣式 側邊欄是隱藏起來的如圖

 

 

當滑鼠移入以後如圖:

 

 

下面是完整程式碼:

<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題文件</title>
<style type="text/css">
#div1{
    width:150px;
    height:200px;
    background:#999999;
    position:absolute;
    left:-150px;}
span{
    width:20px;
    height:70px;
    line-height:23px;
    background:#09C;
    position:absolute;
    right:-20px;
    top:70px;}
</style>
<script>
window.onload=function(){
    var odiv=document.getElementById('div1');
   odiv.onmouseover=function ()
   {
       
        startmove(0,10);//第一個引數為div   left屬性的目標值   第二個為 每次移動多少畫素
       
       }
  odiv.onmouseout=function ()
  {
     startmove(-150,-10);
      }
    }
    
    var timer=null;
function startmove(target,speed)
{
     
    var odiv=document.getElementById('div1');
clearInterval(timer);
     timer=setInterval(function (){
        
        if(odiv.offsetLeft==target)
        {
            clearInterval(timer);
            }
            else
            {    
        odiv.style.left=odiv.offsetLeft+speed+'px';
            }
        
        },30)
    
    }
    
</script>
</head>

<body>
<div id="div1">
<span>側邊欄</span>
</div>
</body>
</html>

 

大家如果有什麼建議可以提出來!!謝謝!!

 

相關文章