javascript - 循环浏览图像直到悬停 jquery

标签 javascript jquery css

我希望图像单独循环,例如每 2 秒更改一次图像,但当关联的链接悬停时切换到正确的图像。以下是我到目前为止所取得的成果。现在,我得到了悬停时显示的图像,但我不知道如何让它们循环。

$("#one").on({
mouseover: function () {
    timer = setTimeout(function () {
        $("#first").removeClass('hidden').css('opacity', '1');
    }, 300);
},
mouseout: function () {
    clearTimeout(timer);
    $("#first").css({
        'opacity': '0'
    }).addClass('hidden');
}
});

https://jsfiddle.net/enwed7b9/1/

最佳答案

您的 HTML 中有一些损坏的图像链接。但这应该可以解决问题: https://jsfiddle.net/pengyanb/st47yxqb/6/

var imageIndex = 0;
var periodicTimer;
setPeriodicTimer();

function setPeriodicTimer()
{
    periodicTimer = setTimeout(function(){
        $('img').addClass('hidden').css('opacity', '0');
        console.log('imageIndex: '+imageIndex);
		switch(imageIndex)
        {
            case 0:
                $('#first').removeClass('hidden').css('opacity', '1');
                break;
           case 1:
                $('#second').removeClass('hidden').css('opacity', '1');
                break;
           case 2:
                $('#third').removeClass('hidden').css('opacity', '1');
                break;       
           case 3:
                $('#fourth').removeClass('hidden').css('opacity', '1');
                break;
   
           case 4:
                $('#fifth').removeClass('hidden').css('opacity', '1');
                break;
           case 5:
                $('#sixth').removeClass('hidden').css('opacity', '1');
                break;
           case 6:
                $('#seventh').removeClass('hidden').css('opacity', '1');
                break;
        }
        imageIndex++;
        if(imageIndex > 6)
            imageIndex = 0;
        setPeriodicTimer();
	}, 2000);
}

$("#one").on({
    mouseover: function () {
        clearTimeout(periodicTimer);
        imageIndex = 0;
        $('img').addClass('hidden').css('opacity', '0');
        timer = setTimeout(function () {
            $("#first").removeClass('hidden').css('opacity', '1');
        }, 300);
    },
    mouseout: function () {
        setPeriodicTimer();
        clearTimeout(timer);
        $("#first").css({
            'opacity': '0'
        }).addClass('hidden');
    }
});
$("#two").on({
    mouseover: function () {
        clearTimeout(periodicTimer);
        imageIndex = 1;
        $('img').addClass('hidden').css('opacity', '0');
        timer = setTimeout(function () {
            $("#second").removeClass('hidden').css('opacity', '1');
        }, 300);
    },
    mouseout: function () {
        setPeriodicTimer();
        clearTimeout(timer);
        $("#second").css({
            'opacity': '0'
        }).addClass('hidden');
    }
});
$("#three").on({
    mouseover: function () {
        clearTimeout(periodicTimer);
        imageIndex = 2;
        $('img').addClass('hidden').css('opacity', '0');
        timer = setTimeout(function () {
            $("#third").removeClass('hidden').css('opacity', '1');
        }, 300);
    },
    mouseout: function () {
        setPeriodicTimer();
        clearTimeout(timer);
        $("#third").css({
            'opacity': '0'
        }).addClass('hidden');
    }
});
$("#four").on({
    mouseover: function () {
        clearTimeout(periodicTimer);
        imageIndex = 3;
        $('img').addClass('hidden').css('opacity', '0');
        timer = setTimeout(function () {
            $("#fourth").removeClass('hidden').css('opacity', '1');
        }, 300);
    },
    mouseout: function () {
        setPeriodicTimer();
        clearTimeout(timer);
        $("#fourth").css({
            'opacity': '0'
        }).addClass('hidden');
    }
});
$("#five").on({
    mouseover: function () {
        clearTimeout(periodicTimer);
        imageIndex = 4;
        $('img').addClass('hidden').css('opacity', '0');
        timer = setTimeout(function () {
            $("#fifth").removeClass('hidden').css('opacity', '1');
        }, 300);
    },
    mouseout: function () {
        setPeriodicTimer();
        clearTimeout(timer);
        
        $("#fifth").css({
            'opacity': '0'
        }).addClass('hidden');
    }
});
$("#six").on({
    mouseover: function () {
        clearTimeout(periodicTimer);
        imageIndex = 5;
        $('img').addClass('hidden').css('opacity', '0');
        timer = setTimeout(function () {
            $("#sixth").removeClass('hidden').css('opacity', '1');
        }, 300);
    },
    mouseout: function () {
        setPeriodicTimer();
        clearTimeout(timer);
        $("#sixth").css({
            'opacity': '0'
        }).addClass('hidden');
    }
});
$("#seven").on({
    mouseover: function () {
        clearTimeout(periodicTimer);
        imageIndex = 6;
        $('img').addClass('hidden').css('opacity', '0');
        timer = setTimeout(function () {
            $("#seventh").removeClass('hidden').css('opacity', '1');
        }, 300);
    },
    mouseout: function () {
        setPeriodicTimer();
        clearTimeout(timer);
        $("#seventh").css({
            'opacity': '0'
        }).addClass('hidden');
    }
});
.box {
    position: relative;
    display: inline-block;
    height: 15px;
    line-height: 15px;
    text-align: center;
    transition: .3s;
    cursor: pointer;
    margin-bottom: 4px;
    margin-right: 3px;
    padding-bottom: 7px
}

