JavaScript彈性固定於網頁右側詳解
分享一段程式碼例項,它實現了元素固定於網頁右側的功能。
並且這個固定具有彈性效果,也就是當拖動滾動條的時候,元素以彈性方式復原到原來位置。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> body { height: 2000px; } #antzone { width: 200px; height: 200px; background: aquamarine; position: absolute; right: 0px; bottom: 0px; } </style> <script type="text/javascript"> window.onload = function() { window.onscroll = function() { var odiv = document.getElementById("antzone"); var scroll = document.documentElement.scrollTop || document.body.scrollTop; starmove((document.documentElement.clientHeight - odiv.offsetHeight) + scroll) } var timer = null; function starmove(itarget) { var odiv = document.getElementById('antzone'); timer = clearInterval(timer); timer = setInterval(function() { var speed = (itarget - odiv.offsetTop) / 6; speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed); if (itarget == odiv.offsetTop) { clearInterval(timer); } else { odiv.style.top = odiv.offsetTop + speed + 'px'; } }, 30); } }; </script> </head> <body> <div id="antzone"></div> </body> </html>
上面的程式碼實現了我們的要求,下面介紹一下它的實現過程。
一.程式碼註釋:
(1).window.onload = function() {},當文件內容完全載入完畢再去執行函式中的程式碼。
(2).window.onscroll = function() {},為window物件註冊scroll事件處理函式。
(3).var odiv = document.getElementById("antzone"),獲取id屬性值為antzone的元素物件。
(4).var scroll = document.documentElement.scrollTop || document.body.scrollTop,獲取頁面向上滾動的尺寸,這是相容性寫法。
(5).starmove((document.documentElement.clientHeight - odiv.offsetHeight) + scroll),呼叫starmove()方法可以實現彈性效果,引數是offsetTop目標值,也就是將其固定在頁面低端。
(6).var timer = null,宣告一個變數並賦值為null,用作定時器函式的標識。
(7).function starmove(itarget) {},上面已有介紹。
(8).var odiv = document.getElementById('antzone'),獲取對應的元素物件。
(9).timer = clearInterval(timer),停止上一個定時器函式的執行,防止多次拖動滾動條導致定時器函式重疊執行現象。
(10).imer = setInterval(function() {},30),每隔30毫秒執行一次回撥函式。
(11).var speed = (itarget - odiv.offsetTop) / 6;
speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed);
if (itarget == odiv.offsetTop) {
clearInterval(timer);
} else {
odiv.style.top = odiv.offsetTop + speed + 'px';
},上面考察的是基礎的數學知識了,不多介紹。
二.相關閱讀:
(1).onscroll事件可以參閱javascript scroll事件一章節。
(2).scrollTop可以參閱js scrollTop一章節。
(3).document.documentElement.scrollTop || document.body.scrollTop參閱document.documentElement.scrollTop瀏覽器相容一章節。
(4).clientHeight可以參閱clientHeight一章節。
(5).offsetHeight可以參閱js offsetHeight一章節。
(6).clearInterval()可以參閱clearInterval()一章節。
(7).setInterval()可以參閱setInterval()一章節。
(8).offsetTop可以參閱js offsetTop一章節。
(9).Math.ceil()可以參閱javascript Math.ceil()一章節。
(10).Math.floor()可以參閱javascript Math.floor()一章節。
相關文章
- 彈性效果網頁右側浮動框詳解網頁
- 網頁固定側欄的做法網頁
- css佈局之左側固定右側自適應佈局CSS
- css經典佈局之左側固定大小右側自動適應CSS
- WPF隨筆收錄-DataGrid固定右側列
- 網頁右下角彈窗詳解網頁
- CSS自適應佈局(左右固定 中間自適應或者右側固定 左側自適應)CSS
- css左側欄固定右側欄寬度自適應程式碼例項CSS
- js垂直右側展開導航選單詳解JS
- 左側固定,右側自適應的佈局方式理解margin負值理論
- 七種實現左側固定,右側自適應兩欄佈局的方法
- css將元素固定於網頁底部CSS網頁
- 實現左側固定寬度, 右側自適應的兩欄佈局常見方法
- 左側固定,右側自適應的佈局方式(新增評論區大佬教的方法)
- JavaScript自定義右鍵選單詳解JavaScript
- css之縮小視窗,網頁右側顯示白色的bugCSS網頁
- JavaScript側欄緩動分享選單詳解JavaScript
- javascript網頁右下角彈窗效果JavaScript網頁
- JavaScript彈幕效果程式碼詳解JavaScript
- 自動彈出網頁或不定時彈出網頁的解決方法網頁
- jQuery寫的文章內容頁右側浮動滾動jQuery
- JavaScript數字分頁效果詳解JavaScript
- Sui 彈框固定UI
- 網頁效能管理詳解網頁
- 具有彈性效果的右鍵導航選單
- css--flex彈性佈局詳解和使用CSSFlex
- 父盒子寬度不固定水平居中彈性佈局
- Panel 新增右側操作圖示
- JavaScript元素上下彈性運動JavaScript
- 網頁如何禁止滑鼠右鍵網頁
- 禁止網頁使用滑鼠右鍵網頁
- 阿里雲官方對於彈性網路卡使用阿里
- 具有彈性的點選返回網頁頂部程式碼網頁
- asp.net Oracle資料庫左側目錄樹及右側資料繫結及分頁ASP.NETOracle資料庫
- Web網頁效能管理詳解Web網頁
- JavaScript物件導向修改標籤頁詳解JavaScript物件
- CSS實現div固定於網頁右下角例項程式碼CSS網頁
- word自帶公式右側編號公式