有 swiper js,您可以在工作时更改参数。在这种情况下,如果所有幻灯片都适合容器,我需要关闭 `` 参数,否则将其打开。
const sounds = new Swiper('.sounds .tabs-list', {
init: false,
slidesPerView: 'auto',
spaceBetween: 30,
allowTouchMove: true,
});
sounds.on('init resize', () => {
const tabs = sounds.el.querySelectorAll('.tabs-list__item');
const widthSoundsTabs = [...tabs].reduce((total, tab) => total + tab.offsetWidth, 0) + (sounds.params.spaceBetween * (tabs.length - 1));
if( widthSoundsTabs > sounds.el.offsetWidth && !sounds.params.allowTouchMove) {
sounds.params.allowTouchMove = true;
}
if(widthSoundsTabs <= sounds.el.offsetWidth && sounds.params.allowTouchMove) {
sounds.params.allowTouchMove = false;
}
});
sounds.init();
参数改变,但没有反应,更准确地说,滑块对鼠标或手指的滑动做出反应并做出反应
#NeedHate正确地告诉您:使用watchOverflow将允许您关闭滑块并隐藏导航按钮,以防没有足够的幻灯片可以滑动。
因此,您需要包含参数:
watchOverflow: true. 并且在操作嵌套在滑块中的 DOM 元素之后,您需要运行该方法update()- 这将使用嵌套 DOM 元素的新参数更新滑块的所有功能。示例:点击按钮人为改变滑块的宽度,看看效果如何