.image {
    width: 100%;
    z-index: -1
}
.image img {
    margin: auto;
    position: absolute;
    top: 0;
    left: 10%;
    bottom: 0;
    right: 0;
    width: 55%;
    transition: ease-out .4s;
    z-index: -1
}
.hidden {
   
    opacity: 1
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="project-link-2">
    <li class="box" id="one"> <a class="project-link" href="#modal1"><span>Modurra Shelving</span>   </a>	
    </li>
    <br>
    <li class="box" id="two"> <a class="project-link" href="#modal2"><span>Kami Bicycle Helmet</span> </a>	
    </li>
    <br>
    <li class="box" id="three"> <a class="project-link" href="#modal3"><span>Revamping Language Learning</span> </a>	
    </li>
    <br>
    <li class="box" id="four"> <a class="project-link" href="#modal4"><span>Sports Innovation Challenge</span> </a>	
    </li>
    <br>
    <li class="box" id="five"> <a class="project-link" href="#modal5"><span>Lights Out</span></a> 
    </li>
    <br>
    <li class="box" id="six"> <a class="project-link" href="#modal6"><span>Maru Personal Speaker Design</span> </a>	
    </li>
    <br>
    <li class="box" id="seven"> <a class="project-link" href="#modal7"><span>A Few Casual Projects</span> </a>	
    </li>
</ul>
   
        
        
<div class="image">
    <img alt="" class="hidden" id="first" src="http://consequenceofsound.files.wordpress.com/2013/06/datside-ram.jpg">
</div>
<!-- Lights Out -->
<div class="image">
    <img alt="" class="hidden" id="second" src="http://tctechcrunch2011.files.wordpress.com/2012/03/random_house_logo.jpg">
</div>
<!-- Modurra -->
<div class="image">
    <img alt="" class="hidden" id="third" src="work/Wordpix/splash_word.jpg">
</div>
<!-- WordPix -->
<div class="image">
    <img alt="" class="hidden" id="fourth" src="work/Sports/splash_sports.jpg">
</div>
<!-- Luna -->
<div class="image">
    <img alt="" class="hidden" id="fifth" src="work/Lights Out/Lights-Out-Gif.gif">
</div>
<!-- Kami -->
<div class="image">
    <img alt="" class="hidden" id="sixth" src="work/Maru/splash_maru.jpg">
</div>
<!-- Misc -->
<div class="image">
    <img alt="" class="hidden" id="seventh" src="work/Misc/splash_comp.jpg">
</div>
</div>

关于javascript - 循环浏览图像直到悬停 jquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32171334/

相关文章:

javascript - 在导航栏中为每个父级添加每个类

php - jQuery 验证远程方法使用来检查用户名是否已存在

jquery - 如何为导航元素提供自动计算的背景颜色

css - 用CSS放置元素?

performance - 是:last-child selector bad for performance?

javascript - 如何将 RequireJS 与 Knockout 结合使用

javascript - 关联数组查找(来自 Three.js 中的代码)

javascript - 使用 MVC 5 的 IE11 缓存问题

javascript - jQuery:未捕获类型错误:对象#<Object>没有方法 'apply'

javascript - 删除按钮隐藏在另一个元素后面。如何使该元素位于顶部以便可见?