我希望实现一种效果,在将鼠标悬停在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和样式我觉得如果没有,我会发布在这里。
答案 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);
});
参考文献:
答案 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);
}
);