问题描述
我正在为我的商店使用 Woocommerce Storefront 主题,我的目标是添加带有图像的简单、可拖动的免费轮播。我尝试使用 Swiper
库来做到这一点,当我在纯 html、css 和 js 中测试我的代码时,一切正常。但是,当我将代码放入 functions.PHP
中的 Storefront hooks 时,carousel 不起作用。我尝试了另一个轮播库 - Embla
,但问题仍然存在。轮播显示正常,但无法移动幻灯片(在单击和移动鼠标事件期间幻灯片正在拖动,但在移动鼠标单击或触摸后会弹回起始位置)。
您可以在此处实时查看问题(橙色按钮下的轮播,仅适用于小于 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);
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)