1

在此处输入图像描述

是否有可能使用 CSS3(也许还有 jQuery)来实现这种效果?我尝试了通常的'slideDown'效果,但它甚至没有接近这个。有任何想法吗?

4

3 回答 3

10

你可以用 CSS 过渡来做到这一点..

这个概念是有一个带有height:0and的元素overflow:hidden让我们将其命名为 paper-holder),并在其内部有一个绝对定位的元素在底部(withbottom:0)(paper

这样,当您将纸架元素的高度从 0 过渡到纸的高度时,似乎正在滑出。

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


更新

使打印步骤更明显的改进是使用steps文档)计时功能而不是我最初演示的线性

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

于 2012-12-23T20:25:04.577 回答
7

我的想法之一是拥有 3 种不同的元素。暂时忘记这张纸。只考虑打印机插槽。我会把它做成两个单独的图像。上半部有下半部。这两个图像应该在您希望纸张送入的位置相遇。绝对定位这两个图像,使它们看起来正常连接。

这里的诀窍在于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);​

于 2012-12-23T19:41:50.903 回答
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);
    });
于 2012-12-23T19:41:09.377 回答