0

一部のスライドにビデオ コンテンツが含まれるFlexslider ( http://woothemes.com/flexslider/ ) をセットアップしました。タッチ デバイスでは、ビデオ プレーヤーが埋め込まれているため、これらのスライドはスワイプできないため、操作が難しい場合があります。これらの特定のスライドの下に、ユーザーがスワイプすると前/次を登録する特定のタッチ領域を配置するというアイデアを考えましたが、Flexslider のドキュメントでこれに関するカスタム オプションを見たことがありません。これを解決する方法についてのアイデアはありますか?

4

1 に答える 1

2

作業例: http://jsfiddle.net/Gajotres/xsGqn/

基本的に、Flexslider サーフェス全体にオーバーレイを作成しています。スライダーを覆い、その上に浮かびます。次のボタンと前のボタンのみがその上に浮かびます。次に必要なのは、スワイプ機能を提供する優れたHammer.jsフレームワークです。この例は、Flexslider 2 に基づいて作成されています。ビデオ コントロールにアクセスできるように、オーバーレイは高さの 70% のみをカバーします。

HTML :

<!DOCTYPE html>
<html>
    <head>
        <title>jQM Complex Demo</title>
        <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
        <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; minimum-scale=1.0; user-scalable=no; target-densityDpi=device-dpi"/>
        <link rel="stylesheet" href="http://flexslider.woothemes.com/css/flexslider.css" type="text/css" media="screen" />        
        <script src="http://flexslider.woothemes.com/js/jquery.flexslider.js"></script>
        <script src="http://flexslider.woothemes.com/js/jquery.easing.js"></script>
        <script src="http://flexslider.woothemes.com/js/jquery.mousewheel.js"></script>        
    </head>
    <body>     
        <div class="flexslider">
            <ul class="slides">
                <li>
                    <iframe id="player_1" src="http://player.vimeo.com/video/39683393?api=1&player_id=player_1" width="500" height="281" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>
                </li>
                <li>
                    <img src="http://flexslider.woothemes.com/images/kitchen_adventurer_lemon.jpg" />
                </li>
                <li>
                    <img src="http://flexslider.woothemes.com/images/kitchen_adventurer_donut.jpg" />
                </li>
                <li>
                    <img src="http://flexslider.woothemes.com/images/kitchen_adventurer_caramel.jpg" />
                </li>
            </ul>
        </div>
    </body>
</html>   

Javascript :

$(window).load(function() {

    $(document).hammer().on("swipeleft", ".flex-overlay", function(event) {
        $('.flexslider').flexslider("next") //Go to next slide
    });

    $(document).hammer().on("swiperight", ".flex-overlay", function(event) {
        $('.flexslider').flexslider("prev") //Go to previous slide
    });

    $('.flexslider').flexslider({
        animation: "slide",
        controlNav: "thumbnails",
        start: function(){
            $('<div>').attr('class','flex-overlay').appendTo('.flex-viewport');
        }
    });
});

CSS :

.flex-overlay {
    position:absolute;
    top:0;
    left:0;
    width: 100%;
    height: 70%;
    background-color: transparent;
    z-index: 9999;
}

.flex-prev, .flex-next{
    z-index: 99999;    
}
于 2013-05-31T21:01:02.823 に答える