可以使用offset() 方法,該方法返回或設(shè)置匹配元素相對(duì)于文檔的偏移(位置),該方法返回的對(duì)象包含兩個(gè)整型屬性:top 和 left,以像素計(jì)。此方法只對(duì)可見元素有效。
十年的威寧網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都全網(wǎng)營銷的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整威寧建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“威寧網(wǎng)站設(shè)計(jì)”,“威寧網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
1、使用offset() 方法獲取一個(gè)元素距離瀏覽器的頂部和左邊的可視距離,代碼如下:
html
head
script?type="text/javascript"?src="/jquery/jquery.js"/script
script?type="text/javascript"
$(document).ready(function(){
$("button").click(function(){
x=$("p").offset();
$("#span1").text(x.left);
$("#span2").text(x.top);
});
});
/script
/head
body
p本段落的偏移是?span?id="span1"unknown/span?left?和?span?id="span2"unknown/span?top。/p
button獲得?offset/button
/body
/html
2、運(yùn)行的結(jié)果如下:
jquery獲取元素到頁面頂部距離的語句為:
$(selector).offset().top
下面是例子:
div style="height:800px" /div
div id="footer_keleyi_com" style="text-align:center; margin-left:auto;margin-right:auto; margin-top:20px"柯樂義 Copyrightspan style="font-family:Arial;"?/span span style="font-size:18px;"keleyi.com
/span/div
那么 $("#footer_keleyi_com").offset().top 就是元素到頁面頂部的距離。
head
meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /
titlejquery浮動(dòng)層/title
script src="jquery-1.8.3.js"/script!-- 注意修改引用路徑 --
style type="text/css"
#Float {background-color: #000;height: 200px;width: 100px;position: absolute;top: 80px;right: 20px;}
/style
/head
script language="javascript"
$(document).ready(function(){
$(window).scroll(function (){
// 讓浮動(dòng)層距離窗口頂部,始終保持80px
var offsetTop = $(window).scrollTop() + 80 +"px";
$("#Float").animate({top : offsetTop },{ duration:500 , queue:false });
});
});
/script
//假設(shè)元素ID為test,獲取它到父元素的距離
$(?"#test"?).offset().top;//獲取到父元素的距離。如果父元素距離body不為0,還需要進(jìn)行相加
html xmlns=""
head
meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /
titlejquery浮動(dòng)層/title
script src="jquery-1.8.3.js"/script!-- 注意修改引用路徑 --
style type="text/css"
#Float {background-color: #000;height: 200px;width: 100px;position: absolute;top: 80px;right: 20px;}
/style
/head
script language="javascript"
$(document).ready(function(){
$(window).scroll(function (){
// 讓浮動(dòng)層距離窗口頂部,始終保持80px
var offsetTop = $(window).scrollTop() + 80 +"px";
$("#Float").animate({top : offsetTop },{ duration:500 , queue:false });
});
});
/script
body
div style="height:2000px;"/div
div id="Float"/div
/body
/html
這段代碼copy到一個(gè)空的html中,注意修改jQuery.1.8.3.js的引用路徑,然后在瀏覽器中打開這個(gè)頁面,可以看到效果,應(yīng)該就是你想要的
getBoundingClientRect()最先是IE的私有屬性,現(xiàn)在已經(jīng)是一個(gè)W3C標(biāo)準(zhǔn)。所以你不用當(dāng)心瀏覽器兼容問題,不過還是有區(qū)別的:IE只返回top,lef,right,bottom四個(gè)值,不夠可以通過以下方法來獲取width,height的值:
//兼容所有瀏覽器寫法:
var ro = object.getBoundingClientRect();
var Top = ro.top;
var Bottom = ro.bottom;
var Left = ro.left;
var Right = ro.right;
var Width = ro.width||Right - Left;
var Height = ro.height||Bottom - Top;
//有了這個(gè)方法,獲取頁面元素的位置就簡單多了:
var X= this.getBoundingClientRect().left+document.documentElement.scrollLeft;
var Y =this.getBoundingClientRect().top+document.documentElement.scrollTop;