Задать вопрос
@Paul14

Как отследить изменение offsetTop во vue3?

Есть компонент Test который принимает пропс position = {top: ... , left:...} в котором содержаться координаты для этого объекта. Объект Test передвигаться по экрану исходя из переданных значений в пропсе. Внутри него в я передаю div.

<Test :position="position">
      <div class="linePointer" ref="pointer">
  </Test>


Я хочу повесить слушатель события, который бы отслеживал изменение offsetTop у этого дива .linePointer. Как это сделать? Именно отследить изменение offsetTop или offsetLeft у html элемента.
if(this.$ref.pointer.offsetTop изменился){ console.log(this.$ref.pointer.offsetTop)}


// Не работает 
 <div class="linePointer" ref="pointer" v-on:update-offset-top="handleOffsetTopChange">


// Не работает 
mounted() {
    const pointerElement = ref(null);
    watchEffect(() => {
      if (pointerElement.value) {
        const { offsetTop } = pointerElement.value;
        // Обрабатываем изменение offsetTop
        console.log('Новое значение offsetTop:', offsetTop);
      }
    });
    // Связываем элемент с атрибутом ref="pointer" с реактивным свойством
    this.$refs.pointer = pointerElement;
  }


// Не работает 
watch:{
'this.$refs.pointer.offsetTop'(){
...
}
}
  • Вопрос задан
  • 200 просмотров
Подписаться 1 Простой 3 комментария
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы