将一个元素显示在另一个元素的顶部,并在其上禁用鼠标悬停事件
Display one element on top of another and disable mouse hover event on it
这是小提琴:http://jsfiddle.net/5Lfqr/
小提琴包含一对图像(拇指和大)的html:
<div class="wrapper">
<a href="http://cssglobe.com/lab/tooltip/02/1.jpg" class="preview" title="">
<img src="http://cssglobe.com/lab/tooltip/02/1s.jpg" alt="gallery thumbnail">
</a>
</div>
这个想法是当用户将鼠标悬停在缩略图上时显示大图像。
这个解决方案非常简单,除了一件事之外效果很好:最初,大图像的偏移量只是在鼠标位置的左右两侧。我希望大图像在拇指上,所以它应该覆盖它。当我实现它时,像这样更改偏移:
xOffset = -100;
yOffset = -100;
大图像闪烁。这可能是因为鼠标光标在拇指上,同时在大图像上,所以它无法决定该做什么。大图像应该变成透明的,以便悬停。
有解决办法吗?
你可以这样做:
将预览放在缩略图后面,只需在鼠标输入时将缩略图变为透明即可:
http://jsfiddle.net/nthDB/
$(this).css("opacity", "0");
然后,当鼠标离开时,你需要将其变成不透明的:
$("a.preview").mouseleave(function(e){
$(this).css("opacity", "1")
});
然而,这对我来说有点尴尬……而且也不是完成你正在做的事情的最佳方式。我认为您可以诚实地使用pseduo元素使用CSS来完成大部分(如果不是全部的话)。我会摆弄一下小提琴看看。
编辑
只使用CSS(最基本的)。想要使用伪元素。。但无法使其与图像很好地配合使用(可以使用背景图像,但不确定是否更好):
仅CSS悬停预览jsFiddle
HTML
<div class="wrapper">
<img src="http://cssglobe.com/lab/tooltip/02/1s.jpg" class="thumb">
<img src="http://cssglobe.com/lab/tooltip/02/1.jpg" class="full">
</div>
CSS:
.wrapper {
position: relative;
width: 100px;
top: 150px;
height:75px;
margin: auto;
}
.thumb {
position:relative;
z-index:2;
}
.full {
position:absolute;
left:50%;
margin-left:-200px;
top:50%;
margin-top:-150px;
z-index:1;
display:none;
}
.wrapper:hover .full {
display:block;
}
.wrapper:hover .thumb {
display:none;
}
如果你想在拇指区域之外关闭预览(不确定为什么要关闭),你也可以通过这种方式触发它:
.thumb:hover ~ .full {
display:block;
}
.thumb:hover {
opacity:0;
}
试试这个脚本,如果你喜欢的话,它看起来不错,
this.imagePreview = function(){
$("a.preview").hover(function(e) {
$("img").attr({src:"http://cssglobe.com/lab/tooltip/02/1.jpg"});
}, function(e) {
$("img").attr({src:"http://cssglobe.com/lab/tooltip/02/1s.jpg"});
});
};
$(document).ready(function(){
imagePreview();
});
相关文章:
- 元素事件处理程序到EXT.js面板中
- 浏览器中的javascript和td元素事件属性
- 主干清理元素事件
- 影响类的所有成员而不是一个元素事件的插件正在发生
- AngularJS - ngRepeat.在 ng 重复重新渲染后,需要将焦点集中在相同的元素事件上
- 在jQuery中,如何触发mootools中添加的元素事件
- 允许 Raphael/SVG 元素事件通过顶部分层的 HTML 触发
- CanJS未来元素事件绑定
- 重新选择所选选项时,Javascript/jQuery选择元素事件
- 类变量在元素事件中不可见
- 修改元素'事件函数的参数
- 如何过滤掉事件处理程序中的子元素事件
- 要求Javascript关注多个元素事件的模式
- 允许先触发其他绑定元素事件
- Firefox扩展不能覆盖元素事件
- 如何获取"mouseup"之后的元素事件完成
- 用于文档防止元素事件的Onclick事件
- 如何获取触发“onclick”的元素事件
- 向由子元素事件触发的表单元格添加类/从中删除类
- JavaScript在元素加载后立即绑定元素事件