首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用jQuery实现这种闪存效果?

问如何使用jQuery实现这种闪存效果?
EN

Stack Overflow用户
提问于 2012-06-04 02:26:23
回答 2查看 1.3K关注 0票数 5

更新:效果运行良好。剩下的最后一件事就是试图滑过那些我似乎无法弄清楚. 的div

更新:--我已经成功地用过渡插件完成了它。一个问题仍然存在:当文本在框中滑动时,我可以看到它是如何从外部进入框的。单击此处来看看我的意思。

我想用这种闪光效应 (顶部->闪存,底部-> jquery)实现jQuery,这样它就可以在iphones和智能手机上看到。

目前,我无法让文字从这些盒子下面滑进来。

HTML代码:

代码语言:javascript
复制
<div id="banner">
    <div>
        <img src="img/banner-1.jpg" class="banner-bg" />
        <div class="left"></div>
        <div class="left-text"><span>POLISHED FLOORS1</span></div>
        <div class="right"></div>   
        <div class="right-text"><span>Custom-made, elegant and long lasting.</span></div>
    </div>
    <div>
        <img src="img/banner-2.jpg" class="banner-bg" />
        <div class="left"></div>
        <div class="left-text"><span>POLISHED FLOORS2</span></div>
        <div class="right"></div>   
        <div class="right-text"><span>Custom-made, elegant and long lasting.</span></div>
    </div>
    <div>
        <img src="img/banner-3.jpg" class="banner-bg" />
        <div class="left"></div>
        <div class="left-text"><span>POLISHED FLOORS3</span></div>
        <div class="right"></div>   
        <div class="right-text"><span>Custom-made, elegant and long lasting.</span></div>
    </div>
</div>

jQuery代码:

代码语言:javascript
复制
$(document).ready(function(){   
    //$("#banner .left").transition({opacity: "1", width: "238px"}, 1200);
    //$("#banner .right").transition({opacity: "0.7", width: "662px"}, 1200);
    //$("#banner .left-text").delay(1200).transition({ opacity: '1', x: '-220px' });
    //$("#banner .right-text").delay(1200).transition({ opacity: '1', x: '+642px' });

    $(function(){
        $ds = $('#banner div .banner-bg');
        $ds.hide().eq(0).show();
        setInterval(function(){
                $ds.filter(':visible').fadeOut(function(){
                        var $banner_bg = $(this).next('div .banner-bg');
                        var $left = $(this).next('div .left');
                        var $right = $(this).next('div .right');
                        var $left_text = $(this).next('div .left-text');
                        var $right_text = $(this).next('div .right-text');
                        if ( $banner_bg.length == 0 ) {
                            $ds.eq(0).fadeIn();
                        } else {
                            $left.transition({opacity: "1", width: "238px"}, 1200);
                            $right.transition({opacity: "0.7", width: "662px"}, 1200);
                            $left_text.delay(1200).transition({ opacity: '1', x: '-220px' });
                            $right_text.delay(1200).transition({ opacity: '1', x: '+642px' });
                            $banner_bg.fadeIn();
                        }
                });
        }, 5000);
    });
});  

CSS代码:

代码语言:javascript
复制
#banner {
    height:299px;
    width:900px;
    position:relative;
    overflow:hidden;
}
#banner .banner-bg {
    z-index:0;
    position:absolute;
    top:0;
    left:0;
}
#banner .left {
    float:left;
    width:0px;
    height:100px;
    background:url(img/banner-left-bg.png);
    opacity:0.3;
    position:relative;
    z-index:7;
}
#banner .right {
    float:right;
    width:0px;
    height:100px;
    background-color:#34515c;
    opacity:0.3;
    position:relative;
    z-index:5;
}
#banner .left-text, #banner .right-text {
    font-family:Verdana, Arial;
    font-size:22px;
    font-style:normal;
    color:#fff;
    top:35px;
}
#banner .left-text {
    position:absolute;
    left:233px;
    opacity:0;
    z-index:8;
}
#banner .right-text {
    position:absolute;
    right:662px;
    width:630px;;
    font-size:24px;
    opacity:0;
    z-index:6;
}

有什么建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-04 04:17:53

我为您的在线标记创建了一个jsFiddle。

解决方案是为左边的文本块(即.left和.left-text )设置一个.left值,以便覆盖传入的动画。

编辑:为您的第二次更新列出在您的问题,我看到您的在线jQuery和在线jQuery是一个完全不同的方法,您已经列出了这里。我知道你在这方面的方向,但你的标记中到处都缺少很多东西,但你走的是正确的道路。

我建议使用许多免费幻灯片插件之一,可以结合您独特的横幅文本,有动画。看看这里的s3Slider演示。那些横幅文本框可以替换为您自己的精巧版本。s3Slider主页是这里。

STATUS:最终是一个jsFiddle,它使用一个经过大量修改的s3Slider jQuery插件重新创建s3Slider效果,该插件也使用jsLint进行验证。我在演示中有很多评论。

链接: jsFiddle演示 (更新日期: 12/26/2012)

对于inspiration,,这里有一些webkit示例 of CSS3广告和Flash的广告,看起来是一样的。猜猜哪个!

票数 7
EN

Stack Overflow用户

发布于 2012-06-04 03:02:34

听起来#banner需要overflow: hidden;。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10875695

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档