【发布时间】:2021-07-19 01:59:31
【问题描述】:
我正在为我的商店使用 Woocommerce Storefront 主题,我的目标是添加带有图像的简单、无拖动的轮播。我尝试使用 Swiper 库来做到这一点,当我用纯 html、css 和 js 测试我的代码时,一切正常。但是,当我将代码放入 functions.php 的 Storefront 挂钩时,轮播不起作用。我尝试了另一个轮播库 - Embla,但问题仍然存在。 Carousel 显示正常,但无法移动幻灯片(在 click 和 movemouse 事件期间幻灯片正在拖动,但在重新单击鼠标或在移动设备上触摸后会弹回起始位置)。
您可以在此处实时查看问题(橙色按钮下的轮播,仅适用于小于 768 像素的视口):
我怀疑原因可能是 Storefront 主题中隐藏了一些 CSS 或 JS,但我将 style.css 文件中的所有 CSS 都注释掉了,但这并不能解决问题。
我也尝试禁用所有插件,但效果不佳。
这是我的html:
<div class="carousel__content swiper-container">
<div class="carousel__embla swiper-wrapper">
<a class="carousel__item" href=".">
<img class="carousel__item__img" src="<?php echo get_bloginfo('stylesheet_directory') . '/assets/images/alcanta/slider-looked.png'; ?>" alt="carousel-item" />
</a>
<a class="carousel__item" href=".">
<img class="carousel__item__img" src="<?php echo get_bloginfo('stylesheet_directory') . '/assets/images/alcanta/slider-looked.png'; ?>" alt="carousel-item" />
</a>
<a class="carousel__item" href=".">
<img class="carousel__item__img" src="<?php echo get_bloginfo('stylesheet_directory') . '/assets/images/alcanta/slider-looked.png'; ?>" alt="carousel-item" />
</a>
<a class="carousel__item" href=".">
<img class="carousel__item__img" src="<?php echo get_bloginfo('stylesheet_directory') . '/assets/images/alcanta/slider-looked.png'; ?>" alt="carousel-item" />
</a>
</div>
</div>
CSS:
.carousel__content {
overflow: hidden;
}
.carousel__embla {
display: flex;
}
.carousel__item {
display: block;
position: relative;
flex: auto;
margin-right: 20px;
}
当我尝试使用 Swiper 时的 Javascript:
const swiper = new Swiper('.swiper-container', {
freeMode: true,
slidesPerView: 2
});
当我尝试使用 Embla 时的 Javascript:
const emblaContainer = document.querySelector(".carousel__content");
const emblaOptions = {
dragFree: true,
containScroll: "trimSnaps"
};
const embla = EmblaCarousel(emblaContainer, emblaOptions);
【问题讨论】:
标签: javascript css wordpress woocommerce swiper