5

更新:効果は正常に動作します。残っている最後のことは、私が理解できないように見えるdivをスライドさせようとすることです。


更新:トランジション プラグインでなんとかできました。問題が 1 つあります。テキストがボックス内をスライドすると、テキストがボックスの外側からどのように入るかがわかります。ここをクリックして、私が何を意味するかを確認してください。


jQuery (トップ -> フラッシュ、ボトム -> 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;
}

助言がありますか?

4

2 に答える 2

7

オンライン マークアップのjsFiddleを作成しました。

解決策はz-index、テキストの左側のブロックに値を設定することです。つまり.left.left-text入力アニメーションをカバーするようにします。

編集:質問に記載されている2番目の更新については、オンラインHTMLとオンラインjQueryが、ここにリストしたものとはまったく異なる方法であることがわかります。これでどこに向かっているのかわかりましたが、どこでもマークアップに欠けているものがたくさんありますが、あなたは正しい道を進んでいます。

アニメーション付きの独自のバナー テキストと組み合わせることができる多くの無料のスライドショー プラグインのいずれかを使用することをお勧めします。ここでs3Slider DEMOをご覧ください。これらのバナー テキスト ボックスは、独自の洗練されたバージョンに置き換えることができます。s3Sliderのホームページはこちらです。

ステータス:最後に、大幅に変更された s3Slider jQuery プラグインを使用して Flash エフェクトを再作成する jsFiddle で、jsLint を使用して検証も行います。そのデモにはたくさんのコメントがあります。

リンク:   jsFiddle DEMO (2012 年 12 月 26 日更新)

参考までに、同じように見える CSS3 広告と Flash 広告のWebkitのをいくつか示します。どれだと思いますか!

于 2012-06-04T04:17:53.923 に答える
3

#bannerニーズのようですねoverflow: hidden;

于 2012-06-04T03:02:34.080 に答える