摘要:在用瀏覽器打開一個(gè)網(wǎng)頁(yè)的這個(gè)情況下,視口坐標(biāo)就是指瀏覽器窗口的坐標(biāo),而文檔坐標(biāo)就是我們網(wǎng)頁(yè)的坐標(biāo)。這兩個(gè)坐標(biāo)系的換算要通過(guò)滾動(dòng)條的位置來(lái)?yè)Q算。獲取視口的尺寸和以上規(guī)則一樣,只是相應(yīng)的屬性是
在用瀏覽器打開一個(gè)網(wǎng)頁(yè)的這個(gè)情況下,視口坐標(biāo)就是指瀏覽器窗口的坐標(biāo),而文檔坐標(biāo)就是我們網(wǎng)頁(yè)的坐標(biāo)。在頁(yè)面沒有滾動(dòng)的情況下,這兩個(gè)坐標(biāo)的原點(diǎn)是重合的,也就是二者的左上角(0, 0)重合,然后這兩個(gè)坐標(biāo)系的X軸和Y軸分別朝右和朝下延伸。
網(wǎng)頁(yè)上的某個(gè)元素,同時(shí)處于這兩個(gè)坐標(biāo)系中,當(dāng)頁(yè)面沒有任何滾的時(shí)候,它在兩個(gè)坐標(biāo)系中的坐標(biāo)是一樣的,但是當(dāng)頁(yè)面滾動(dòng)了之后,就會(huì)不一樣了。這兩個(gè)坐標(biāo)系的換算要通過(guò)滾動(dòng)條的位置來(lái)?yè)Q算。
滾動(dòng)條一開始的坐標(biāo)也是(0, 0),所以滾動(dòng)條的坐標(biāo)也就是滾動(dòng)條的偏移量,同時(shí)也反應(yīng)了頁(yè)面上的一個(gè)元素在文檔坐標(biāo)系中的坐標(biāo)和在視口坐標(biāo)系中的坐標(biāo)的差值:
文檔坐標(biāo)系坐標(biāo) = 視口坐標(biāo)系坐標(biāo) + 滾動(dòng)條的偏移量
獲取滾動(dòng)條的坐標(biāo)(偏移量)要考略IE8及之前的版本,同時(shí)要考略瀏覽器是否處在怪異模式下面,總得來(lái)說(shuō)有三種辦法獲得滾動(dòng)條坐標(biāo):
1: pageXOffset, pageYOffset -> 所有瀏覽器及 >= IE9 2: document.documentElement.scrollLeft, document.documentElement.scrollTop -> 所有標(biāo)準(zhǔn)模式下面的瀏覽器 3: document.body.scrollLeft, document.body.scrollTop -> 所有怪異模式下面的瀏覽器
所以如果我們寫一個(gè)總能獲取到滾動(dòng)條得函數(shù),那就是:
function getScrollOffsets(w){ var w = w || window; if(w.pageXOffset !== null){ return {x: pageXOffset, y: pageYOffset} } var d = w.document; if(document.compatMode == "CSS1Compat"){ return {x: d.documentElement.scrollLeft, y: d.documentElement.scrollTop} } return {x: d.body.scrollLeft, y: d.body.scrollTop} }
document.compatMode可以獲取當(dāng)前瀏覽器得模式:
BackCompat: quirks mode(怪異模式) CSS1Compat: none-quirks mode(非怪異模式,也叫做standards或者limited-quirks或者 almost standards)。
獲取視口的尺寸和以上規(guī)則一樣,只是相應(yīng)的屬性是:
window.innerWidth | window.innerHeight document.documentElement.clientWidth | document.documentElement.clientHeight document.body.clientWidth | document.body.clientHeight
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/83790.html
摘要:貝塞爾曲線方法可以繪制一種類似的曲線。不同的是貝塞爾曲線需要兩個(gè)控制點(diǎn)而不是一個(gè),線段的每一個(gè)端點(diǎn)都需要一個(gè)控制點(diǎn)。下面是描述貝塞爾曲線的簡(jiǎn)單示例。 來(lái)源:ApacheCN『JavaScript 編程精解 中文第三版』翻譯項(xiàng)目原文:Drawing on Canvas 譯者:飛龍 協(xié)議:CC BY-NC-SA 4.0 自豪地采用谷歌翻譯 部分參考了《JavaScript 編程精解(第 2...
摘要:標(biāo)簽標(biāo)簽用于將多個(gè)形狀組成一個(gè)組,方便復(fù)用。表示的寬度和長(zhǎng)度是實(shí)際的像素值。標(biāo)簽標(biāo)簽對(duì)的屬性不起作用,如果需要變形,就要使用標(biāo)簽。注意,如果使用標(biāo)簽插入文件,就無(wú)法獲取。 代碼優(yōu)化永遠(yuǎn)是程序員亙古不變的需求,而合理的利用SVG圖片來(lái)代替部分PNG/JPG等格式的圖片則是前端優(yōu)化重要的一環(huán),既然是優(yōu)化,那我們先來(lái)看看SVG圖片都有哪些優(yōu)勢(shì): SVG 可被非常多的工具讀取和修改(比如記事本...
摘要:和支持這個(gè)事件。特定于事件目標(biāo)的對(duì)象的數(shù)組。這個(gè)事件的目的是提供與文檔或元素的加載狀態(tài)有關(guān)的信息和有一個(gè)特性,名叫往返緩存,或,這個(gè)事件在頁(yè)面顯示時(shí)觸發(fā)該事件會(huì)在瀏覽器卸載頁(yè)面的時(shí)候觸發(fā)事件的對(duì)象還包含一個(gè)名為的布爾值屬性。 showImg(http://static.segmentfault.com/build/global/img/emojis/ribbon.png);事件類型 ...
摘要:摘自阮一峰教程位置大小屬性只讀屬性返回瀏覽器窗口左上角相對(duì)于當(dāng)前屏幕左上角的水平距離和垂直距離單位像素。摘自阮一峰教程相關(guān)方法返回一個(gè)對(duì)象,提供當(dāng)前元素的大小位置等信息。摘自阮一峰教程四鼠標(biāo)事件接口通過(guò)添加的事件所產(chǎn)生的事件對(duì)象也是實(shí)例。 一 前言 在前端開發(fā)中總會(huì)遇到各種各樣需要使用或計(jì)算坐標(biāo)和距離的情況,但是這些屬性和方法眾多,全部熟練地記下來(lái)并非是一件易事,大多只能現(xiàn)查,耗費(fèi)不少...
閱讀 3556·2021-11-22 11:59
閱讀 954·2021-09-27 13:36
閱讀 3616·2021-09-24 09:47
閱讀 2266·2021-09-01 11:39
閱讀 985·2021-08-31 09:37
閱讀 2316·2021-08-05 10:01
閱讀 1677·2019-08-30 15:55
閱讀 703·2019-08-30 15:54