【问题标题】:disable dragging in specific element (Item) in “Owl carousel” - jquery禁用在“猫头鹰轮播”中拖动特定元素(项目) - jquery
【发布时间】:2023-12-13 07:06:02
【问题描述】:

我在我的小项目中使用“OWL Carousel”jQuery 插件 (http://www.owlgraphic.com/owlcarousel/)。

我创建了可以通过这个插件拖动的小脚本。现在我想禁用拖动特定元素(项目)...但我不知道该怎么做。

HTML:

<div class="wrap">
    <div id="carousel">

    <div class="part">
        <div class="item">Item-1.1</div>
        <div class="item">Item-1.2 NOT Draggble</div>
        <div class="item">Item-1.3</div>
    </div>
    <div class="part">
        <div class="item">Item-2.1</div>
        <div class="item">Item-2.2 NOT Draggble</div>
        <div class="item">Item-2.3</div>
    </div>
    <div class="part">
        <div class="item">Item-3.1</div>
        <div class="item">Item-3.2 NOT Draggble<div>
        <div class="item">Item-3.3</div>
    </div>

    </div>
</div>

CSS:

div.wrap {
    width: 990px;
    min-height: 360px;
    padding: 5px;
    border: 2px solid #666;
    margin: 10px auto;
}
div.item {
    float: left;
    border: 1px solid #ddd;
    width: 324px;
    margin: 1px;
    min-height: 360px; 

}

JS:

$(document).ready(function() {

    $("#carousel").owlCarousel({
        singleItem: true,
    startPosition : -1,
    autoPlayDirection : "rtl",

    });

});

我知道我应该在 回调函数 中使用 mouseDrag (http://www.owlgraphic.com/owlcarousel/#customizing),但我现在不知道如何... :(

【问题讨论】:

    标签: javascript jquery function draggable carousel


    【解决方案1】:

    我有同样的问题,只是想通了:

    为您想要禁用的项目添加一个类(即“disable-owl-swipe”)并在 touchstart 和 mousedown 上停止事件传播,因此父母(猫头鹰轮播包装器)不会收到事件,因此不要不要滑动。

    HTML:

    <div class="wrap">
        <div id="carousel">
    
        <div class="part">
            <div class="item">Item-1.1</div>
            <div class="item disable-owl-swipe">Item-1.2 NOT Draggble</div>
            <div class="item">Item-1.3</div>
        </div>
        <div class="part">
            <div class="item">Item-2.1</div>
            <div class="item disable-owl-swipe">Item-2.2 NOT Draggble</div>
            <div class="item">Item-2.3</div>
        </div>
        <div class="part">
            <div class="item">Item-3.1</div>
            <div class="item disable-owl-swipe">Item-3.2 NOT Draggble<div>
            <div class="item">Item-3.3</div>
        </div>
    
        </div>
    </div>
    

    JS:

    $(".disable-owl-swipe").on("touchstart mousedown", function(e) {
        // Prevent carousel swipe
        e.stopPropagation();
    })
    

    希望有帮助!

    【讨论】:

    • 这太棒了,它只是用于一个元素,一个选择框,有时意味着你在没有准确移动的情况下拖动。这就像 owlcarousel beta 2 的魅力一样
    • 这对我来说非常适合使用 Owl Carousel 2 测试版,谢谢!
    【解决方案2】:

    我有办法!

    只需在“NDElement”中添加要排除的元素

    $( NDElement ).mousedown(function() {
            $(".owl-wrapper").attr("class","dontdragg"); 
    });
    $( document ).mouseup(function() {
            $(".dontdragg").attr("class","owl-wrapper"); 
    });
    

    【讨论】:

      最近更新 更多