使用CSS打印效果

时间:2012-12-23 19:34:48

标签: jquery css css3

enter image description here

用CSS3(也许是jQuery)可以实现这种效果吗?我尝试了通常的'slideDown'效果,但它甚至不接近这个。有什么想法吗?

3 个答案:

答案 0 :(得分:9)

你可以用CSS过渡来做..

这个概念是有一个元素height:0overflow:hidden让它命名为纸架)),里面是一个绝对定位的元素(< em> bottom:0 )( paper

这样,当您将纸架元素的高度从0转换为纸张的高度时,它似乎会滑出纸张。

演示 http://jsfiddle.net/9FfKZ/1/


<强> 更新

使打印步骤更加明显的一个改进是使用steps documentation )计时功能而不是线性我的初始演示

演示 http://jsfiddle.net/9FfKZ/4/

答案 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);
    });