Я пытаюсь добиться следующего - всякий раз, когда я наводю указатель мыши на элемент изображения, я хочу визуализировать элемент p под скрытым изображением и программно установить его свойство top и left так, чтобы оно полностью совпало с изображением над ним. Я уже достиг большей части, однако я не могу понять, как сделать вертикальное выравнивание с изображением. Мой текущий код приводит к следующему:
Это потому, что я установил свойство left равным this.eOffsetLeft = e.target.offsetLeft + width/2
, что является offsetLeft изизображение + его ширина / 2, что заставляет мой тестовый элемент p начинаться после середины изображения. Что я хочу, так это более или менее:
Это достижимо без особых хлопот? Спасибо за чтение!
У меня есть следующий HTML в моем шаблоне:
<section class='skills'>
<img @mouseover='displayAlt' @mouseleave='hover = false' src="#">
<p v-if='hover' v-bind:style='{ "position": "absolute", "top": eOffsetTop + "px", "left": eOffsetLeft + "px" }'>Test</p>
</section>
И следующий JS в моем теге скрипта:
<script>
export default {
data(){
return {
hover: true,
eOffsetTop: null,
eOffsetLeft: null
}
},
methods: {
displayAlt(e){
this.hover = true;
console.log(e)
this.eOffsetTop = e.target.offsetTop + e.target.height + 40
let width = e.target.width
this.eOffsetLeft = e.target.offsetLeft + width/2
}
}
}
</script>