我使用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) {
},
});
}
答案 0 :(得分:1)
我遇到了类似的问题,但是当用户从任何幻灯片中选择文本时我不得不禁用滑块 - 因为当您在滑动滑块后选择文本时 - 选择保持可见,尽管您已打开另一张幻灯片很奇怪:) ... 所以,我做的是:
制作一个每200ms调用一次的函数,并将全局变量设置为true或false,具体取决于是否选择了任何文本。
在滑块代码中添加了三个if语句,检查此变量,如果有选定的文本 - 那么我不会更改幻灯片。
这三个位置在onTouchStart,onTouchMove和onTouchEnd内部回调中,只有在没有选择文本的情况下,它们内部的代码才会执行。
我仍然在改进,但决定分享到目前为止的进展:) ...