<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    tbwshc

    通過 JavaScript 獲取頁面上的鼠標位置

    用 JS 計算鼠標在頁面上的位置并非難事, 只要把握好各瀏覽器的區別就可以輕易算出鼠標位置. (這是 DEMO)

    視窗 (瀏覽器可視窗口) 就像是頁面上的掩板開了一個洞. 滾動條可以改變頁面和視窗之間的偏移量, 從而可以通過視窗看到頁面的各個位置.
    鼠標在頁面上的位置 = 頁面和視窗之間的偏移量 + 鼠標在視窗中的位置

    圖中的 cursorX 和 cursorY 分別是鼠標在視窗中的橫向和縱向位置, scrollY 是tb頁面和視窗之間的縱向距離. 當然, 當視窗寬度小于頁面寬度的時候, 還會存在 scrollX. 那么鼠標在頁面上的位置就是: (scrollX+cursorX, scrollY+cursorY)

    IE 以外的瀏覽器 (本人測試過 Firefox 3.6, Opera 10.10, Chrome 4.1 和 Safari 4.0.4) 均可以通過 pageXOffset 和 pageYOffset 來獲取頁面和視窗間的橫縱距離. 但 IE (本人測試過 IE6, IE7, IE8) 只能通過滾動位移來獲取頁面和視窗間的距離, 并存在一到兩個像素的偏離.

    以下是獲取鼠標在頁面上位置的代碼實現. (這是 DEMO)

    /**
     * 獲取鼠標在頁面上的位置
     * @param ev		觸發的事件
     * @return			x:鼠標在頁面上的橫向位置, y:鼠標在頁面上的縱向位置
     */
    function getMousePoint(ev) {
    	// 定義鼠標在視窗中的位置
    	var point = {
    		x:0,
    		y:0
    	};
     
    	// 如果瀏覽器支持 pageYOffset, 通過 pageXOffset 和 pageYOffset 獲取頁面和視窗之間的距離
    	if(typeof window.pageYOffset != 'undefined') {
    		point.x = window.pageXOffset;
    		point.y = window.pageYOffset;
    	}
    	// 如果瀏覽器支持 compatMode, 并且指定了 DOCTYPE, 通過 documentElement 獲取滾動距離作為頁面和視窗間的距離
    	// IE 中, 當頁面指定 DOCTYPE, compatMode 的值是 CSS1Compat, 否則 compatMode 的值是 BackCompat
    	else if(typeof document.compatMode != 'undefined' && document.compatMode != 'BackCompat') {
    		point.x = document.documentElement.scrollLeft;
    		point.y = document.documentElement.scrollTop;
    	}
    	// 如果瀏覽器支持 document.body, 可以通過 document.body 來獲取滾動高度
    	else if(typeof document.body != 'undefined') {
    		point.x = document.body.scrollLeft;
    		point.y = document.body.scrollTop;
    	}
     
    	// 加上鼠標在視窗中的位置
    	point.x += ev.clientX;
    	point.y += ev.clientY;
     
    	// 返回鼠標在視窗中的位置
    	return point;
    }

    記得以前我寫過一個減速滾動置頂的 JavaScript 方法, 也是通過計算視窗和頁面高度來實現的, 其計算方法與本文的方法不同小異, 也可以搬過來用.

    這幾個月來, 專注前端項目的開發, 也算小有收獲, 最近我會將一些積累作成文章分享于眾. 以此作為鋪墊, 由淺入深, 希望可以帶出一些有用的內容.

    posted on 2012-07-04 13:15 chen11-1 閱讀(182) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 国产羞羞的视频在线观看免费| 菠萝菠萝蜜在线免费视频| 男人j进入女人j内部免费网站| 国产亚洲av片在线观看18女人| 一级毛片免费播放视频| 亚洲AV蜜桃永久无码精品| 一本久久A久久免费精品不卡| 久久精品国产精品亚洲人人| 99精品免费视品| 91亚洲精品视频| 91成人免费在线视频| 亚洲高清有码中文字| 俄罗斯极品美女毛片免费播放| 美女羞羞免费视频网站| 超清首页国产亚洲丝袜| 久久中文字幕免费视频| 亚洲一区二区三区精品视频| 日本一区免费电影| 国产免费久久精品丫丫| 亚洲午夜久久影院| 毛片a级毛片免费播放100| 国产亚洲精彩视频| 亚洲精品一品区二品区三品区| 免费视频成人片在线观看| 亚洲国产精品无码久久| 亚洲一区二区视频在线观看| 久久免费高清视频| 国产人成亚洲第一网站在线播放| 亚洲国产精品不卡毛片a在线| 国内精品免费久久影院| 国产精品亚洲专区在线观看| 国产小视频在线免费| a级片在线免费看| 在线观看亚洲AV日韩A∨| 精品亚洲视频在线观看 | 亚洲成av人影院| 性做久久久久久久免费看| 免费无码国产在线观国内自拍中文字幕 | 亚洲午夜av影院| 亚洲免费在线观看视频| 老妇激情毛片免费|