如何在最后一张幻灯片上停止滑块

基拉

我正在尝试制作一个旋转木马,但在到达最后一张幻灯片时,我有点想阻止它滚动。

到目前为止我有这个JS代码

var width = 130; //width of one slide
var position = 0;


var carousel = document.getElementById('carousel');
var list = carousel.querySelector('ul');

carousel.querySelector('.prev').onclick = function() {
  position = Math.min(position + width, 0)
  console.log(position)
  list.style.marginLeft = position + 'px';
};

carousel.querySelector('.next').onclick = function() {
  position = position - width
  console.log(position)
  list.style.marginLeft = position + 'px';
};

所以我取了一张幻灯片的宽度,并基于容器的变化边距。

向左滚动时,我通过将位置设置为0with解决了问题Math.min。这样当我在第一张幻灯片上时,它不会向左滚动。

但我不知道如何在上一张幻灯片上做同样的事情。

链接到工作示例

苏尔塔尼根治

这就是你想要的,我刚刚添加了一个比较所有滑块的位置和大小的测试。

var width = 130;

var carousel = document.getElementById('carousel');
var list = carousel.querySelector('ul');

var position = 0;

var carouselwidth = document.getElementsByClassName('gallery')[0].offsetWidth;

//number of silder
var nbslider = list.getElementsByTagName("li").length;
//number of silder per page
var nbsliderp = carouselwidth / width
console.log(nbsliderp);
//size of silders per page
var szsliderp = nbsliderp * width;


carousel.querySelector('.prev').onclick = function() {
  position = Math.min(position + width, 0)
  console.log(position)
  list.style.marginLeft = position + 'px';
};

carousel.querySelector('.next').onclick = function() {
  //console.log((position - szsliderp) + (nbslider * width))
  if (((position - szsliderp) + (nbslider * width)) > 0) {
    position = position - width
    //console.log(position)
    list.style.marginLeft = position + 'px';
  }
};
body {
  padding: 10px;
}

.carousel {
  position: relative;
  width: 398px;
  padding: 10px 40px;
  background: #eee;
}

.carousel img {
  width: 130px;
  height: 130px;
  margin-right: 2px;
  display: block;
}

.arrow {
  position: absolute;
  top: 60px;
  padding: 0;
  font-size: 24px;
  line-height: 24px;
  color: #444;
  display: block;
}

.arrow:focus {
  outline: none;
}

.arrow:hover {
  background: #ccc;
  cursor: pointer;
}

.prev {
  left: 7px;
}

.next {
  right: 7px;
}

.gallery {
  width: 390px;
  overflow: hidden;
}

.gallery ul {
  height: 130px;
  width: 9999px;
  margin: 0;
  padding: 0;
  list-style: none;
  transition: margin-left 250ms;
  font-size: 0;
}

.gallery li {
  display: inline-block;
}
<div id="carousel" class="carousel">
  <button class="arrow prev"></button>
  <div class="gallery">
    <ul class="images">
      <li><img src="https://cdn.houseplans.com/product/o2d2ui14afb1sov3cnslpummre/w1024.jpg?v=15"></li>
      <li><img src="https://cdn.houseplans.com/product/o2d2ui14afb1sov3cnslpummre/w1024.jpg?v=15"></li>
      <li><img src="https://cdn.houseplans.com/product/o2d2ui14afb1sov3cnslpummre/w1024.jpg?v=15"></li>
      <li><img src="https://cdn.houseplans.com/product/o2d2ui14afb1sov3cnslpummre/w1024.jpg?v=15"></li>
      <li><img src="https://cdn.houseplans.com/product/o2d2ui14afb1sov3cnslpummre/w1024.jpg?v=15"></li>
      <li><img src="https://cdn.houseplans.com/product/o2d2ui14afb1sov3cnslpummre/w1024.jpg?v=15"></li>
    </ul>
  </div>
  <button class="arrow next">></button>
</div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Jssor(列表滑块):如何在最后一张幻灯片上结束

来自分类Dev

如何在最后一张图片上停止CSS图片幻灯片播放?

来自分类Dev

滑动滑块YouTube在最后一张和第一张幻灯片上出现故障

来自分类Dev

如何禁用轮播的最后一张幻灯片上的按钮?

来自分类Dev

如果winWidth <500,光滑的滑块将删除最后一张幻灯片

来自分类Dev

BxSlider:最后一张幻灯片上的“下一张”->跳回到第一张幻灯片?

来自分类Dev

全高滑块跳过一张幻灯片

