Jquery之后悬停效果不起作用
hover effect not working after Jquery
我目前正在为一家建筑公司HLArchitects制作一个网站。在项目页面中,我创建了一个HTML/Javascript图像库。将鼠标悬停在较小的缩略图上时,不透明度将从0.5更改为1。可在此处查看以供参考:http://www.hla.co.za/projects/Hyuandai_Training_Centre/
我的问题是,当你点击其中一个较小的缩略图,它会改变上面较大的图片,然后尝试悬停在另一个较小缩略图上时,它不再改变不透明度。我使用了一个简单的CSS :hover
来更改不透明度和transition: opacity 0.2s
。以下是缩略图点击事件的Javascript/Jquery:
var imageFlow = document.getElementById("imageFlow");
var img = imageFlow.getElementsByTagName("img");
$("#imageFlow img").click(function(){
var src = $(this).attr("src");
if (src != $('#displayImg img').attr("src")){
$('#displayImg img').fadeOut(200);
setTimeout(function(){$("#displayImg img").attr("src",src);}, 200);
$('#displayImg img').fadeIn(200);
}
for (var i = 0; i < img.length; i++) {
$(img[i]).css("opacity","0.5");
}
$(this).css("opacity","1");
})
HTML:
<div id="displayImg">
<img src="images/095.jpg">
</div>
<div id="imageFlow">
<img src="images/095.jpg" alt="095" width="" height="" />
<img src="images/105.jpg" alt="105" width="" height="" />
<img src="images/106.jpg" alt="106" width="" height="" />
<img src="images/110.jpg" alt="110" width="" height="" />
<img src="images/133.jpg" alt="133" width="" height="" />
<img src="images/137.jpg" alt="137" width="" height="" />
<img src="images/138.jpg" alt="138" width="" height="" />
<img src="images/141.jpg" alt="141" width="" height="" />
<img src="images/145.jpg" alt="145" width="" height="" />
<img src="images/149.jpg" alt="149" width="" height="" />
<img src="images/160.jpg" alt="160" width="" height="" />
<img src="images/DSC_0077.jpg" alt="DSC_0077" width="" height="" />
<img src="images/DSC_0091.jpg" alt="DSC_0091" width="" height="" />
<img src="images/DSC_0092.jpg" alt="DSC_0092" width="" height="" />
<img src="images/DSC_0093.jpg" alt="DSC_0093" width="" height="" />
<img src="images/DSC_0252.jpg" alt="DSC_0252" width="" height="" />
<img src="images/DSC_0357.jpg" alt="DSC_0357" width="" height="" />
<img src="images/DSC_0360.jpg" alt="DSC_0360" width="" height="" />
<img src="images/DSC_0380.jpg" alt="DSC_0380" width="" height="" />
</div>
我真的很感激有一个解决方案,这样即使你点击了其中一个缩略图,悬停效果也能发挥作用
提前感谢
var images = $("#imageFlow img");
images.on('click', function(){
var src = $(this).attr("src");
if (src != $('#displayImg img').attr("src")){
$('#displayImg img').fadeOut(200, function() {
$(this).attr("src", src).fadeIn(200);
});
}
images.removeAttr('style');
this.style.opacity = '1';
});
FIDDLE
此外,您的网站有两个打开的正文标记和奇怪的无效标记。
CSS:
#imageFlow img:hover,
#imageFlow img.active {
opacity: 1;
}
JS:
var $img = $("#imageFlow").find("img");
$img.click(function(){
var src = this.src;
if (src != $('#displayImg img')[0].src){
$(this).addClass('active').siblings('img').removeClass('active');
$('#displayImg img').stop().fadeTo(200,0, function(){
this.src = src;
$(this).fadeTo(200, 1);
});
}
});
仔细查看您的HTML元素,修复未关闭的标记、重复的标记、复制的ID元素等,以及页面控制台中弹出的其他JS错误。否则,您将在循环中运行;)
最初,当我在控制台中运行此程序时,我会收到以下错误:
TypeError: projs is null
var img = projs.getElementsByTagName('img');
您的脚本似乎在DOM中查找尚未加载的内容。
目前proj.js正在寻找尚未加载的元素。
脚本应该像imageFlow.js.
相关文章:
- 悬停时的Jquery不起作用
- 为什么jQuery悬停方法在这种情况下不起作用
- Jquery悬停选择不起作用
- 悬停时颜色变为灰度在IE11中不起作用
- 淡入淡出链接悬停不起作用
- 简单的鼠标悬停在 Chrome 中不起作用
- 悬停时函数在具有相同 id 的多个元素中不起作用
- 悬停不起作用时对不透明度更改进行动画处理
- .CSS.:悬停在导航>李上不起作用
- 当加载带有hastags的动态内容-URI时,Jquery-悬停效果不起作用
- CSS悬停在JQuery循环的最后一条记录中不起作用
- jquery悬停在图像上不起作用
- 鼠标悬停功能获胜'不起作用
- 悬停缩放在数据表的第二页上不起作用
- kwicks滑块正在加载,但鼠标悬停不起作用
- 悬停内容悬停不起作用
- 鼠标悬停导航链接不起作用
- Chart.js-悬停弹出-添加带值的标签-不起作用
- 鼠标悬停元素在使用量角器时不起作用
- 伪类悬停在 JavaScript ImageSwap 中不起作用