【问题标题】:How to get this fade and slide effect?如何获得这种淡入淡出和滑动效果?
【发布时间】:2011-12-12 02:22:07
【问题描述】:

我想知道如何制作像这样的淡入淡出和滑动效果:http://www.apple.com/stevejobs/

这是一个非常酷的动画,我想知道 jQuery 是否可以做到这一点?

注意:我已经知道如何淡入内容。我一直在使用 jQuery。我想要新的 cmets/memories/thoughts 下拉的效果。它同时向下滑动和消失。

【问题讨论】:

    标签: javascript jquery fade slide


    【解决方案1】:

    取决于你想要它的哪一部分! jQuery 可以做到这一切,有些比其他的更难。看看fadeInfadeOut 方法。 cmets下降一个级别可以使用animate方法完成。

    根据您对另一个答案的评论进行编辑:

    您可以抓取所有要向下移动的元素,然后对其使用 animate 方法。执行以下操作:

    1. 放置所有项目以隐藏第一个项目
    2. 淡入除第一个元素之外的所有元素 $(".selector:not(:first)")
    3. 使用 animate() 方法淡入时向下滑动所有元素,所有可见元素的淡入将被忽略
    4. 在第一个项目的位置加载下一个项目,重复。

    【讨论】:

    • 感谢您的回答!我会按照@Nacereddine 所说的去做,但这是一个不错的小教程。谢谢:)
    • 这一切都不需要,看我的回答。
    • 公平地说,jondavidjohn,我提到的内容和您编码的内容非常相似,两者都可以正常工作。你的先加载元素然后滑动,我的在动画之前准备好一个,而你的幻灯片然后淡出我的幻灯片并同时淡出。
    【解决方案2】:

    你可以使用jQuery的fadeIn效果

    $(selector).fadeIn('slow', function() {})
    

    http://api.jquery.com/fadeIn/

    jsFiddle:http://jsfiddle.net/ckTRh/

    【讨论】:

    • 那只会淡入。我知道。我知道 jQuery。请在页面加载后等待几秒钟,您将看到滑动/淡入淡出效果。
    【解决方案3】:

    褪色只是他们在元素上应用的一些 CSS:

    来自 messages.css(第 81 行)

    #messages #messageContainer #mask {
        background: -moz-linear-gradient(center top , rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0) 15%, #FFFFFF 92%, #FFFFFF 100%) repeat scroll 0 0 transparent;
        bottom: 0;
        height: 200px;
        pointer-events: none;
        position: absolute;
        width: 100%;
        z-index: 1;
    }
    

    而对于滚动效果,可以用jQuery轻松完成。

    编辑:元素并没有消失,它们在一个从透明到白色的渐变元素后面

    【讨论】:

    • 哦,我明白了。我刚刚在 Chrome 开发工具中,我看到了如何添加新元素和东西。谢谢您的回答。 :)
    【解决方案4】:

    Working Example

    基本上,您必须使用0.001opacity 将元素设置为“几乎不可见”,以使幻灯片正常工作,然后使用fadeTo 将其带回完全可见的1

    $(function() {
    
        $('#button').click(function() {
            // new element to be added to top of list hidden
            var $new_li = $('<li style="display:none;">New Item</li>');
    
            // make element "almost" invisible
            $new_li.css('opacity', '0.001');
    
            // add it to list
            $('.list').prepend($new_li);
    
            // slide the "almost" invisible element down 
            // (shifting all others down)
            $new_li.slideDown('slow', function() {
    
                //once done sliding, trigger fade
                $new_li.fadeTo('slow',1);
            });
        });
    });
    

    【讨论】:

    • 非常酷!尽管这不是 Apple 的做法(他们只是用渐变覆盖了一个 div 以产生渐变效果,并使用一些 JS 将其向下滑动,这是我从@Nacereddine 的答案中学到的。)这是一个很棒的 jQuery代码虽然,谢谢。 :)
    猜你喜欢
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 2019-11-17
    • 2013-01-29
    • 1970-01-01
    • 1970-01-01
    • 2015-11-30
    • 1970-01-01
    相关资源
    最近更新 更多