用CSS3(也许是jQuery)可以实现这种效果吗?我尝试了通常的'slideDown'效果,但它甚至不接近这个。有什么想法吗?
答案 0 :(得分:9)
你可以用CSS过渡来做..
这个概念是有一个元素height:0
和overflow:hidden
(让它命名为纸架)),里面是一个绝对定位的元素(< em> bottom:0
)( paper )
这样,当您将纸架元素的高度从0转换为纸张的高度时,它似乎会滑出纸张。
演示 http://jsfiddle.net/9FfKZ/1/
<强> 更新 强>
使打印步骤更加明显的一个改进是使用steps
( documentation )计时功能而不是线性我的初始演示
答案 1 :(得分:7)
我的想法是这有三个不同的元素。暂时忘记这篇论文吧。只考虑打印机插槽。我会把它分成两个单独的图像。顶部有下半部分。这两张图片应该符合您要纸张送入的位置。绝对定位两个图像,使它们看起来像正常一样。
这里的技巧将在z-index
你希望上半部分的z-index高于下半部分,这实际上使它在z轴上更接近“用户”。顶部有z-index:9999;
,下半部分有z-index:9995;
现在,您需要创建一个代表纸张的div。给该div一个z-index:在顶部和底部图形之间的某处,所以给它一个z-index:9997;
。将它完全放在顶部图形的后面,然后慢慢向下动画直到它的终点。
工作演示:http://jsfiddle.net/XzVA9/2/
<强> HTML 强>
<img id="top" src="http://s1.postimage.org/txsnx2v9r/imgtop.png" />
<div id="paper">Receipt</div>
<img id="bottom" src="http://s1.postimage.org/3o7lea9cf/imgbot.png" />
<强> CSS 强>
#top{
position:absolute;
top:0;
left:0;
z-index:9999;
}
#bottom{
position:absolute;
top:284px;
left:0;
z-index:9995;
}
#paper{
position:absolute;
top:204px;
left:250px;
z-index:9997;
width:300px;
height:50px;
line-height:50px;
padding:15px 0;
background:#fff;
border:1px solid #999;
text-align:center;
font-weight:bold;
font-size:22pt;
-webkit-box-shadow: 0 8px 6px -6px black;
-moz-box-shadow: 0 8px 6px -6px black;
box-shadow: 0 8px 6px -6px black;
}
<强> JS 强>
$('#paper').animate({'top':'284px'}, 3000);
答案 2 :(得分:0)
在javascript中使用setInterval每隔x毫秒设置位置,以创建抖动效果。确保你有适当的CSS来使这项工作,即。在正确的元素上定位绝对/相对
var offset_y = 0,
slide_interval = setInterval(function() {
$('#element').css({
left : 0,
top : offset_y
});
offset_y += 2;
if(offset_y > 1000) // Desired Value Here
clearInterval(slide_interval);
});