滑鼠事件發生時的滑鼠定位問題即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...