Задержка перед появлением элемента
21.02.2025 08:22:24 pm
Здравствуйте.
Есть невидимый блок, с краткой информацией, который появляется при наведении на другой блок, так сказать, всплывающая подсказка. Но появляется она сразу, и это мешает. Допустим, курсор хотят навести на один блок, и ведя до него, стрелочкой проводят по соседнему блоку, что находится на пути, тут появляется подсказка и перекрывает нужный блок.
Чтобы не было таких неприятностей, надо сделать задержку появления всплывающей подсказки. Можно на JavaScript, лучше на чистом CSS. Хотя, без разницы, как.
Поможете реализовать?
Спасибо.
Есть невидимый блок, с краткой информацией, который появляется при наведении на другой блок, так сказать, всплывающая подсказка. Но появляется она сразу, и это мешает. Допустим, курсор хотят навести на один блок, и ведя до него, стрелочкой проводят по соседнему блоку, что находится на пути, тут появляется подсказка и перекрывает нужный блок.
.information {
display: none;
}
.branch:hover .information {
display: block;
}
Чтобы не было таких неприятностей, надо сделать задержку появления всплывающей подсказки. Можно на JavaScript, лучше на чистом CSS. Хотя, без разницы, как.
Поможете реализовать?
Спасибо.
- Жалоба
21.02.2025 08:59:00 pm
Попробуйте на чистом CSS:
В свойствах
.information {
opacity: 0;
visibility: hidden;
transition-property: opacity, visibility;
transition-duration: 1s;
transition-delay: 1s;
}
.branch:hover .information {
opacity: 1;
visibility: visible;
}
В свойствах
transition-duration
и transition-delay
меняйте время нужное Вам, в секундах:transition-duration
: Продолжительность появления.transition-delay
: Задержка перед появлением.
22.02.2025 08:29:22 am
Пробуйте:
Опять же, настраивайте время, которое необходимо Вам.
.information {
opacity: 0;
visibility: hidden;
transition-property: opacity, visibility;
transition-duration: .1s;
transition-delay: .1s;
}
.branch:hover .information {
opacity: 1;
visibility: visible;
transition-property: opacity, visibility;
transition-duration: 1s;
transition-delay: 1s;
}
Опять же, настраивайте время, которое необходимо Вам.
22.02.2025 01:35:09 pm
Такой вариант:
CSS:
JavaScript:
Конечно, сыровато, конечно, надо доработать.
CSS:
.information {
display: none;
}
JavaScript:
var branch = document.querySelector('.branch');
branch.addEventListener('mouseover', function() {
setTimeout(function() {
document.querySelector('.information').style.display = 'block';
}, 1000);
});
Конечно, сыровато, конечно, надо доработать.
24.02.2025 09:53:16 am
Как то так:
Надо допиливать, а я не силен. Могу только приблизительно сделать.
var branch = document.querySelectorAll('.branch');
for (var i = 0; branch.length > i; i++) {
branch[i].addEventListener('mouseover', function() {
this.querySelector('.information').style.display = 'block';
});
branch[i].addEventListener('mouseout', function() {
this.querySelector('.information').style.display = 'none';
});
};
Надо допиливать, а я не силен. Могу только приблизительно сделать.