滑鼠定位問題總結

2022-07-04 07:45:11 字數 1301 閱讀 3710

滑鼠事件發生時的滑鼠定位問題即mouse position,由於標準的滯後及各個瀏覽器廠商的實現不同,目前沒有完美的解決方案。

該問題首先受到不同瀏覽器的事件模型有不同的實現方式的影響:

ie瀏覽器中,有乙個顯式的window.event物件,可以隨時取用。

w3c相容瀏覽器中,使用隱式物件,以第乙個引數event的形式傳遞給事件處理函式。

其次,不同瀏覽器中event物件的位置相關屬性也有差別:

screenx 相對於電腦螢幕的左上角,滑鼠的x座標。標準屬性,都支援。

screeny 相對於電腦螢幕的左上角,滑鼠的y座標。標準屬性,都支援。

clientx 相對於當前視窗可視區域(不包括視窗邊框)的左上角,滑鼠的x座標。標準屬性,都支援。

clienty 相對於當前視窗可視區域(不包括視窗邊框)的左上角,滑鼠的y座標。標準屬性,都支援。

x 相對於css中有position屬性的最近的父元素,滑鼠偏移的x軸座標。標準草案屬性,等價於clientx,ie支援

如果沒有這樣的父元素,預設以body元素(等價於pagex)。

y 相對於css中有position屬性的最近的父元素,滑鼠偏移的y軸座標。標準草案屬性,等價於clienty,ie支援

如果沒有這樣的父元素,預設以body元素(等價於pagey)。

pagex 相對於body元素的左上角,滑鼠的x座標。標準草案屬性,只有非ie,ie9以後版本支援。

e.pagex = window.pagexoffset + e.clientx

pagey 相對於body元素的左上角,滑鼠的y座標。標準草案屬性,只有非ie,ie9以後版本支援。

e.pagey = window.pageyoffset + e.clienty

offsetx 相對於css中有position屬性的最近的父元素,滑鼠偏移的x軸座標。標準草案屬性,非ie支援。

offsety 相對於css中有position屬性的最近的父元素,滑鼠偏移的y軸座標。標準草案屬性,非ie支援。

offsetx 相對於發出事件的元素,滑鼠偏移的x軸座標。標準草案屬性,只有ie支援。

offsety 相對於發出事件的元素,滑鼠偏移的y軸座標。標準草案屬性,只有ie支援。

layerx 相對於css中有position屬性的最近的父元素,滑鼠偏移的x軸座標。非標準屬性,等價於offsetx,只有非ie支援。

layery 相對於css中有position屬性的最近的父元素,滑鼠偏移的y軸座標。非標準屬性,等價於offsety,只有非ie支援。

scrollx,滾動條滾動的水平長度。

scrolly,滾動條滾動的垂直長度。

滑鼠定位的相容和方法

clientx y獲取到的是觸發點相對瀏覽器可視區域左上角距離,不隨頁面滾動而改變 相容性 所有瀏覽器均支援 pagex y獲取到的是觸發點相對文件區域左上角距離,會隨著頁面滾動而改變 設定讓頁面滾動,發現clientx與pagex的值不一樣 相容性 除ie6 7 8不支援外,其餘瀏覽器均支援 of...

CSliderCtrl的自繪製和滑鼠定位滑塊

首先建立乙個類繼承於csliderctrl然後由於要根據滑鼠左鍵定位到相應的位置,則必須要新增訊息響應函式onlbuttondown 內容見下 void cmyslider onlbuttondown uint nflags,cpoint point 要自繪製滑塊等其他控制項,必須響應nm cust...

vim 游標定位

在 vi 中,移動游標和編輯是兩件事,正因為區分開來,所以可以很方便的進行游標定 位和編輯.因此能更快一點移動游標是很有用的.文中的c 表示ctrl,大小寫敏感。游標定位 還需結合搜尋。游標定位 h或 h 向左移乙個字元 j或 j或 n 向下移一行 k或 p 向上移一行 l或空格 向右移乙個字元 w...