我是网络编程新手。
我想实现类似 Facebook 中的功能,当我们将鼠标悬停在链接上时,锚定在链接上的箭头 float div 将显示在其顶部。
你们都是如何处理这种组件的?我找到的最接近的库是 http://gristmill.github.com/jquery-popbox/有时,在某些浏览器中这不起作用。进一步搜索“Popbox”没有显示任何有用的结果。谁能推荐任何类似的库,就像我发布的链接一样?它可以使用 Jquery、Javascript、CSS、html 等。
除了使用库之外,任何人都可以告诉我如何以最简单的方式在不使用库的情况下做到这一点。我只是想知道背后的大致想法。大多数库都带有复杂的代码,对于初学者来说很难学习。
非常感谢。
最佳答案
检查这个工作演示:http://jsfiddle.net/fedmich/Aapw6/
您需要在顶部创建一个箭头图像,并在弹出框中居中,然后通常移动弹出框以跟随目标 anchor 。
$('.hover').hover(function(){
var popup_div = $('.popup_div');
var obj = $(this);
var offset = obj.offset();
var new_top = offset.top + 30;
var new_left = offset.left;
new_left = new_left - ( popup_div.width() / 2);
new_left = new_left + ( obj.width() / 2);
popup_div.css('left', new_left + 'px');
popup_div.css('top', new_top + 'px');
popup_div.show();
}
, function (){
//hovered away so hide popup
$('.popup_div').hide();
}
);
CSS 代码应该是绝对位置
.popup_div{
position:absolute;
left:100px;
top:100px;
border:1px solid red;
background-color:blue;
width:150px;
height:150px;
background:url("http://i.imgur.com/zFWft.png") no-repeat scroll center 0 transparent;
text-align:left;
}
您可以通过获取目标 div 的位置,然后通过将宽度除以一半并将其添加到左侧来获取中心。
new_left = hovered_thing.left + (hovered_thing.width / 2) - (popup_div.width / 2)
让我很快为你做一些 fiddle 另一方面,你尝试过悬浮卡吗?可能与您想做的类似
关于javascript - 鼠标悬停/单击时弹出 Div anchor ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13451032/