javascript div元素彈性緩衝運動程式碼例項
彈性緩衝運動是一種比較人性化的效果,下面就通過程式碼例項做一下簡單介紹。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> *{ margin:0; padding:0; } body{ margin:5px auto; text-align:center; background:#f0f0f0; } #box{ position:absolute; top:20px; left:20px; width:100px; height:60px; border:1px solid #808; } #st{ cursor:pointer; background:#ccf; margin:5px; } #st{ display:block; } </style> <script type="text/javascript"> var el=500; var p=10; var t=20; function done(){ var cl = parseInt(getStyle(box,'left')); if(cl<el){ box.style.left = cl + Math.ceil((el-cl)/p) + 'px'; setTimeout('done()', t); } else { box.style.left = el + 'px'; this.style.display = 'none'; } } function getStyle( elem, name ){ if (elem.style[name]){ return elem.style[name]; } else if (elem.currentStyle) { return elem.currentStyle[name]; } else if (document.defaultView && document.defaultView.getComputedStyle){ name = name.replace(/([A-Z])/g,"-$1"); name = name.toLowerCase(); var s = document.defaultView.getComputedStyle(elem,""); return s && s.getPropertyValue(name); } else { return null; } } window.onload=function(){ var st = document.getElementById('st'); st.onclick=function(){done()} } </script> </head> <body> <div id="box"> <span id="st">檢視效果</span> </div> </body> </html>
上面的程式碼實現了我們的要求,下面介紹一下它的實現過程。
一.程式碼註釋:
(1).var el=500,宣告一個變數並賦值500,它規定了left屬性最大值。
(2).var p=10,宣告一個變數並賦值為10,它用來進行計算每次執行的運動尺寸。
(3).var t=20,宣告一個變數並賦值為20,它用來作為定時器函式執行延遲的時間。
(4).function done(){},此方法是實現緩衝運動的核心。
(5).var cl = parseInt(getStyle(box,'left')),獲取元素當前的left屬性值。
(6).if(cl<el){
box.style.left = cl + Math.ceil((el-cl)/p) + 'px';
setTimeout('done()', t);
} ,如果當前的left屬性值小於最大值。
就繼續設定元素的left屬性值,因為el-cl是越來越小的,所以運動速度會越來越快。
然後使用遞迴方式不斷執行done方法。
(7).else {
box.style.left = el + 'px';
this.style.display = 'none';
},否則的話
元素的left值設定為最大值。
然後隱藏當span元素。
(8).function getStyle( elem, name )此方法可以獲取元素的指定樣式屬性值,具體可以參閱相關閱讀。
二.相關閱讀:
(1).parseInt()方法可以參閱javascript parseInt()函式一章節。
(2).Math.ceil()方法可以參閱javascript Math.ceil()一章節。
(3).setTimeout()方法可以參閱setTimeout()一章節。
(4).getStyle()方法可以參閱getComputedStyle()和currentStyle屬性的用法一章節。
相關文章
- JavaScript元素上下彈性運動JavaScript
- JavaScript 緩衝運動JavaScript
- JavaScript運動框架程式碼例項JavaScript框架
- JavaScript隨滑鼠晃動的div塊程式碼例項JavaScript
- JavaScript in運算子程式碼例項JavaScript
- flex彈性佈局程式碼例項Flex
- JavaScript刪除元素節點程式碼例項JavaScript
- CSS3 Flex 彈性佈局例項程式碼詳解CSSS3Flex
- div前後翻轉效果程式碼例項
- jQuery利用name匹配元素程式碼例項jQuery
- JavaScript 例項屬性JavaScript
- CSS3星系運動效果程式碼例項CSSS3
- Qt5雙緩衝機制與例項QT
- JavaScript 阻止事件冒泡程式碼例項JavaScript事件
- JavaScript取餘數程式碼例項JavaScript
- 微信小程式的全域性彈窗以及全域性例項微信小程式
- jQuery控制div顯示和隱藏程式碼例項jQuery
- JavaScript動態新增和刪除div元素JavaScript
- JavaScript 表單驗證程式碼例項JavaScript
- JavaScript陣列合並程式碼例項JavaScript陣列
- JavaScript倒數計時程式碼例項JavaScript
- jQuery遍歷array陣列元素程式碼例項jQuery陣列
- JavaScript中常用的事件程式碼及例項JavaScript事件
- 獲取倒數第幾個元素程式碼例項
- CSS匹配第一個li元素程式碼例項CSS
- 前端學習程式碼例項-JavaScript阻止事件冒泡前端JavaScript事件
- JavaScript WebGL 幀緩衝區物件JavaScriptWeb物件
- recyclerview 彈性滑動 + 中間元素放大View
- 美化滾動條效果程式碼例項
- 前端學習程式碼例項-JavaScript 生成隨機數前端JavaScript隨機
- JavaScript讀取文字檔案內容程式碼例項JavaScript
- Python 動態新增例項屬性,例項方法,類屬性,類方法Python
- css3晃動效果程式碼例項CSSS3
- SVG拖動繪製矩形程式碼例項SVG
- AutoScaling彈性伸縮附加與分離RDS例項
- AutoScaling 彈性伸縮附加與分離RDS例項
- JavaScript動畫方式控制div元素的隱藏和顯示JavaScript動畫
- JavaScript 點選複製選中文字程式碼例項JavaScript
- 運動員與教練例項