具有緩衝效果的側欄展開客服系統
側欄客服系統是一種常用效果,滑鼠懸浮的時候能夠展開,離開的時候收縮。
展開和收縮過程通常具有緩衝效果,下面就通過程式碼例項介紹一下如何實現此功能。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> html, body { margin: 0; padding: 0; } div { margin: 0; padding: 0; } .odiv { width: 200px; height: 200px; background: #f00; position: relative; left: -200px; top: 100px; } .sdiv { width: 20px; height: 60px; background: #00f; position: absolute; top: 70px; right: -20px; } </style> <script language="javascript"> window.onload = function () { var odiv = document.getElementById('odiv'); odiv.onmouseover = function () { startMover(0); } odiv.onmouseout = function () { startMover(-200); } } var timer = null; function startMover(itarget) { clearInterval(timer); var odiv = document.getElementById('odiv'); timer = setInterval(function () { var speed = (itarget - odiv.offsetLeft) / 10; speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed); if (odiv.offsetLeft == itarget) { clearInterval(timer); } else { odiv.style.left = odiv.offsetLeft + speed + 'px'; } }, 30); } </script> </head> <body> <div id="odiv" class="odiv"> <div id="sdiv" class="sdiv"></div> </div> </body> </html>
上面的程式碼實現了我們的要求,下面介紹一下它的實現過程。
一.程式碼註釋:
(1).window.onload = function () {},當文件內容完全載入完畢再去執行函式中的程式碼。
(2).var odiv = document.getElementById('odiv'),獲取id屬性值為odiv的元素物件。
(3).odiv.onmouseover = function () {
startMover(0);
},為元素註冊onmouseover 事件處理函式。
(4).odiv.onmouseout = function () {
startMover(-200);
},為元素註冊onmouseout事件處理函式。
(5).var timer = null,宣告一個變數並賦值為null,用作定時器函式的標識。
(6).function startMover(itarget) {},此方法實現了緩衝運動效果,引數是目標值。
(7).clearInterval(timer),停止定時器函式的執行,否則的如果滑鼠連續移入移出的話會導致多個定時器函式疊加執行。
(8).var odiv = document.getElementById('odiv'),獲取元素物件。(9).timer = setInterval(function () {},30),通過定時器函式每隔30秒執行一次匿名函式,也就實現運動效果。
(10).var speed = (itarget - odiv.offsetLeft) / 10,緩衝動畫的速度引數變化值
(11).speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed),如果速度是大於0,說明是向右走,那麼就向上取整
(12).if (odiv.offsetLeft == itarget) {
clearInterval(timer);
},如果達到目標值,那麼停止定時器函式的執行。
(13). else {
odiv.style.left = odiv.offsetLeft + speed + 'px';
},否則的話繼續設定left屬性值,也就是繼續動畫效果。
二.相關閱讀:
(1).onmouseover事件參閱javascript mouseover事件一章節。
(2).onmouseout事件參閱javascript mouseout事件一章節。
(3).clearInterval()參閱clearInterval()一章節。
(4).setInterval()參閱setInterval()一章節。
(5).offsetLeft參閱offsetleft一章節。
(6).Math.ceil()參閱javascript Math.ceil()一章節。
(7).Math.floor()參閱javascript Math.floor()一章節。
相關文章
- JavaScript滑鼠懸浮展開側欄導航JavaScript
- JavaScript側欄緩動分享選單詳解JavaScript
- TornadoFx實現側邊欄選單效果
- 客服系統_線上客服系統_網站客服系統_智慧客服系統網站
- 客服系統的三個發展階段
- 影片直播原始碼,預設展開側邊欄選單原始碼
- jQuery 緩衝效果二級導航下拉選單jQuery
- 判斷客服系統效果好壞的5個標準
- JS錯誤記錄 – 右側懸浮框 – 緩衝運動JS
- 緩衝管理
- 一種離譜到極致的頁面側邊欄效果探究
- 線上直播原始碼,JS動態效果之,側邊欄滾動固定效果原始碼JS
- 開關電源緩衝吸收電路:拓撲吸收、RC吸收、RCD吸收、鉗位吸收、無損吸收、LD緩衝、LR緩衝、飽和電感緩衝、濾波緩衝、振鈴_rc吸收和rcd吸收
- 客服系統是如何監測客服工作的?
- 緩衝帶裡的少年
- Duilib的雙緩衝實現,附帶GDI、WTL的雙緩衝實現UI
- 輸出緩衝
- ASLR 是如何保護 Linux 系統免受緩衝區溢位攻擊的Linux
- 開源線上客服系統(支援H5的線上客服系統原始碼基於PHP)H5原始碼PHP
- 開發線上客服系統新的宣傳推廣站【微客客服】
- PHP的輸出緩衝區PHP
- canvas具有漸變效果的矩形Canvas
- 直播系統程式碼,給標題欄新增陰影效果和圓角效果
- JavaScript 緩衝運動JavaScript
- Java™ 教程(緩衝流)Java
- 無緩衝阻塞 chan
- Java NIO:緩衝區Java
- stdio流緩衝區
- 雙緩衝學習
- 緩衝位元組流#
- MySQL InnoDB緩衝池MySql
- 採用JavaScript+XML實現具有樹形選單功能的論壇側邊導航欄JavaScriptXML
- Flutter drawer側邊欄Flutter
- 側邊浮動網站客服QQ網站
- 使用Vue實現後臺管理系統的動態路由以及側邊欄選單Vue路由
- 帶緩衝的輸入/輸入流
- InnoDB 中的緩衝池(Buffer Pool)
- Dynamics 365 控制右側欄的介面