jquery position()函式和offset()函式的區別
本章節介紹一下這兩個函式的基本用法和區別,希望能夠給需要的朋友帶來一定的幫助。
一.position()函式:
此函式可以返回當前元素距離最近定位父元素的偏移量,如果父元素中沒有定位元素,那麼就返回相對於文件的偏移量。
它會返回一個物件,此物件具有left和top屬性,能夠分別返回左和上偏移量。
程式碼例項:
[HTML] 純文字檢視 複製程式碼<!DOCTYPE html><html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> body{ margin:100px; height:1000px; } #thediv{ width:150px; height:50px; background:green; } </style> <script type="text/javascript" src="mytest/jQuery/jquery-1.8.3.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("#bt").click(function(){ $("#thediv").html($("#thediv").position().left); }) }) </script> <body> <div id="thediv"></div> <input type="button" id="bt" value="檢視效果"/> </body> </html>
由於div元素的父元素中沒有定位元素,所以此函式返回的是相對於文件的偏移量。
二.offset()函式:
此函式和postion()函式有所區別,它始終返回元素相對於文件的偏移量。
它會返回一個物件,此物件具有left和top屬性,能夠分別返回左和上偏移量。
程式碼例項:
[HTML] 純文字檢視 複製程式碼<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> body{ margin:100px; height:1000px; } #thediv{ width:150px; height:50px; background:green; } </style> <script type="text/javascript" src="mytest/jQuery/jquery-1.8.3.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("#bt").click(function(){ $("#thediv").html($("#thediv").offset().left); }) }) </script> <body> <div id="thediv"></div> <input type="button" id="bt" value="檢視效果"/> </body> </html>
上面的程式碼可以返回div元素相對於文件的偏移量。
三.兩者的區別:
區別其實在上面兩個函式的介紹中已經比較清楚了,下面再來做一下簡單的總結。
1.相同點是兩者的返回值都是一個物件,此物件包含top和left兩個屬性,分別能夠返回頂部和左部的偏移量。
2.不同點是position()函式首先要看當前元素是否具有定位父元素,如果有則返回的是相對它最近的定位父元素的偏移量,如果沒有,則返回相對於文件的偏移量,而offset()函式則始終返回相對於文件的偏移量。
相關文章
- jquery的$.each()函式和$.map()函式的區別jQuery函式
- 函式宣告和函式表示式的區別函式
- prop()函式和attr()函式的區別函式
- JavaScript函式宣告和函式表示式區別JavaScript函式
- # 普通函式和箭頭函式的區別函式
- StretchBlt函式和BitBlt函式的區別和用法函式
- JavaScript建構函式和普通函式的區別JavaScript函式
- 正規表示式match()函式和exec()函式的區別函式
- closest()函式parent()函式的區別函式
- 箭頭函式和普通函式的10個區別函式
- 面試題:箭頭函式和普通函式的區別面試題函式
- 簡述箭頭函式和普通函式的區別函式
- 箭頭函式、簡寫函式、普通函式的區別函式
- js表示式方式和函式語句方式宣告函式的區別JS函式
- JavaScript方法和函式區別JavaScript函式
- 建構函式與普通函式的區別函式
- 箭頭函式與普通函式的區別函式
- append()函式與html()函式的區別APP函式HTML
- 函式過載與函式模板的區別函式
- C/C++的mem函式和strcopy函式的區別和應用C++函式
- jQuery offset()和position()用法詳解jQuery
- 深入理解箭頭函式和傳統函式的區別函式
- Day 59/100 箭頭函式和普通函式的區別函式
- python內建函式-eval()函式與exec()函式的區別Python函式
- C#中解構函式,Close函式,Dispose函式的區別C#函式
- 箭頭函式與普通函式區別函式
- fill函式與memset函式的區別(c++)函式C++
- TypeScript 中函式的理解?與 JavaScript 函式的區別?TypeScript函式JavaScript
- JavaScript:鉤子函式與回撥函式的區別JavaScript函式
- 例項物件和函式物件的區別物件函式
- Python中函式和方法的區別Python函式
- 儲存過程和函式的區別儲存過程函式
- SQL server 表值函式 標量值函式 區別SQLServer函式
- window.onload()函式和jQuery中的document.ready()區別函式jQuery
- php取整函式ceil,floor,round,intval函式的區別PHP函式
- JQuery的ready函式與JS的onload的區別jQuery函式JS
- jQuery的each函式jQuery函式
- 前端面試ES6系列:箭頭函式和普通函式的區別前端面試函式