Эффект наведения Jquery в цикле

#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