jQuery獲取滑鼠從哪個方向移入和移出元素
本章節分享一段程式碼例項,它可以實現獲取滑鼠進入元素和移出元素的方向。
需要的朋友可以做一下參考,程式碼例項如下:
[HTML] 純文字檢視 複製程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style> #box { width:100px; height:100px; background:#dddddd; margin:100px; text-align:center; line-height:100px; font-size:12px; } </style> <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script> <script> var wen_direction = (function () { var jqDirection; function Direction(id) { this.id = document.getElementById(id) || id ; } Direction.prototype.init = function (enterObj, leaveObj) { //滑鼠滑入元素 var self = this; this.id.addEventListener('mouseenter', function (e) { //返回數字 返回0:上方進入, 返回1:右方進入,返回2:下方進入,返回3:左方進入 var directionNumber = self.main(e); var funArray = [enterObj.top, enterObj.right, enterObj.bottom, enterObj.left]; funArray[directionNumber](self.id); },false); this.id.addEventListener('mouseleave', function (e) { //返回數字 返回0:上方離開, 返回1:右方離開,返回2:下方離開,返回3:左方離開 var directionNumber = self.main(e); var funArray = [leaveObj.top, leaveObj.right, leaveObj.bottom, leaveObj.left]; funArray[directionNumber](self.id); },false); }; /*主函式 返回數字來判斷從哪個方向進入*/ Direction.prototype.main = function (e) { var w = this.id.scrollWidth; var h = this.id.scrollHeight; /*計算x和y得到一個角到elem的中心,得到相對於x和y值到div的中心*/ var x = (e.offsetX - (w / 2)) * (w > h ? (h / w) : 1); var y = (e.offsetY - (h / 2)) * (h > w ? (w / h) : 1); /** 滑鼠從哪裡來 / 角度 和 方向出去順時針(得出的結果是TRBL 0 1 2 3 * 首先計算點的角度, * 再加上180度擺脫負值 * 除於90得到的象限(象限,又稱象限角,意思就是一個圓之四分之一等份) * 加上3,做一個模(求模 求餘數)4的象限轉移到一個適當的順時針 得出 TRBL 0 1 2 3(上/右/下/左) **/ var number = Math.round((((Math.atan2(y, x) * (180 / Math.PI)) + 180) / 90) + 3) % 4; return number; }; return { run: function (id, enterObj, leaveObj) {//這個介面用於原生js var directionChild = new Direction(id); directionChild.init(enterObj, leaveObj); } } })(); //測試用例 var enterObject = { left: function(self) { self.innerHTML = "從左邊進入"; }, right: function(self) { self.innerHTML = "從右邊進入"; }, top: function(self) { self.innerHTML = "從上邊進入"; }, bottom: function(self) { self.innerHTML = "從下邊進入"; } }; var leaveObject = { left: function(self) { self.innerHTML = "從左邊離開"; }, right: function(self) { self.innerHTML = "從右邊離開"; }, top: function(self) { self.innerHTML = "從上邊離開"; }, bottom: function(self) { self.innerHTML = "從下邊離開"; } }; $(document).ready(function () { wen_direction.run('box', enterObject, leaveObject); }) </script> </head> <body> <div id="box"></div> </body> </html>
相關文章
- jQuery滑鼠移入移出jQuery
- 防止滑鼠移出移入子元素觸發mouseout和mouseover事件事件
- JavaScript滑鼠移入和移出切換樣式JavaScript
- 判斷滑鼠指標移入移出的方向程式碼例項指標
- vue 滑鼠移入顯示圖示 ,滑鼠移出隱藏圖示Vue
- jQuery獲取上一個元素jQuery
- JQuery獲取滑鼠位置jQuery
- jQuery在元素集合中獲取第N個元素jQuery
- jQuery獲取當前元素的下一個元素jQuery
- jquery獲取子元素jQuery
- javascript如何獲取哪個元素獲得焦點JavaScript
- jQuery獲取當前li元素的下一個元素jQuery
- jQuery獲取元素前面所有兄弟元素jQuery
- jquery獲取元素節點jQuery
- jQuery獲取所有兄弟元素jQuery
- jQuery選擇器獲取前幾個元素jQuery
- jquery獲取緊鄰的上一個元素jQuery
- jQuery捕獲-獲取DOM元素內容和屬性jQuery
- Jquery如何獲取和設定元素內容?jQuery
- jquery設定和獲取元素的屬性jQuery
- jQuery如何獲取元素的寬度和高度jQuery
- jquery獲取指定li元素後面的第n個li元素jQuery
- jQuery感知滑鼠滑入方向jQuery
- 如何防止滑鼠移出子元素觸發父元素的onmouseout事件事件
- jQuery獲取滑鼠指標座標jQuery指標
- JQuery獲取當前元素本身jQuery
- jQuery如何獲取當前元素的兄弟元素jQuery
- jQuery獲取li元素後面所有兄弟元素jQuery
- jQuery獲取當前元素上一個兄弟元素例項程式碼jQuery
- jQuery獲取元素內部元素和獲取內容的區別、獲得輸入框value的方法jQuery
- jQuery如何獲取iframe中的元素jQuery
- jQuery如何獲取元素父節點和子節點jQuery
- jquery如何獲取第一個或最後一個子元素?jQuery
- jQuery獲取某元素下所有的連結元素jQuery
- 獲取元素大小、偏移量及滑鼠位置
- JavaScript獲取滑鼠在元素中的座標JavaScript
- js和jQuery獲取視窗和元素尺寸簡單介紹JSjQuery
- jquery如何獲取註冊在某個元素上的事件jQuery事件