来自分类Dev

如何在 slick.js 滑块中仅显示下一张幻灯片的一半

来自分类Dev

上一张幻灯片和“自动播放Jquery”滑块,

来自分类Dev

光滑的滑块创建上一张幻灯片为空Angular JS?

来自分类Dev

bxSlider最后一张幻灯片为空

来自分类Dev

bx滑块:仅显示一张图像时如何禁用幻灯片放映

来自分类Dev

离子5幻灯片ionSlideDidChange不要求最后一张幻灯片

来自分类Dev

为什么幻灯片会跳过最后一张幻灯片?

来自分类Dev

隐藏/禁用最后一张幻灯片上的“下一张”按钮和第一张幻灯片上的“上一张”按钮

来自分类Dev

删除上一张幻灯片上的课程

来自分类Dev

滑动滑块将所有幻灯片放到一张幻灯片中

来自分类Dev

如何使用fadeIn()过渡到最后一张幻灯片

来自分类Dev

如何将flexslider移动到最后一张幻灯片

来自分类Dev

如何使用fadeIn()过渡到最后一张幻灯片

来自分类Dev

如何在多标签页上的标签加载上显示第一张幻灯片

来自分类Dev

当显示最后一张幻灯片时,如何让这个 javascript 停止

来自分类Dev

全屏菜单只在滑块的第一张幻灯片上工作,而不是在其他幻灯片上 - CSS、HTML

来自分类Dev

如何使用OpenXML将幻灯片插入另一张PowerPoint幻灯片?

来自分类Dev

如果单击另一张幻灯片上的超链接,如何触发动画?

来自分类Dev

如何在滑块的末端创建一个按钮,该按钮可以更改并可以显示Ionic 4中的下一张幻灯片?

来自分类Dev

并排箱:如何在下面制作一张幻灯片?

来自分类Dev

如何在笔记中指出应该显示下一张幻灯片/动画?

来自分类Dev

Flexslider上一张和下一张幻灯片的位置

Related 相关文章

  1. 1

    Jssor(列表滑块):如何在最后一张幻灯片上结束

  2. 2

    如何在最后一张图片上停止CSS图片幻灯片播放?

  3. 3

    滑动滑块YouTube在最后一张和第一张幻灯片上出现故障

  4. 4

    如何禁用轮播的最后一张幻灯片上的按钮?

  5. 5

    如果winWidth <500,光滑的滑块将删除最后一张幻灯片

  6. 6

    BxSlider:最后一张幻灯片上的“下一张”->跳回到第一张幻灯片?

  7. 7

    全高滑块跳过一张幻灯片

  8. 8

    如何在 slick.js 滑块中仅显示下一张幻灯片的一半

  9. 9

    上一张幻灯片和“自动播放Jquery”滑块,

  10. 10

    光滑的滑块创建上一张幻灯片为空Angular JS?

  11. 11

    bxSlider最后一张幻灯片为空

  12. 12

    bx滑块:仅显示一张图像时如何禁用幻灯片放映

  13. 13

    离子5幻灯片ionSlideDidChange不要求最后一张幻灯片

  14. 14

    为什么幻灯片会跳过最后一张幻灯片?

  15. 15

    隐藏/禁用最后一张幻灯片上的“下一张”按钮和第一张幻灯片上的“上一张”按钮

  16. 16

    删除上一张幻灯片上的课程

  17. 17

    滑动滑块将所有幻灯片放到一张幻灯片中

  18. 18

    如何使用fadeIn()过渡到最后一张幻灯片

  19. 19

    如何将flexslider移动到最后一张幻灯片

  20. 20

    如何使用fadeIn()过渡到最后一张幻灯片

  21. 21

    如何在多标签页上的标签加载上显示第一张幻灯片

  22. 22

    当显示最后一张幻灯片时,如何让这个 javascript 停止

  23. 23

    全屏菜单只在滑块的第一张幻灯片上工作,而不是在其他幻灯片上 - CSS、HTML

  24. 24

    如何使用OpenXML将幻灯片插入另一张PowerPoint幻灯片?

  25. 25

    如果单击另一张幻灯片上的超链接,如何触发动画?

  26. 26

    如何在滑块的末端创建一个按钮,该按钮可以更改并可以显示Ionic 4中的下一张幻灯片?

  27. 27

    并排箱:如何在下面制作一张幻灯片?

  28. 28

    如何在笔记中指出应该显示下一张幻灯片/动画?

  29. 29

    Flexslider上一张和下一张幻灯片的位置

热门标签

归档