#javascript #html #jquery #css #tooltip
#javascript #HTML #jquery #css #всплывающая подсказка
Вопрос:
Я работаю над изображением (в данном случае красным квадратом), которое появляется и следует за мышью при наведении курсора на определенный текст.
Проблема в том, что, хотя вначале он работает идеально, как только я прокручиваю изображение вниз, изменяется расстояние с помощью мыши, что в конечном итоге приводит к потере. Кажется, я делаю что-то не так, но я этого не вижу.
Здесь я прилагаю код:
$('.imagetooltip').mousemove(function (e) {
$('span', this).css({left: e.pageX 0, top: e.pageY 0});
});
.imagetooltip span {
position: fixed;
opacity: 0;
transition: opacity .5s ease-in-out;
}
.imagetooltip:hover span {
opacity: 1;
}
<ul id="listcontainer">
<li class="imagetooltip">
<p>HERE A SHORT TEXT</p><span><div class="home-img" style="height: 300px; width: 600px; background: red"></span>
</li>
<li class="imagetooltip">
<p>HERE A SHORT TEXT</p><span><div class="home-img" style="height: 300px; width: 600px; background: red"></span>
</li>
<li class="imagetooltip">
<p>HERE A SHORT TEXT</p><span><div class="home-img" style="height: 300px; width: 600px; background: red"></span>
</li>
<li class="imagetooltip">
<p>HERE A SHORT TEXT</p><span><div class="home-img" style="height: 300px; width: 600px; background: red"></span>
</li>
<li class="imagetooltip">
<p>HERE A SHORT TEXT</p><span><div class="home-img" style="height: 300px; width: 600px; background: red"></span>
</li>
<li class="imagetooltip">
<p>HERE A SHORT TEXT</p><span><div class="home-img" style="height: 300px; width: 600px; background: red"></span>
</li>
<li class="imagetooltip">
<p>HERE A SHORT TEXT</p><span><div class="home-img" style="height: 300px; width: 600px; background: red"></span>
</li>
<li class="imagetooltip">
<p>HERE A SHORT TEXT</p><span><div class="home-img" style="height: 300px; width: 600px; background: red"></span>
</li>
<li class="imagetooltip">
<p>HERE A SHORT TEXT</p><span><div class="home-img" style="height: 300px; width: 600px; background: red"></span>
</li>
<li class="imagetooltip">
<p>HERE A SHORT TEXT</p><span><div class="home-img" style="height: 300px; width: 600px; background: red"></span>
</li>
<li class="imagetooltip">
<p>HERE A SHORT TEXT</p><span><div class="home-img" style="height: 300px; width: 600px; background: red"></span>
</li>
<li class="imagetooltip">
<p>HERE A SHORT TEXT</p><span><div class="home-img" style="height: 300px; width: 600px; background: red"></span>
</li>
<li class="imagetooltip">
<p>HERE A SHORT TEXT</p><span><div class="home-img" style="height: 300px; width: 600px; background: red"></span>
</li>
<li class="imagetooltip">
<p>HERE A SHORT TEXT</p><span><div class="home-img" style="height: 300px; width: 600px; background: red"></span>
</li>
<li class="imagetooltip">
<p>HERE A SHORT TEXT</p><span><div class="home-img" style="height: 300px; width: 600px; background: red"></span>
</li>
<li class="imagetooltip">
<p>HERE A SHORT TEXT</p><span><div class="home-img" style="height: 300px; width: 600px; background: red"></span>
</li>
<li class="imagetooltip">
<p>HERE A SHORT TEXT</p><span><div class="home-img" style="height: 300px; width: 600px; background: red"></span>
</li>
<li class="imagetooltip">
<p>HERE A SHORT TEXT</p><span><div class="home-img" style="height: 300px; width: 600px; background: red"></span>
</li>
<li class="imagetooltip">
<p>HERE A SHORT TEXT</p><span><div class="home-img" style="height: 300px; width: 600px; background: red"></span>
</li>
<li class="imagetooltip">
<p>HERE A SHORT TEXT</p><span><div class="home-img" style="height: 300px; width: 600px; background: red"></span>
</li>
</ul>
Я буду признателен за любые предложения / улучшения в коде 🙂
Заранее большое спасибо и приветствия!
* Примечание: фрагмент кода не может перемещать красный квадрат и следовать за мышью, но когда я запускаю код локально, я не получаю никаких проблем с jQuery: S
Ответ №1:
Во-первых, span
это встроенный элемент и div
элемент блока. Таким образом, наличие div
inside span
не является хорошей практикой, кроме того, было бы лучше, если бы вы вложили span
inside span
и дали inner span
display:block
или display: inline-block
property .
во-вторых, измените position: fixed
на position:absolute.
.imagetooltip span {
position: absolute;
opacity: 0;
transition: opacity .5s ease-in-out;
}