2013-08-08 14 views
6

Soru: .offset() ve .position() arasındaki fark nedir?.position() ve .offset() arasındaki fark ve ilginç bir Gözlem?

Bu konuyla ilgili bazı dokümanlar okuyabiliyorum, ancak yine de bu ikisi arasındaki gerçek farkın ne olduğu konusunda net değilim. Aynı konuda basit bir açıklama isterdim.

Benim Gözlem:

ben web sayfası (.aspx) kendisi yerleştirilen bir javascript kodu yazdım. Javascript temel olarak kalıcı bir açılır pencerenin konumunu ayarlıyor. Bu kodda, modal açılır pencereyi yerleştireceğim bir div pozisyonunu almak için .position() kullanılır. Şimdi, İşte twist - javascript kodunu ayrı bir js dosyasına taşıdığımda, .position() düzgün çalışmıyordu, yerine .offset() kullandı ve iyi çalışıyordu.

Bu konuda bir açıklama isterim?

+0

olası kopyası [jQuery: position() ile offset() arasındaki fark] (http://stackoverflow.com/questions/3202008/jquery-difference-between-position-and-offset) – Medorator

cevap

7

Bu, öğenin hangi bağlamda olduğuna bağlıdır. Konum, ofset ebadına göre konumu döndürür ve ofset, belgeye göre aynıdır. Belli ki, eğer belge çoğu zaman olan ofset ebeveynse, bunlar aynı olacaktır.

sen ancak böyle bir düzen, varsa: Sonra 200 olacak alt için ofset

<div style="position: absolute; top: 200; left: 200;"> 
    <div id="sub"></div> 
</div> 

: 200, pozisyonu 0 olacaktır: 0.

Bunun mantıklı olmasını umuyorum.

+0

"Ofset nedir" ebeveyn "? Statik dışındaki herhangi bir şeye ayarlanmış bir pozisyon stili özniteliğine sahip ilk ata mı? – Hubro

+1

evet, ofset üst öğesi, statik dışındaki en yakın konumlandırılmış üstündür. – vipulsharma

+0

.position() öğesi her zaman ana öğenin koordinatlarını belirtir; .offset() öğesi ise, bu öğe konumlandırıldığında üst sayfanın ofsetini hesaba katarak bu tür koordinatları hesaplayabilir. Eğer Yanlışsam beni düzelt ? –

İlgili konular