使用 Owl Carousel 2,禁用在桌面上拖动并启用点击功能
Using Owl Carousel 2, disable dragging on desktop and enabling click through functionality
我正在使用 Owl Carousel 2 并希望在桌面上实现自定义交互,同时在移动设备上保持默认的触摸滑动交互。
我可以禁用 mouseDrag(请参阅下面的 JS),但我想添加仅限桌面的功能,即单击滑块中的任意位置以前进到下一张幻灯片。因此,用户实际上无需通过鼠标拖动图像来到达桌面上的下一张幻灯片,而是可以单击图像上的任意位置来触发下一张幻灯片。
有没有办法检测桌面屏幕尺寸,然后将整个滑块区域作为自定义点击下一步功能?或者是否存在某种可以与 mouseDrag 串联存在的 mouseClick 函数:false?
<script>
$(function(){
var owl = $('.owl-carousel');
owl.owlCarousel({
items:1,
video: true,
lazyLoad:true,
mouseDrag: false,
touchDrag: true,
loop: false,
onInitialized: counter,
onTranslated: counter
});
$(".next").click(function() {
owl.trigger('next.owl.carousel');
});
$(".prev").click(function() {
owl.trigger('prev.owl.carousel');
});
function counter(event) {
var element = event.target;
var items = event.item.count;
var item = event.item.index + 1;
$('.counter').html((item < 10 ? '0' : '') + item + "/" + (items < 10 ? '0' : '') + items)
}
});
</script>
对于屏幕宽度/高度,您可以使用 screen interface。
为了转到 the next slide 点击图像区域,您可以使用:
$(document).on('click', '.owl-stage-outer', function(e) {
$(".owl-carousel").trigger('next.owl.carousel');
})
片段:
function counter(event) {
var element = event.target;
var items = event.item.count;
var item = event.item.index + 1;
$('.counter').html((item < 10 ? '0' : '') + item + "/" + (items < 10 ? '0' : '') + items)
}
$(function () {
var owl = $('.owl-carousel');
owl.owlCarousel({
items:1,
video: true,
lazyLoad:true,
mouseDrag: false,
touchDrag: true,
loop: false,
onInitialized: counter,
onTranslated: counter
});
// if the screen size is not a desktop....
if (screen.width < 2000 && screen.height < 100000) {
$(document).on('click', '.owl-stage-outer', function(e) {
$(".owl-carousel").trigger('next.owl.carousel');
})
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/assets/owl.carousel.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/assets/owl.theme.default.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/owl.carousel.min.js"></script>
<div class="owl-carousel owl-theme">
<div class="item"><h4>1</h4></div>
<div class="item"><h4>2</h4></div>
<div class="item"><h4>3</h4></div>
<div class="item"><h4>4</h4></div>
<div class="item"><h4>5</h4></div>
<div class="item"><h4>6</h4></div>
<div class="item"><h4>7</h4></div>
<div class="item"><h4>8</h4></div>
<div class="item"><h4>9</h4></div>
<div class="item"><h4>10</h4></div>
<div class="item"><h4>11</h4></div>
<div class="item"><h4>12</h4></div>
</div>
<div class="counter"></div>
我正在使用 Owl Carousel 2 并希望在桌面上实现自定义交互,同时在移动设备上保持默认的触摸滑动交互。
我可以禁用 mouseDrag(请参阅下面的 JS),但我想添加仅限桌面的功能,即单击滑块中的任意位置以前进到下一张幻灯片。因此,用户实际上无需通过鼠标拖动图像来到达桌面上的下一张幻灯片,而是可以单击图像上的任意位置来触发下一张幻灯片。
有没有办法检测桌面屏幕尺寸,然后将整个滑块区域作为自定义点击下一步功能?或者是否存在某种可以与 mouseDrag 串联存在的 mouseClick 函数:false?
<script>
$(function(){
var owl = $('.owl-carousel');
owl.owlCarousel({
items:1,
video: true,
lazyLoad:true,
mouseDrag: false,
touchDrag: true,
loop: false,
onInitialized: counter,
onTranslated: counter
});
$(".next").click(function() {
owl.trigger('next.owl.carousel');
});
$(".prev").click(function() {
owl.trigger('prev.owl.carousel');
});
function counter(event) {
var element = event.target;
var items = event.item.count;
var item = event.item.index + 1;
$('.counter').html((item < 10 ? '0' : '') + item + "/" + (items < 10 ? '0' : '') + items)
}
});
</script>
对于屏幕宽度/高度,您可以使用 screen interface。
为了转到 the next slide 点击图像区域,您可以使用:
$(document).on('click', '.owl-stage-outer', function(e) {
$(".owl-carousel").trigger('next.owl.carousel');
})
片段:
function counter(event) {
var element = event.target;
var items = event.item.count;
var item = event.item.index + 1;
$('.counter').html((item < 10 ? '0' : '') + item + "/" + (items < 10 ? '0' : '') + items)
}
$(function () {
var owl = $('.owl-carousel');
owl.owlCarousel({
items:1,
video: true,
lazyLoad:true,
mouseDrag: false,
touchDrag: true,
loop: false,
onInitialized: counter,
onTranslated: counter
});
// if the screen size is not a desktop....
if (screen.width < 2000 && screen.height < 100000) {
$(document).on('click', '.owl-stage-outer', function(e) {
$(".owl-carousel").trigger('next.owl.carousel');
})
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/assets/owl.carousel.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/assets/owl.theme.default.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/owl.carousel.min.js"></script>
<div class="owl-carousel owl-theme">
<div class="item"><h4>1</h4></div>
<div class="item"><h4>2</h4></div>
<div class="item"><h4>3</h4></div>
<div class="item"><h4>4</h4></div>
<div class="item"><h4>5</h4></div>
<div class="item"><h4>6</h4></div>
<div class="item"><h4>7</h4></div>
<div class="item"><h4>8</h4></div>
<div class="item"><h4>9</h4></div>
<div class="item"><h4>10</h4></div>
<div class="item"><h4>11</h4></div>
<div class="item"><h4>12</h4></div>
</div>
<div class="counter"></div>