Я новичок в кодировании и собрал некоторые вещи вместе. Я пытаюсь запустить gover на hover. Исходное изображение является статическим, и когда вы наводите gif, начинает играть. Я получил эту работу отлично, но я хочу наложить поверх статического изображения, как кнопка "наведите меня". Когда я нависаю над наложением, он не запускает gif, потому что я не вишу над статическим изображением. Когда я делаю отображение наведения: ни один для наложения он просто не мерцает.
Вот ссылка на то, что у меня есть до сих пор:
<div class="container">
<div class="overlay">TEST </div>
<img src="http://fdfranklin.com/gif1.jpg" alt="" id="static">
</div>
(Новое для stackoverflow, поэтому не уверен, как показать css/JS здесь ссылка jsfiddle)
Если вы избавитесь от наложения div, gif правильно играет при наведении. Я действительно хочу, чтобы это было так, как сейчас, вы наведите курсор, и наложение исчезает и начинает играть в gif.
Есть идеи? Вся помощь, очень ценится.
Вы никогда не скрываете оверлейный div и, следовательно, не зависаете с gif. Просто установите начало, когда вы наведете наложение:
$(document).ready(function()
{
$(".overlay").hover(
function()
{
$('#static').attr("src", "http://i.imgur.com/ytWYljT.gif");
},
function()
{
$('#static').attr("src", "http://fdfranklin.com/gif1.jpg")
}
);
});
Я бы сделал следующее. Вместо того, чтобы иметь только один img, создайте два, один статический и один анимированный. Скрыть анимированное изображение по умолчанию и показывать только, когда вы нависаете над наложением. Например
<div class="container">
<div class="overlay"><p>TEST</p> </div>
<img src="http://fdfranklin.com/gif1.jpg" alt="" id="static">
<img src="http://i.imgur.com/ytWYljT.gif" alt="" id="animated" style="display: none;">
</div>
а потом
$(".overlay").hover(
function()
{
$("#static").hide();
$("#animated").show();
},
function()
{
$("#static").show();
$("#animated").hide();
}
);
Ваша проблема в том, что событие "hover" происходит с div OVERLAY вместо # статического изображения. Вы захотите изменить свой JS следующим образом:
$('.overlay).hover();
См. Здесь полное решение: JSFiddle
Вы могли бы сделать что-то вроде этого:
$(".container").hover(
function(){
$(".overlay").fadeOut(300);
$(this).find("img").attr("src", "http://i.imgur.com/ytWYljT.gif");
},
function() {
$(this).find("img").attr("src", "http://fdfranklin.com/gif1.jpg");
$(".overlay").fadeIn(300);
}
);