#javascript #jquery
#javascript #jquery
Вопрос:
У меня есть список проектов с изображениями, которые имеют эффект наведения. Эффект наведения показывает описание проекта. Я создал цикл, который показывает в течение 3 секунд каждое описание проекта.
Проблема в том, что когда вы вводите мышью какой-либо элемент, он показывает текст, но когда цикл перехватывается, он скрывает текст проекта. И вам нужно оставить и ввести элемент, чтобы снова отобразить текст. Я хочу запретить скрывать текст, если элемент уже завис.
var index = 0;
var duration = 3000;
function loopProjects() {
$('.port-hov').each(function(index,item) {
index = index 1;
//console.log(index);
setTimeout(function(){
$(item).mouseenter();},duration);
duration = duration 3000;
setTimeout(function(){
$(item).mouseleave();},duration);
});
}
setInterval(loopProjects, index * 4000);
Решение!
function loopProjects() {
$('.port-hov').each(function(index,item) {
index = index 1;
setTimeout(function(){
$(item).mouseenter();},duration);
duration = duration 3000;
setTimeout(function(){
if (!$(item).is(":hover")){
$(item).mouseleave();}},duration);
});
}
Комментарии:
1. Перед вызовом
mouseleave
проверьте, находится лиitem
он под мышкой.if (!$(item).is(":hover"))
2. Я уже это сделал. Но не в том месте 🙂 Спасибо, что открыли мне глаза: D