jQuery关闭按钮效果/风格

时间:2012-04-10 21:59:07

标签: jquery css button

我希望实现一种效果,在将鼠标悬停在div上一段时间后出现关闭按钮。我怎么能这样做?顺便说一下,我对jQuery很新。

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

enter image description here

角落里的“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和样式我觉得如果没有,我会发布在这里。

2 个答案:

答案 0 :(得分: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 Fiddle demo

参考文献:

答案 1 :(得分: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);
    }
);