[英]Next and Prev button will slides 2 items on OWL Carousel
我正在使用OWL Carousel(1.3.3)
$(".CardSlider").owlCarousel({
navigation: true,
navigationText: ["ﺑﻌﺪﻯ", "ﻗﺒﻠﻰ "],
pagination: false,
slideSpeed: 300,
paginationSpeed: 400,
singleItem: true,
});
桌面浏览器上的一切都很好,但是当我触摸Next
或上Prev
按钮时它在移动设备上滑动2个项目,
首先我对重新订阅事件处理程序持怀疑态度,所以我添加了这个选项mouseDrag : false
但没有任何改变。
然后我打开了owl脚本文件,并next
方法中设置了一些警报。 当显示警报时功能正常我的意思是它会滑动1个项目。 我也在那个方法中检查这个变量base.currentItem += base.options.scrollPerPage === true ? base.options.items : 1;
base.currentItem += base.options.scrollPerPage === true ? base.options.items : 1;
base.options.scrollPerPage
= false
base.options.items
= 1
(base.options.scrollPerPage === true ? base.options.items : 1)
= 1
任何人即使是官方电子邮件地址从他们的网站没有得到帮助后,我解决我的问题,在移动设备的事件处理程序next
和prev
按钮被分配了两次一个click
,一个用于touch
。 所以我已经解决了这个问题:在owl.carousel.js
第424行,我已经替换了这段代码
buttonsWrapper.on("touchstart.owlControls mousedown.owlControls", "div[class^=\"owl\"]", function (event) {
event.preventDefault();
});
buttonsWrapper.on("touchend.owlControls mouseup.owlControls", "div[class^=\"owl\"]", function (event) {
event.preventDefault();
if ($(this).hasClass("owl-next")) {
base.next();
} else {
base.prev();
}
});
有了这个
if (isMobile()) {
buttonsWrapper.on("touchstart.owlControls", "div[class^=\"owl\"]", function (event) {
event.preventDefault();
});
buttonsWrapper.on("touchend.owlControls ", "div[class^=\"owl\"]", function (event) {
event.preventDefault();
if ($(this).hasClass("owl-next")) {
base.next();
} else {
base.prev();
}
});
}
else {
buttonsWrapper.on("touchstart.owlControls mousedown.owlControls", "div[class^=\"owl\"]", function (event) {
event.preventDefault();
});
buttonsWrapper.on("touchend.owlControls mouseup.owlControls", "div[class^=\"owl\"]", function (event) {
event.preventDefault();
if ($(this).hasClass("owl-next")) {
base.next();
} else {
base.prev();
}
});
}
我还在js文件的末尾添加了这个函数
function isMobile() {
return navigator.userAgent.match(/Android|webOS|iPhone|iPod|iPad|BlackBerry/i) !== null;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.