在flexslider上禁用/启用触摸事件

时间:2013-08-10 19:11:51

标签: jquery touch flexslider touch-event

我使用flexslider滑动一些内容:http://iea.uili.com.br/v4/ 我想在放大时禁用触摸并在缩小时启用后退功能,键盘控制也是如此!

这是当我点击任何建筑物放大时的功能

function janelas(){     
      $('.popup').click(function() { 
        var $id = $(this).attr('class').split(' ')[2];
        $('.menu_janela').fadeOut('fast');

        $("ul.flex-direction-nav").addClass('hide');
        setTimeout(function(){
            console.log('.'+$id+'-popup')
            $('.'+$id+'-popup').fadeIn('fast');
        },600);
      });   

}

这是缩小时的功能

function fecha(){
    $('.fechaa').click(function()  { 
        $("ul.flex-direction-nav").removeClass('hide');
        $('.menu_janela').fadeOut();
        $('.view1').click();
    });

    $('.fechab').click(function()  { 
        $("ul.flex-direction-nav").removeClass('hide');
        $('.menu_janela').fadeOut();
        $('.view2').click();
    });

    $('.fechac').click(function()  { 
        $("ul.flex-direction-nav").removeClass('hide');
        $('.menu_janela').fadeOut();
        $('.view3').click();
    });

    $('.zoomContainer').click(function()  { 
        $("ul.flex-direction-nav").removeClass('hide');
        $('.menu_janela').fadeOut();
    });
}

这是滑块的功能

function Slider(){
    $captions = $('.captions');
        $('.flexslider').flexslider({
        animation: "slide",
        slideshow: false,
        animationSpeed: 1500,
        controlNav: false,
        keyboard: true,
        touch: true,
        start: function(slider) {
            $activecaption = $('.flex-active-slide .flex-caption');
            $captions.html($activecaption.text()); 
            $('.loading-container').fadeOut(function() {
              $(this).remove();
            });
            $('.centro').centro();

            janelas();
            fecha();
        },
        before: function(slide) {

        },
        after: function(slide) {
            $activecaption = $('.flex-active-slide .flex-caption');
            $captions.html($activecaption.text());

        },
        end: function(slide) {
        },
    });
}

1 个答案:

答案 0 :(得分:1)

我遇到了类似的问题,但是当用户从任何幻灯片中选择文本时我不得不禁用滑块 - 因为当您在滑动滑块后选择文本时 - 选择保持可见,尽管您已打开另一张幻灯片很奇怪:) ... 所以,我做的是:

  1. 制作一个每200ms调用一次的函数,并将全局变量设置为true或false,具体取决于是否选择了任何文本。

  2. 在滑块代码中添加了三个if语句,检查此变量,如果有选定的文本 - 那么我不会更改幻灯片。

  3. 这三个位置在onTouchStart,onTouchMove和onTouchEnd内部回调中,只有在没有选择文本的情况下,它们内部的代码才会执行​​。

    我仍然在改进,但决定分享到目前为止的进展:) ...