当您在堆栈溢出时达到1000声誉时,您将获得一张可消耗的用户卡
当鼠标悬停在卡片上时。
如何重新创建此效果?怎么称呼?我的猜测是它的Jquery方法,但如果是这样,有人能指出我正确的方向,因为我找了它但却无法得到我需要的东西。
答案 0 :(得分:3)
我不知道这是否是他们使用的,但是CSS3 transition animations将是一种简单的,没有编程方式。
答案 1 :(得分:3)
答案 2 :(得分:2)
简而言之:
当触发弹出窗口时,在DOM内部的某处动态添加具有适当内容的<div>
(很可能是Javascript定位弹出窗口以及创建它)。此元素从小开始,然后设置为最终尺寸。同时,CSS规则指定弹出窗口的视觉外观。当鼠标离开弹出区域时,<div>
将从DOM中删除,使弹出窗口消失。
答案 3 :(得分:1)
答案 4 :(得分:1)
我认为这很简单$('#container).show('slow');
答案 5 :(得分:1)
由于您提出了静态图像,因此很难确定究竟发生了什么。这是我的猜测:
它使用Hover触发事件: http://api.jquery.com/hover/
然后显示以显示隐藏的div: http://api.jquery.com/show/
类似的东西:
$('a.show-profile').hover(function(){
$('#profile').show();
});
#profile需要事先通过css“display:none”或$('#profile')隐藏.hide(); http://api.jquery.com/hide/
答案 6 :(得分:0)
我的猜测是(来自消息来源):
StackExchange.helpers.MagicPopup({selector:".user-hover .user-gravatar48, .user-hover .user-gravatar32"
$(b).closest(".user-hover").find(".user-details a").attr("href"));return!b?null:"/users/user-info/"+b[1]},cache:!0,id:"user-menu",showing:f,removed:c}))}}}();
b.fadeOutAndRemove()):setTimeout(p,500)};b.animate({width:j,height:a,top:f.top+k.top},200,p);
但正如我所说,我是新手,所以它可能甚至不相关,但它是Animated onmouseover on the gravatar
。
答案 7 :(得分:0)
我创建了两个解决方案:
display:none
消除不需要的内容,段落或元素
display:block;
所有内容。悬停时:
.show(600)
显示它。.hide()
jQuery的:
$('body').append('<div id="userCard"><div id="userCardContent"></div>');
var $hoveredImg;
$('.userCardMini').on('mouseenter','img',function(e){
$hoveredImg = $(this);
var thisSrc = $hoveredImg.attr('src').split('s=')[0];
var posX = $hoveredImg.offset().left-10;
var posY = $hoveredImg.offset().top-10;
$('#userCardContent').html( $hoveredImg.parent().html() );
$('#userCardContent').find('img').attr('src', thisSrc+'s=64&d=identicon&r=PG');
var t = setTimeout(function() {
$('#userCard').css({left:posX, top:posY}).show(600);
}, 200);
$hoveredImg.data('timeout', t);
}).on('mouseleave',function(){
clearTimeout($hoveredImg.data('timeout'));
});
$('#userCard').mouseleave(function(){
$(this).stop(1,1).hide();
});
HTML:
<div class="userCardMini" data-user="383904"></div>
<div class="userCardMini" data-user="1063093"></div>
CSS:
.badge{
width:6px;
height:6px;
border-radius:10px;
font-size:11px;
display:inline-block;
margin:2px;
}
.gold{background:gold;}
.silver{background:silver;}
.bronze{background:#cc9966;}
.userCardMini{
width:200px;
height:32px;
/*background:#eee;*/
margin:4px;
clear:both;
}
a{color:#27f;}
img.userImg{
cursor:pointer;
float:left;
margin-right:10px;
box-shadow:1px 1px 3px -1px #999;
}
.userDetails, .userLocation{display:none;}
/* user card - BIG ONE */
#userCard{
position:absolute;
top:0;
left:0;
width:280px;
box-shadow:1px 1px 3px -1px #999;
border-radius:3px;
background:#666;
color:#eee;
display:none;
}
#userCardContent{
width:260px;
margin:10px;
}
#userCardContent a{color:#fff;}
#userCard .userDetails,
#userCard .userLocation{
display:block;
margin-bottom:4px;
}
另一个解决方案(我最喜欢)
将使用DIV元素的CSS和z-index,就像 - 悬停父级我们动画内容(子)元素从下面
这一点jQuery:
var $desc;
$('.userCard').hover(function(){
$desc = $(this).find('.description');
$(this).css({zIndex:'3'});
var t = setTimeout(function() {
$desc.show('slow');
}, 150);
$(this).data('timeout', t);
},function(){
$(this).css({zIndex:0});
clearTimeout($(this).data('timeout'));
$desc.hide();
});
HTML:
<div class="userCard">
<div class="initial">
<img src="http://placehold.it/26x26/f7b" /><h2>User name 1</h2>
</div>
<div class="description">
<div class="description_content">
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
In et neque quam, vel dapibus neque. Praesent rutrum ultricies sodales.
</div>
</div>
</div>
CSS:
.userCard{
position:relative;
padding:10px;
width:200px;
margin:10px;
}
.initial{
position:relative;
cursor:pointer;
z-index:2;
}
.userCard img{
float:left;
margin-right:10px;
box-shadow: 1px 1px 3px -1px #999;
}
.description{
background:#eee;
position:absolute;
top:0px;
left:0px;
padding:10px;
clear:both;
display:none;
}
.description_content{
padding-top:37px;
position:relative;
width:200px;
}