将鼠标悬停在缩略图上以启动新图像;悬停结束后,新图像仍然存在
Hover over thumbnail image to launch new image; new image persists after hovering ends
我有一个缩略图。
将鼠标悬停在此图像上,一个全新的图像将在附近出现。
一旦缩略图的悬停结束,新图像必须保留。只有当用户的鼠标离开新图像时,新图像才会消失。
在今天用CSS做了几个小时的实验之后,我设计的最佳解决方案包括
:hover
伪类、transition
和opacity
。对于JS中的一个简单任务来说,这是一个令人费解和复杂的解决方案。另外,这个解决方案甚至不是很好,可能只适用于较新的浏览器。所以我已经不再寻找一个只使用css的解决方案了(尽管我对你的想法持开放态度)。
JAVASCRIPT
我不太了解JS,但我已经想出了一些代码(可能结构不佳),使我更接近目标。我现在已经准备好的JS在缩略图鼠标上方触发新图像,并在mouseleave上隐藏新图像。
问题是代码没有重置(所以用户必须刷新页面才能使悬停效果再次工作)。
HTML
<ul>
<li id="thumbnail">
<a href="#">THUMBNAIL IMAGE</a>
<ul>
<li>
<a href="#">NEW IMAGE NEARBY</a>
</li>
</ul>
</li>
</ul>
CSS ul > li > ul {display: none;}
ul > li#thumbnail > a {
background-color: #f00;
color: #fff;
padding: 5px;
}
ul > li > ul > li {
position: absolute;
top: 50px;
left: 175px;
background-color: #0f0;
color: #fff;
padding: 15px;
}
ul li ul.permahover {display: block;}
JavaScript $("#thumbnail").one("mouseover", function() {
$("#thumbnail ul").addClass('permahover');
});
$("#thumbnail ul").mouseleave(function(){
$(this).hide();
});
http://jsfiddle.net/nyc212/Ey2bK/2/任何帮助都将非常感激。谢谢你。
它没有重置的原因是你正在使用一个(),使用one()
附加的处理程序每个元素每个事件类型最多执行一次。
试着用on()代替:
$("#thumbnail").on("mouseover", function () {
$("#thumbnail ul").addClass('permahover');
});
$("#thumbnail ul").mouseleave(function () {
$("#thumbnail ul").removeClass('permahover');
});
更新小提琴
边注: on()
在jQuery 1.71之前不可用,因此我更新了jQuery的版本,(on()
是目前附加事件处理程序的推荐方法)对于旧版本的jQuery,您可以使用bind()
相关文章:
- HTML5拖放新图像并替换Div中的现有图像
- 如何在 javascript 替换新图像/标题后正确显示 css 工具提示
- 编辑图像而不创建新图像
- 如何仅在新图像实际可用时刷新图像源
- 为什么可以't我使用javascript显示一个新图像
- 正在显示加载..在将新图像加载到网站时播放动画
- 将鼠标悬停在链接上时的新图像
- 将许多新图像绘制到画布时内存泄漏
- 从网页中的 2 张图像创建新图像
- Jcrop:设置图像后,jcrop在应用新图像时不采用TrueSize
- Javascript/Canvas - 从预先存在的图像创建新图像
- 如何在 DIV 中更新新图像
- 如何使用Javascript,以便每次我单击图像时,它都会在单击的项目下方添加一个新图像
- 如何在鼠标悬停在另一个图像/链接上时显示新图像/窗口
- 使用画布在Javascript中获取新图像的最佳方法
- 如何使用jquery实现垂直图像滑块,其中在显示新图像之前,它将关闭并使用新图像打开
- 将动态创建的图像替换为输入中的新图像
- Javascript 数组不会注意到文件夹中的新图像
- 没有对具有相同 URL 的新图像的新请求
- 在1行中创建新图像()