JS實現(xiàn)拖動示例代碼
更新時間:2013年11月01日 17:16:42 作者:
JS實現(xiàn)拖動的方法有很多,在本文將為大家介紹下使用getBoundingClientRect()方法是如何實現(xiàn)的,感興趣的朋友不要錯過
getBoundingClientRect() 來獲取頁面元素的位置
document.documentElement.getBoundingClientRect
該方法返回一個對象,從而獲得頁面中某個元素的左,上,右和下分別相對瀏覽器視窗的位置,即分別代表該元素上、左、右、下四條邊界相對于瀏覽器窗口左上角(注意,不是文檔區(qū)域的左上角)的偏移像素值。并且該方法已經(jīng)不再是IE Only了,F(xiàn)F3.0+和Opera9.5+已經(jīng)支持了該方法,可以說在獲得頁面元素位置上效率能有很大的提高,所以獲取頁面上某個元素相對于瀏覽器窗口的偏移量就成了getBoundingClientRect的用武之地了,按照一篇文章的說法,it's awsome,太帥了=。=因為不必糾結(jié)于offset、pagex、clientx等等等等等等。在以前版本的Opera和Firefox中必須通過循環(huán)來獲得元素在頁面中的絕對位置。
代碼示例:
<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為了方便就直接用絕對定位的元素</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>
復制代碼 代碼如下:
document.documentElement.getBoundingClientRect
該方法返回一個對象,從而獲得頁面中某個元素的左,上,右和下分別相對瀏覽器視窗的位置,即分別代表該元素上、左、右、下四條邊界相對于瀏覽器窗口左上角(注意,不是文檔區(qū)域的左上角)的偏移像素值。并且該方法已經(jīng)不再是IE Only了,F(xiàn)F3.0+和Opera9.5+已經(jīng)支持了該方法,可以說在獲得頁面元素位置上效率能有很大的提高,所以獲取頁面上某個元素相對于瀏覽器窗口的偏移量就成了getBoundingClientRect的用武之地了,按照一篇文章的說法,it's awsome,太帥了=。=因為不必糾結(jié)于offset、pagex、clientx等等等等等等。在以前版本的Opera和Firefox中必須通過循環(huán)來獲得元素在頁面中的絕對位置。


代碼示例:
復制代碼 代碼如下:
<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為了方便就直接用絕對定位的元素</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>
相關文章
JavaScript常用代碼書寫規(guī)范的超全面總結(jié)
這篇文章給大家全面總結(jié)了JavaScript常用代碼的書寫規(guī)范,分別利用推薦和不推薦的兩種示例代碼讓大家更能直接的了解書寫規(guī)范,其實關于javascript代碼規(guī)范我們應該遵循古老的原則:“能做并不意味著應該做”,好了,下面我們就來一起看看吧。2016-09-09javascript十六進制數(shù)字和ASCII字符之間的轉(zhuǎn)換方法
下面小編就為大家?guī)硪黄猨avascript十六進制數(shù)字和ASCII字符之間的轉(zhuǎn)換方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-12-12