javascript - 鼠标悬停/单击时弹出 Div anchor

标签 javascript jquery html css web-applications

我是网络编程新手。

我想实现类似 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 另一方面,你尝试过悬浮卡吗?可能与您想做的类似

http://designwithpc.com/Plugins/Hovercard

关于javascript - 鼠标悬停/单击时弹出 Div anchor ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13451032/

相关文章:

javascript - 在 javascript 中复制函数

javascript - 在 panendhammer.js 上获取平移方向并限制方向

php - PHP 中的 SQL 搜索查询不起作用

javascript - 更新不同状态下的 ui-router 解析数据

javascript - 强制 jQuery UI Datepicker 显示在输入字段下方

javascript - jquery回调后执行代码

javascript - "This site appears to use a scroll-linked positioning effect. This may not work well with asynchronous panning"

html - 定义父级大小时,img 不考虑高度属性

javascript - 使用for循环动态打印多维数组元素

javascript - 使用原型(prototype)的自定义数组函数。新的 MyArray(1,2,3,4) 不起作用