CSS中 screenX clientX pageX 的概念和區別
screenX:滑鼠位置相對於使用者螢幕水平偏移量,而screenY也就是垂直方向的,此時的參照點也就是原點是螢幕的左上角。
clientX:跟screenX相比就是將參照點改成了瀏覽器內容區域的左上角,該參照點會隨之滾動條的移動而移動。
pageX:參照點也是瀏覽器內容區域的左上角,但它不會隨著滾動條而變動
如圖(紅點就是滑鼠當前位置)
參考程式碼:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js"></script> <style> body { margin: 0; padding: 0; } .div { text-align: center; font-size: 24px; height: 300px; width: 1300px; line-height: 300px; color: yellow; } #d1 { background-color: red; } #d2 { background-color: green; } #d3 { background-color: blue; } #d4 { position: absolute; background-color: yellow; height: 150px; width: 120px; top: 0; } </style> <script type="text/javascript"> $(function () { window.onscroll = function () { $("#d4").css("top", getScrollTop()); }; document.onmousemove = function (e) { if (e == null) { e = window.event; } var html = "screenX:" + e.screenX + "<br/>"; html += "screenY:" + e.screenY + "<br/><br/>"; html += "clientX:" + e.clientX + "<br/>"; html += "clientY:" + e.clientY + "<br/><br/>"; if (e.pageX == null) { html += "pageX:" + e.x + "<br/>"; html += "pageY:" + e.y + "<br/>"; } else { html += "pageX:" + e.pageX + "<br/>"; html += "pageY:" + e.pageY + "<br/>"; } $("#d4").html(html); }; }); function getScrollTop() { var top = (document.documentElement && document.documentElement.scrollTop) || document.body.scrollTop; return top; } </script> </head> <body> <div id="d1" class="div">div1 height:300px width:1300px</div> <div id="d2" class="div">div2 height:300px width:1300px</div> <div id="d3" class="div">div3 height:300px width:1300px</div> <div id="d4"></div> </body> </html>
內容均為作者獨立觀點,不代表八零IT人立場,如涉及侵權,請及時告知。
相關文章
- CSS中 link 和@import的區別CSSImport
- jQuery中css()和attr()方法的區別jQueryCSS
- 堆和棧的概念和區別
- CSS 中 stopPropagation, preventDefault 和 return false 的區別CSSFalse
- CSS3中RGBA和opacity的區別CSSS3
- css link和@import的區別CSSImport
- CSS3中translate、transform、translation和animation的區別CSSS3ORM
- CSS列表中list-style-position inside 和outside 的區別?CSSIDE
- CSS之Display、Visbility和Opactity的區別CSS
- CSS中定義CLASS時,中間有空格和沒空格的區別CSS
- 雲伺服器和CDN概念區別伺服器
- JavaScript中for in 和for of的區別JavaScript
- Js中for in 和for of的區別JS
- mysql中!=和is not的區別MySql
- Python中is和==的區別Python
- JavaScript中==和===的區別JavaScript
- Linux中“>”和“>>”的區別Linux
- Python 中 is 和 == 的區別Python
- mysql中“ ‘ “和 “ ` “的區別MySql
- css中的border:none和border:0px有什麼區別?CSSNone
- CSS display:none和visible:hidden區別CSSNone
- CSS中 offsetLeft 與style.left 的區別CSS
- CSS中的class與id區別及用法CSS
- css中class和id選擇器有什麼區別?CSS
- PHP 中的 -> 和 :: 的區別PHP
- CSS 中重要的層疊概念CSS
- link和@import匯入css檔案的區別ImportCSS
- 1.CSS和iStack的區別和應用場景CSS
- java 中equals和==的區別Java
- SQL中where和on的區別SQL
- deferred中done和then的區別
- OData API 和 Restful API 這兩個概念的區別和聯絡APIREST
- 淺析VO、DTO、DO、PO的概念、區別和用處
- [CSS] 偽元素和偽類,::before 和 :before 區別CSS
- JS中的!=、== 、!==、=== 的用法和區別JS
- 產品領域MVP、MMP和MLP概念區別MVP
- CSS中那些必須掌握的概念CSS
- css的height:100%和height:inherit有什麼區別?CSS