【发布时间】:2021-10-04 02:19:32
【问题描述】:
我打算用相同的逻辑制作下面的轮播示例。但是我在设置左侧属性时遇到了一个问题。 演示 https://3dedy.csb.app/
- 以上示例是无限循环示例。当用户导航到最后一张幻灯片时,它会显示第一张幻灯片
- 我从示例中了解到的内容。当用户在最后一张幻灯片上时 .it
set first Item the left property并在用户单击下一个按钮时显示第一张幻灯片
我使用了相同的逻辑。
当用户在最后一张幻灯片上时,我还设置了 left 属性。但在我的情况下,我无法显示第一张幻灯片
可能是我做错了什么 这是我的代码
nextSlide() {
const t = this;
const opts = t.options;
let nextSlide = t.activeSlide + 1;
if ((t.activeSlide >= t.slidesLength) && !t.isEnabledOption('loop')) {
t._paused = true;
return;
}
if (nextSlide > t.slidesLength) {
//
console.log(t);
t._slides[0].style.left = `${100*t._slides.length}%`
// nextSlide = 1;
}
整个代码 https://plnkr.co/edit/PWJl4cELopwUaOL2?open=lib%2Fscript.js&preview
【问题讨论】:
-
let nextSlide = t.activeSlide + 1;完全没有必要。你已经有t.activeSlide使用它!if (t.activeSlide >= t.slidesLength) {另外,不要将this伪装成t -
您可以将此答案作为一个很好的起点:stackoverflow.com/a/68263034/383904 逻辑如下:
C = (is_next ? ++C : --C) < 0 ? T-1 : C%T;而您所需要的只是像这样的动画:100 * C %全部在一个anim()中功能,方法。
标签: javascript jquery ecmascript-6 carousel