JS實(shí)現(xiàn)拖動(dòng)示例代碼
更新時(shí)間:2013年11月01日 17:16:42 作者:
JS實(shí)現(xiàn)拖動(dòng)的方法有很多,在本文將為大家介紹下使用getBoundingClientRect()方法是如何實(shí)現(xiàn)的,感興趣的朋友不要錯(cuò)過(guò)
getBoundingClientRect() 來(lái)獲取頁(yè)面元素的位置
document.documentElement.getBoundingClientRect
該方法返回一個(gè)對(duì)象,從而獲得頁(yè)面中某個(gè)元素的左,上,右和下分別相對(duì)瀏覽器視窗的位置,即分別代表該元素上、左、右、下四條邊界相對(duì)于瀏覽器窗口左上角(注意,不是文檔區(qū)域的左上角)的偏移像素值。并且該方法已經(jīng)不再是IE Only了,F(xiàn)F3.0+和Opera9.5+已經(jīng)支持了該方法,可以說(shuō)在獲得頁(yè)面元素位置上效率能有很大的提高,所以獲取頁(yè)面上某個(gè)元素相對(duì)于瀏覽器窗口的偏移量就成了getBoundingClientRect的用武之地了,按照一篇文章的說(shuō)法,it's awsome,太帥了=。=因?yàn)椴槐丶m結(jié)于offset、pagex、clientx等等等等等等。在以前版本的Opera和Firefox中必須通過(guò)循環(huán)來(lái)獲得元素在頁(yè)面中的絕對(duì)位置。
代碼示例:
<span style="font-size:14px"><!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Demo</title>
</head>
<body style="width:2000px; height:1000px;">
<div id="demo" style="position:absolute; left:518px; right:100px; width:500px; height:500px; background:#CC0000; top: 114px;">Demo為了方便就直接用絕對(duì)定位的元素</div>
</body>
</html>
<script>
document.getElementById('demo').onclick=function (){
if (document.documentElement.getBoundingClientRect) {
alert("left:"+this.getBoundingClientRect().left)
alert("top:"+this.getBoundingClientRect().top)
alert("right:"+this.getBoundingClientRect().right)
alert("bottom:"+this.getBoundingClientRect().bottom)
<strong>var X= this.getBoundingClientRect().left+document.documentElement.scrollLeft;
var Y = this.getBoundingClientRect().top+document.documentElement.scrollTop;</strong>
alert("Demo的位置是X:"+X+";Y:"+Y)
}
}
</script></span>
復(fù)制代碼 代碼如下:
document.documentElement.getBoundingClientRect
該方法返回一個(gè)對(duì)象,從而獲得頁(yè)面中某個(gè)元素的左,上,右和下分別相對(duì)瀏覽器視窗的位置,即分別代表該元素上、左、右、下四條邊界相對(duì)于瀏覽器窗口左上角(注意,不是文檔區(qū)域的左上角)的偏移像素值。并且該方法已經(jīng)不再是IE Only了,F(xiàn)F3.0+和Opera9.5+已經(jīng)支持了該方法,可以說(shuō)在獲得頁(yè)面元素位置上效率能有很大的提高,所以獲取頁(yè)面上某個(gè)元素相對(duì)于瀏覽器窗口的偏移量就成了getBoundingClientRect的用武之地了,按照一篇文章的說(shuō)法,it's awsome,太帥了=。=因?yàn)椴槐丶m結(jié)于offset、pagex、clientx等等等等等等。在以前版本的Opera和Firefox中必須通過(guò)循環(huán)來(lái)獲得元素在頁(yè)面中的絕對(duì)位置。


代碼示例:
復(fù)制代碼 代碼如下:
<span style="font-size:14px"><!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Demo</title>
</head>
<body style="width:2000px; height:1000px;">
<div id="demo" style="position:absolute; left:518px; right:100px; width:500px; height:500px; background:#CC0000; top: 114px;">Demo為了方便就直接用絕對(duì)定位的元素</div>
</body>
</html>
<script>
document.getElementById('demo').onclick=function (){
if (document.documentElement.getBoundingClientRect) {
alert("left:"+this.getBoundingClientRect().left)
alert("top:"+this.getBoundingClientRect().top)
alert("right:"+this.getBoundingClientRect().right)
alert("bottom:"+this.getBoundingClientRect().bottom)
<strong>var X= this.getBoundingClientRect().left+document.documentElement.scrollLeft;
var Y = this.getBoundingClientRect().top+document.documentElement.scrollTop;</strong>
alert("Demo的位置是X:"+X+";Y:"+Y)
}
}
</script></span>
您可能感興趣的文章:
- JS實(shí)現(xiàn)可縮放、拖動(dòng)、關(guān)閉和最小化的浮動(dòng)窗口完整實(shí)例
- js用拖動(dòng)滑塊來(lái)控制圖片大小的方法
- Js可拖拽放大的層拖動(dòng)特效實(shí)現(xiàn)方法
- JS+CSS實(shí)現(xiàn)可拖動(dòng)的彈出提示框
- js實(shí)現(xiàn)圖片拖動(dòng)改變順序附圖
- js實(shí)現(xiàn)可拖動(dòng)DIV的方法
- 原生JS可拖動(dòng)彈窗效果實(shí)例代碼
- 通過(guò)遮罩層實(shí)現(xiàn)浮層DIV登錄的js代碼
- JS實(shí)現(xiàn)動(dòng)態(tài)移動(dòng)層及拖動(dòng)浮層關(guān)閉的方法
相關(guān)文章
css+html+js實(shí)現(xiàn)五角星評(píng)分
這篇文章主要為大家詳細(xì)介紹了css+html+js實(shí)現(xiàn)五角星評(píng)分,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-09-09JavaScript常用代碼書(shū)寫(xiě)規(guī)范的超全面總結(jié)
這篇文章給大家全面總結(jié)了JavaScript常用代碼的書(shū)寫(xiě)規(guī)范,分別利用推薦和不推薦的兩種示例代碼讓大家更能直接的了解書(shū)寫(xiě)規(guī)范,其實(shí)關(guān)于javascript代碼規(guī)范我們應(yīng)該遵循古老的原則:“能做并不意味著應(yīng)該做”,好了,下面我們就來(lái)一起看看吧。2016-09-09Jquery代碼實(shí)現(xiàn)圖片輪播效果(一)
經(jīng)理交給我一個(gè)網(wǎng)站新聞資訊網(wǎng)頁(yè)開(kāi)發(fā)的活兒,對(duì)于我這樣的java程序員,沒(méi)有接觸過(guò)網(wǎng)頁(yè)設(shè)計(jì)這么高端的東東,該怎么搞呢,去度娘那搜索到不少結(jié)果,而且很大部分都是用jquery做的,于是根據(jù)自己的一些的理解,提供了這篇jquery輪播效果的講解,有需要的朋友可以來(lái)參考下2015-08-08javascript十六進(jìn)制數(shù)字和ASCII字符之間的轉(zhuǎn)換方法
下面小編就為大家?guī)?lái)一篇javascript十六進(jìn)制數(shù)字和ASCII字符之間的轉(zhuǎn)換方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-12-12