1

我想实现在将鼠标悬停在 div 上一段时间后出现关闭按钮的效果。我怎么能那样做?顺便说一句,我对 jQuery 很陌生。

这是一个类似于我想要的东西的例子

在此处输入图像描述

我想出现在我的一个设计中的角落里的那个“x”。

谢谢大家

到目前为止我做了什么:

jQuery:

$("#slider #content").on("hover", '.element', function(evt) {
    var top, left;
    top = $(this).offset().top;
    left = $(this).offset().left;
    $(".close-button").css({"top":top, "left":left});
    $(".close-button").show();
 });

如果不是,我猜 div 和 div 的样式无关紧要,我会在这里发布。

4

2 回答 2

8

给定以下 HTML,这是执行此操作的一种方法:

<a href="#" class="modalShow">show modal</a> <a href="#" class="modalShow">show modal</a>
<div class="modal">
    <span class="close">X</span>
    <p>Some text in the first modal div</p>
</div>
<div class="modal">
    <span class="close">X</span>
    <p>Some text in the second modal div</p>
</div>​

和CSS:

.modal {
    display: none;
    width: 50%;
    padding: 0.5em;
    min-height: 6em;
    border: 10px solid #000;
    border: 10px solid rgba(0,0,0,0.5);
    position: absolute;
    top: 20%;
    left: 50%;
    margin-left: -25%;
}
span.close {
    display: none;
    position: absolute;
    top: -2.5em;
    left: -2.5em;
    width: 2em;
    height: 2em;
    text-align: center;
    line-height: 2em;
    border: 10px solid #000;
    border: 10px solid rgba(0,0,0,0.5);
    border-radius: 2em;
    background-color: #fff;
    cursor: pointer;
}​

和 jQuery:

$('a.modalShow').click(
    function() {
        // finds which link was clicked, and therefore which modal to show
        var i = $(this).index('.modalShow'); 
        // fades all the modal elements out
        $('.modal').fadeOut(1000);
        // fades the relevant modal in
        $('.modal').eq(i).fadeIn(1000);
    });

$('.modal').hover(
    function() {
        // while hovering over the modal, it fades the close element in after a delay
        $(this).find('.close').delay(1000).fadeIn(500);
    },
    function() {
        // after leaving/mouseout of the the modal, has a delay and then fades the close out
        $(this).find('.close').delay(1000).fadeOut(500);
    });

$('span.close').click(
    function(){
        // clicking the close span causes the closest ancestor modal to fadeout
        $(this).closest('.modal').fadeOut(1000);
    });​

JS 小提琴演示

参考:

于 2012-04-10T22:26:46.473 回答
0

很大程度上取决于您的 HTML 和 CSS。现在,让我们假设盒子是一个 div 元素,关闭按钮是盒子内的一个子 div。你可能会做这样的事情......

$(".boxes").hover(
    //do this on mouse over...
    function () {
        var me = $(this);
        me.find('.closeButton').delay(1000).fadeIn(500);
    },
    //do this on mouse out...
    function () {
        var me.find('.closeButton').fadeOut(100);
    }
);
于 2012-04-10T22:14:44.863 回答