jquery - 如何将同位素元素放在可滚动的 div 中并保留 jquery 悬停状态效果?

标签 jquery css hover overflow jquery-isotope

我正在尝试实现三个功能:

  1. 包含图像缩略图的可滚动 div
  2. 可以通过 jquery 同位素排序
  3. 当悬停在其他元素之上并超出直接容器时显示一个 div。

目前我可以得到一个或另一个发生,即滚动条显示但悬停状态 div 在其他元素后面,或者我可以在其他元素前面获得悬停状态 div 但滚动条不显示展示。

jsfiddle

http://jsfiddle.net/rwone/PUKjy/

脚本

$(".magic").hover(

function() {
//console.log($(this).find('.hidden_db_data_div').position().left);
console.log($(this).position().top);
$(this).css("z-index", "999").find('.hidden_db_data_div').css({
'left': $(this).position().left + 40 + "px" + "!important",
'top': '-50px'
}).fadeIn(500);

}, function() {
$(this).css('z-index', '').find('.hidden_db_data_div').fadeOut(100);
});

谢谢。

最佳答案

已解决

http://jsfiddle.net/rwone/89P9m/

代码

$(".magic").each(function() {

var hiddenDiv = $(this).find(".hidden_db_data_div"),
parentElement = $(this),
api = {};

api.isOpen = false;

api.timeout = null;

api.position = function(){
hiddenDiv.css({
"top": parentElement.offset().top - $("#wrapper").offset().top - 50,
"left": parentElement.offset().left - $("#wrapper").offset().left +20 
});
}

api.resetTimeout = function(){

clearTimeout( api.timeout );
}

api.startShowing = function(){

api.resetTimeout();

api.timeout = setTimeout(function(){
api.show();        
},300);
}

api.startHiding = function(){

api.resetTimeout();

api.timeout = setTimeout(function(){
api.hide();        
},150);
}
api.show= function(){

if(!api.isOpen){

api.position();

hiddenDiv .fadeIn(500);

api.isOpen = true;

$("#isotope_container").bind("scroll.hiddendiv",api.position);

}
}

api.hide = function(){

if( api.isOpen ) {
api.isOpen = false;
$("#isotope_container").unbind("scroll.hiddendiv");     
hiddenDiv.fadeOut(100);
}

}

hiddenDiv.bind("mouseenter", function() {

api.resetTimeout();

}).bind("mouseleave", function() {

api.startHiding();

}).css("z-index", 100).appendTo("#wrapper"); 

$(this).data("hiddenApi",api );

}).bind("mouseenter", function() {

var api = $(this).data("hiddenApi");

api.startShowing();

}).bind("mouseleave", function() { // start closing timeout once mouse leaves isotope element

var api = $(this).data("hiddenApi");

api.startHiding();

});

关于jquery - 如何将同位素元素放在可滚动的 div 中并保留 jquery 悬停状态效果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13400817/

相关文章:

jquery - ajax 调用 HTML 内容更改后,select2 jquery 插件无法正常工作

css - 带有图像的样式列表

html - 我无法在悬停时增加图像的Z索引

javascript - 动画.css : Animate on hover script

CSS :after-icon on :hover makes box bigger

javascript - 使用 jQuery UI 日期选择器选择下一天和前一天

javascript - 使用 jQuery 引用 html 输入元素

jquery - 表格单元格数据溢出删除css中的边框

python - Django模板中根据用户选择不同的样式表

css - 如何对 CSS 颜色属性的更改进行语义版本控制