jquery - 如何使用 jQuery 实现这种 Flash 效果?

标签 jquery css

更新:效果很好。 剩下的最后一件事就是试图滑过我似乎无法做到的 div figure out .


更新:我已经设法用 transitions plugin 做到了这一点.一个问题仍然存在:当文本在框中滑动时,我可以看到它是如何从外部进入框的。 Click here明白我的意思。


我想实现 this flash effect使用 jQuery(顶部 -> flash,底部 -> jquery),因此它可以在 iPhone 和智能手机上查看。

目前,我无法让文本从这些框下方滑入。

HTML代码:

<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 代码:

$(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 代码:

#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;
}

有什么建议吗?

最佳答案

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

解决方案是为左边的文本 block 设置一个 z-index 值,即 .left.left-text 所以它覆盖了传入的动画。

编辑:对于您问题中列出的第二次更新,我看到您的在线 HTML 和在线 jQuery 与您在此处列出的方法完全不同。我知道你的方向是什么,但你的标记中到处都有很多缺失,但你走在正确的道路上。

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

状态:最后,一个 jsFiddle 使用经过大量修改的 s3Slider jQuery 插件重新创建 Flash 效果,该插件还使用 jsLint 进行验证。我在那个 Demo 里有很多评论。

链接: jsFiddle DEMO (2012 年 12 月 26 日更新)

为了灵感,这里有一些 webkit examples CSS3 广告与 Flash 广告的外观相同。猜猜哪个!

关于jquery - 如何使用 jQuery 实现这种 Flash 效果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10875695/

相关文章:

asp.net - 将 div 对齐到与 asp.net 中的表格标签重叠的页面中心

javascript - 撤销重做逻辑错误

javascript - 在 if 中重新定义变量并像 php 一样在外部使用它

css - 为什么我的滚动条没有完全向右对齐? HTML/CSS

javascript - 响应式图像 slider 以填充 div 高度

CSS Flex Box Gallery 问题

html - 在@media 屏幕上将参数传递给服务器

javascript - 简单的 JS if 语句不起作用

javascript - 使用 jQuery UI Datepicker 时如何用小时、分钟和秒格式化日期?

javascript - 停止 Bootstrap 组按钮以保持专注