Bu, IE7 veya Firefox'ta yapılabilir mi?Tarayıcı görüntü alanı içinde div pozisyonunu almak mümkün mü? Belge içinde değil. Pencerenin içinde
Tarayıcı görüntü alanı içinde div pozisyonunu almak mümkün mü? Belge içinde değil. Pencerenin içinde
cevap
Her ikisinde de yapabilirsiniz - belgeye göre konumu alın ve kaydırma konumunu çıkarın.
var e = document.getElementById('xxx');
var offset = {x:0,y:0};
while (e)
{
offset.x += e.offsetLeft;
offset.y += e.offsetTop;
e = e.offsetParent;
}
if (document.documentElement && (document.documentElement.scrollTop || document.documentElement.scrollLeft))
{
offset.x -= document.documentElement.scrollLeft;
offset.y -= document.documentElement.scrollTop;
}
else if (document.body && (document.body.scrollTop || document.body.scrollLeft))
{
offset.x -= document.body.scrollLeft;
offset.y -= document.body.scrollTop;
}
else if (window.pageXOffset || window.pageYOffset)
{
offset.x -= window.pageXOffset;
offset.y -= window.pageYOffset;
}
alert(offset.x + '\n' + offset.y);
the dimensions jQuery plugin'u deneyin. Bakınız this demo.
$('#myelement.').offset();
Sen ancak çok basit bir sayfada, document.body.scrollTop
Bu IE7 ve FF3 üzerinde çalışmak gibi görünüyor dan div offsetTop çıkarma olabilir. Yuvalanmış DIV'leri kontrol etmedim.
Hayır, offsetTop sadece üst div içindeki konumunuzu gösterir. Bu, üst düzey div için çalışır ve başkalarıyla başarısız olur. İlk cevabın ebeveynleri ofsetleri biriktirerek nasıl yürüdüğünü not edin. – mmaclaurin
Prototip kullanarak olurdu:
IE ve Firefox 3'te$('divname').viewportOffset.top
$('divname').viewportOffset.left
, bunun için getBoundingClientRect kullanabilirsiniz; çerçeve gerekli değildir.
Ancak, diğer tarayıcıları da desteklemeniz gerekiyorsa, bir çerçeve kullanmalısınız.
yerli getBoundingClientRect()
yöntem artık uzunca bir süredir ve soru sorar tam olarak ne yapar gelmiştir [cevap yapıştırılıyor ben here verdi]. Artı tüm tarayıcılarda desteklenir (IE 5 dahil, öyle görünüyor!)
this MDN sayfasından:
döndürülen değer salt okunur sol içeren bir TextRectangle nesnesidir, üst, sağ ve alt numaralı görünümün sol üst köşesine göre üst soldaki numaralı piksel ile sınır kutusunu açıklayan özellikler.
Öyle gibi kullanabilirsiniz:
var viewportOffset = el.getBoundingClientRect();
// these are relative to the viewport, i.e. the window
var top = viewportOffset.top;
var left = viewportOffset.left;
- 1. Bir div içinde hareket etmeden div içinde hareket etme
- 2. Tuval içinde dairesel görüntü kesiyor
- 3. kanvas: zaman içinde geri dönmek mümkün mü?
- 4. P4TICKET'i P4Eclipse içinde değiştirmek mümkün mü?
- 5. CSS stilini, div içinde
- 6. , div içinde jquery .html ('');
- 7. Gölge kök div girişi içinde
- 8. style h1 bir div içinde
- 9. mysql db içinde Boolean Alanı
- 10. Kaydırılabilir div içinde fare pozisyonu alın
- 11. Ana pencerenin içinde pencere öğesi nasıl görüntülenir
- 12. Ad alanı içinde özel sınıf
- 13. iframe parent içinde access div
- 14. İçindeki yeni satır div içinde
- 15. sayfa yüklenirken div içinde silinme
- 16. Bir div içinde taşan metin
- 17. İstediğim alan adı "clienthold" içinde; Bu ismi alabilmem mümkün mü?
- 18. İçinde bir görüntü ile bir div üzerinde 3px ekstra yükseklik
- 19. Görüntü tekrarlayıcı bir ASP.NET C içinde #
- 20. farklı sonuçlar almak mümkün mü?
- 21. navbar gösterisini div içinde duyarlı menü içinde oluştur
- 22. css içinde "kavanoz içinde" görüntülerin JavaFX kullanımı
- 23. Tuval içinde javascript ile fare pozisyonu almak
- 24. Dahili build.xml içinde karınca için logger belirtmek mümkün mü?
- 25. SelectBox içinde CheckBoxList içinde seçilen öğeyi almak için nasıl
- 26. C# sözlük içinde görüntü değeri #
- 27. Dinamik bir div içinde yer alan mutlak görüntüler dinamik değil
- 28. Paket içinde harmanlama alanı Açıklama
- 29. Cloud9 içinde kopyalama çalışma alanı
- 30. Bir ebeveyn div içinde birden fazla div ortalamak nasıl
Lütfen "position" öğesini "offset" ve "bodt" ile "body" ile değiştirin. – suzanshakya
hats-off ... bunu yazan kişi. – Varun
mükemmel - teşekkürler! – Iamsamstimpson