鍍金池/ 問答/HTML/ vue怎么獲取當(dāng)前元素相對于父級元素的位置?

vue怎么獲取當(dāng)前元素相對于父級元素的位置?

因為是循環(huán)出來的,所以$refs應(yīng)該是用不了的吧?
把this console出來也沒看到有可取的地方?

回答
編輯回答
風(fēng)清揚

其實這和vue沒什么關(guān)系,你通過ref拿到當(dāng)前的dom節(jié)點,然后通過原生的js方法獲取到offsettop之類的屬性

2017年1月8日 12:05
編輯回答
茍活

原生 JS 也沒有直接取“相對于父元素位置”的方法。想準(zhǔn)確的話,還是要取兩個節(jié)點的位置然后做減法。

循環(huán)可以用 $refs,循環(huán)后的 $refs 是一個數(shù)組,你想怎么用就怎么用。不過需要注意的是,因為瀏覽器會緩存 DOM 操作,所以你必須等到下一個時間周期才能獲取到節(jié)點的真實位置和尺寸。這里適用 $nextTick

2018年5月11日 18:19
編輯回答
陌如玉

循環(huán)生成的元素也是可以利用ref拿到的,但是得看循環(huán)的數(shù)據(jù)是本地自定義的還是從服務(wù)器返回的,總之一句話,在確保節(jié)點已經(jīng)渲染的情況下,再使用nextTick是可以獲取到的。
至于如何確保渲染,一般來講有請求回調(diào),mounted周期和動態(tài)改變數(shù)據(jù)時的updated周期等

2017年8月1日 03:40