我将 Glide.js 用于轮播,但活动项目的宽度总是小于其他项目的宽度,这是由 glide.js 设置的。
正如您在此视频中看到的那样,该高度较小,使其不一致且难看:https ://vimeo.com/323290507
我已经尝试添加一个“DOMContentLoaded”事件侦听器来获取活动项目的节点和克隆节点(包含正确的高度)并将活动幻灯片的宽度更改为与另一个相同的宽度,这只有效第一次,因为每次更改当前幻灯片时 glide 总是更改宽度。
我也尝试过使用 MutationObserver 但我不确定它是如何工作的,而且我没有得到它。
这是我的代码:
<div class="glide">
<div data-glide-el="track" class="glide__track">
<ul class="glide__slides">
{% for article in articles %}
{% with article.specific as article %}
<li class="glide__slide">
{% image article.main_image fill-1300x500 as img %}
<img src="{{img.url}}" width="100%">
</li>
{% endwith %}
{% endfor %}
</ul>
</div>
<div class="glide__arrows" data-glide-el="controls">
<i class="myglide__arrow myglide__arrow--left fas fa-angle-left" data-glide-dir="<"></i>
<i class="myglide__arrow myglide__arrow--right fas fa-angle-right" data-glide-dir=">"></i>
</div>
<div class="glide__bullets" data-glide-el="controls[nav]">
<button class="glide__bullet" data-glide-dir="=0"></button>
<button class="glide__bullet" data-glide-dir="=1"></button>
<button class="glide__bullet" data-glide-dir="=2"></button>
</div>
</div>
<script>
const glide = new Glide('.glide', {
type: 'carousel',
startAt: 0,
perView: 1,
autoplay: 3000,
hoverpause: true,
keyboard: true,
duration: 1000,
arrows: true,
animationTimingFunc: 'ease-in-out',
});
glide.mount();
</script>