全屏滑块的图像在窗口调整大小时不会得到100vh和100vw

努尔

我创建了这个全屏滑块,其中幻灯片的每个图像都具有完整的宽度和高度,该宽度和高度占据了整个屏幕,但是在调整浏览器大小时无法使图像获得完整的宽度和高度。

这是HTML代码:

<div class="carousel">
  <button id="prevBtn"><i class="fas fa-angle-left"></i> Previous</button>
  <button id="nextBtn"><i class="fas fa-angle-right"></i> Next</button>
  <div class="slides-container">
    <div class="slide">
      <img src="https://images.unsplash...." alt="" />
    </div>
    <div class="slide">
      <img src="https://images...." alt="" />
    </div>
    <div class="slide">
      <img src="https://images...." alt="" />
    </div>
  </div>
</div>

上面的每个图像都具有以下css样式:

.slides-container {
  position: relative;
  display: flex;
  width: 100vw;
  height: 100vh;
}

.slide img {
  width: 100vw;
  height: 100vh;
  object-fit: cover;
}

我尝试了这种方法,效果很好,但我不想在调整窗口大小时刷新浏览器:

window.onresize = function () {
  location.reload();
};

在JavaScript文件中可能会注意到该问题,该文件的const slideWidth = slides[0].clientWidth;大小在窗口调整时不会更新。这是JS代码:

const slideWidth = slides[0].clientWidth;

nextBtn.addEventListener("click", () => {
  nextSlide();
});

function nextSlide() {
  slidesContainer.style.transition = "all 0.3s ease-in-out";

  index++;
  slidesContainer.style.transform = `translateX(${
    -slideWidth * (index + 1)
  }px)`;

  if (index > slides.length - 1) {
    setTimeout(() => {
      index = 0;
      slidesContainer.style.transform = `translateX(${-slideWidth}px)`;
      slidesContainer.style.transition = "none";
    }, 300);
  }
}

完整的代码在这里可用谢谢

插口

尝试使用100vw而不是设置slideWidth为像素。

在开始时,slideWidth = 100然后在每次设置transformX时,都使用vw而不是像素

slidesContainer.style.transform = `translateX(${
  -slideWidth * (index + 1)
}px)`;

slidesContainer.style.transform = `translateX(${
  -slideWidth * (index + 1)
}vw)`;

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

jQuery .remove()不删除(在窗口调整大小时)

来自分类Dev

jQuery Toggle在窗口调整大小时不显示

来自分类Dev

Rails 4:Carrierwave + Resque,图像不会得到背景处理

来自分类Dev

在窗口调整大小时按比例调整div的宽度和高度

来自分类Dev

使用getenv和env不会得到相同的结果:

来自分类Dev

宽度:100%和宽度:100vw之间的区别?

来自分类Dev

序言:不会得到最大的要素

来自分类Dev

在窗口调整大小时触发jQuery插件吗?

来自分类Dev

在窗口调整大小时重新运行jQuery插件实例

来自分类Dev

<p:sticky>在窗口调整大小时不会调整大小

来自分类Dev

调整窗口大小时,图像高度不会调整

来自分类Dev

ScalaFX(JavaFX):舞台内容不会在窗口调整大小时调整大小

来自分类Dev

Java在窗口调整大小时反跳和限制

来自分类Dev

100vh不能全屏显示

来自分类Dev

调整我的d3图表的大小,以便在页面加载和调整窗口大小时为100%

来自分类Dev

为什么{{width:“ 100vw”,height:“ 100vh”}}比我的浏览器窗口大?(未应用边距:0)

来自分类Dev

ReactJS。图像在调整窗口大小时消失

来自分类Dev

100vh不会使列高度达到100%

来自分类Dev

Firefox Mobile和高度100vh

来自分类Dev

如何在窗口调整大小和初始化时优化图像自动调整

来自分类Dev

调整大小时窗口高度为100%-Javascript

来自分类Dev

在窗口调整大小时隐藏元素

来自分类Dev

Java在窗口调整大小时反跳和限制

来自分类Dev

100vh不能全屏显示

来自分类Dev

具有100vh的图像,但保持宽高比

来自分类Dev

页眉在窗口调整大小时移动

来自分类Dev

使用 vw 和 vh 度量调整窗口大小的问题

来自分类Dev

100vh 和 100vw 与浏览器窗口的当前大小相比

来自分类Dev

CSS在窗口调整大小时调整div和div内的图像

Related 相关文章

  1. 1

    jQuery .remove()不删除(在窗口调整大小时)

  2. 2

    jQuery Toggle在窗口调整大小时不显示

  3. 3

    Rails 4:Carrierwave + Resque,图像不会得到背景处理

  4. 4

    在窗口调整大小时按比例调整div的宽度和高度

  5. 5

    使用getenv和env不会得到相同的结果:

  6. 6

    宽度:100%和宽度:100vw之间的区别?

  7. 7

    序言:不会得到最大的要素

  8. 8

    在窗口调整大小时触发jQuery插件吗?

  9. 9

    在窗口调整大小时重新运行jQuery插件实例

  10. 10

    <p:sticky>在窗口调整大小时不会调整大小

  11. 11

    调整窗口大小时,图像高度不会调整

  12. 12

    ScalaFX(JavaFX):舞台内容不会在窗口调整大小时调整大小

  13. 13

    Java在窗口调整大小时反跳和限制

  14. 14

    100vh不能全屏显示

  15. 15

    调整我的d3图表的大小,以便在页面加载和调整窗口大小时为100%

  16. 16

    为什么{{width:“ 100vw”,height:“ 100vh”}}比我的浏览器窗口大?(未应用边距:0)

  17. 17

    ReactJS。图像在调整窗口大小时消失

  18. 18

    100vh不会使列高度达到100%

  19. 19

    Firefox Mobile和高度100vh

  20. 20

    如何在窗口调整大小和初始化时优化图像自动调整

  21. 21

    调整大小时窗口高度为100%-Javascript

  22. 22

    在窗口调整大小时隐藏元素

  23. 23

    Java在窗口调整大小时反跳和限制

  24. 24

    100vh不能全屏显示

  25. 25

    具有100vh的图像,但保持宽高比

  26. 26

    页眉在窗口调整大小时移动

  27. 27

    使用 vw 和 vh 度量调整窗口大小的问题

  28. 28

    100vh 和 100vw 与浏览器窗口的当前大小相比

  29. 29

    CSS在窗口调整大小时调整div和div内的图像

热门标签

归档