gpt4 book ai didi

javascript - 与 2 个触摸事件 javascript 插件冲突,以错误的顺序分层触摸事件?

转载 作者:行者123 更新时间:2023-11-30 15:30:55 28 4
gpt4 key购买 nike

查看我的 jsFiddle用于测试。

我正在使用这两个 js/jquery 插件,Ken Wheelers Slick SliderJakie Stfu Snap.js插件,它们都依赖于触摸事件来触发它们的功能。

我希望能够将这些插件相互结合使用。我创建了一个 jsFiddle我确切的工作环境。

您可以看到 snap.js 绘制幻灯片效果很好。 Slick Slider 触摸事件也能很好地工作,但只有当 Slick slider 向左触摸滚动时才有效。如果我尝试向右触摸滚动,它会打开 snap.js 菜单绘制。

我的问题是任何人都可以帮助我让 Slick Slider 控制 snap.js 插件吗?仅在轮播区域,以便 snap.js 可以在所有其他区域正常工作。

enter image description here

这是我的代码,它是两个插件的所有标准演示代码。

/**
** pure js
**/

// snap event
var addEvent = function addEvent(element, eventName, func) {
if (element.addEventListener) {
return element.addEventListener(eventName, func, false);
} else if (element.attachEvent) {
return element.attachEvent("on" + eventName, func);
}
};

// snap parmas
var snapper = new Snap({
element: document.getElementById('content'),
disable: 'right',
maxPosition: 250,
minPosition: -250,
transitionSpeed: .2
});

// snap button click function
addEvent(document.getElementById('ol'), 'click', function() {
snapper.open('left');
});

/**
** jQuery functions
**/
(function($) {

// slick slider
$('#carousel').slick({
dots: false,
prevArrow: false,
nextArrow: false,
autoplay: true,
autoplaySpeed: 3000
});

})(jQuery);

如果有任何帮助,我们将不胜感激。

最佳答案

您可以通过在 #carousel 级别停止事件传播来做到这一点。这意味着正在触发的当前事件(拖动事件等)不会到达 Snap.js。

$('#carousel').on('mousedown touchstart', function (e) {
e.stopPropagation();
});

也在移动设备上使用 touchstart 事件进行了测试。

https://jsfiddle.net/chrispage1/o9whuLyw/2/

关于javascript - 与 2 个触摸事件 javascript 插件冲突,以错误的顺序分层触摸事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42255230/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com