【问题标题】:Making horizontal scroll with images infinite with no break CSS在不中断 CSS 的情况下使图像水平滚动无限
【发布时间】:2022-11-30 01:49:39
【问题描述】:

我正在尝试制作一个以无限方式水平滚动的徽标组合轮播。

我几乎完成了,但它会破坏动画并且不是无缝的。我需要它真的是一个没有间断的无限动画。

https://jsfiddle.net/nha3grjL/#&togetherjs=sy1LFN4qOJ

body {
  margin: 0;
}

.scroll {
  position: relative;
  width: 100vw;
  background-color: $boxify-bg-light-dark;
  overflow: hidden;
  z-index: 1;
  margin: 0;
  padding: 0;
}

.m-scroll {
  overflow: hidden;
  height: 100%;
  white-space: nowrap;
  animation: scrollText 10s infinite linear;
  margin: 0;
  font-size: 0;
  display: flex;
  justify-content: space-between;
  width: 250%;
}

span {
  display: inline-block;
  margin: 0;
  padding: 0;
  color: white;
}

@keyframes scrollText {
  from {
    transform: translateX(0%);
  }
  to {
    transform: translateX(-50%);
  }
}
<div class="scroll">
  <div class="m-scroll">
    <span><img src="https://upload.wikimedia.org/wikipedia/commons/a/ab/Logo_TV_2015.png"></span>
    <span><img src="https://upload.wikimedia.org/wikipedia/commons/a/ab/Logo_TV_2015.png"></span>
    <span><img src="https://upload.wikimedia.org/wikipedia/commons/a/ab/Logo_TV_2015.png"></span>
    <span><img src="https://upload.wikimedia.org/wikipedia/commons/a/ab/Logo_TV_2015.png"></span>
    <span><img src="https://upload.wikimedia.org/wikipedia/commons/a/ab/Logo_TV_2015.png"></span>
    <span><img src="https://upload.wikimedia.org/wikipedia/commons/a/ab/Logo_TV_2015.png"></span>
    <span><img src="https://upload.wikimedia.org/wikipedia/commons/a/ab/Logo_TV_2015.png"></span>
    <span><img src="https://upload.wikimedia.org/wikipedia/commons/a/ab/Logo_TV_2015.png"></span>
    <span><img src="https://upload.wikimedia.org/wikipedia/commons/a/ab/Logo_TV_2015.png"></span>
    <span><img src="https://upload.wikimedia.org/wikipedia/commons/a/ab/Logo_TV_2015.png"></span>
    <span><img src="https://upload.wikimedia.org/wikipedia/commons/a/ab/Logo_TV_2015.png"></span>
    <span><img src="https://upload.wikimedia.org/wikipedia/commons/a/ab/Logo_TV_2015.png"></span>
  </div>
</div>

【问题讨论】:

    标签: html css


    【解决方案1】:

    我不太了解宽度 250vw 设置。尝试用 width: fit-content 替换它。然后 -50% 翻译会将图像翻译到正确的位置。

    [我假设如果您要显示不同的图像,您知道将它们的完整副本全部放入 HTML 中,这样 -50% 就可以了]。

    body {
      margin: 0;
    }
    
    .scroll {
      position: relative;
      width: 100vw;
      background-color: $boxify-bg-light-dark;
      overflow: hidden;
      z-index: 1;
      margin: 0;
      padding: 0;
    }
    
    .m-scroll {
      overflow: hidden;
      height: 100%;
      white-space: nowrap;
      animation: scrollText 10s infinite linear;
      margin: 0;
      font-size: 0;
      display: flex;
      justify-content: space-between;
      width: fit-content;
    }
    
    span {
      display: inline-block;
      margin: 0;
      padding: 0;
      color: white;
    }
    
    @keyframes scrollText {
      from {
        transform: translateX(0%);
      }
      to {
        transform: translateX(-50%);
      }
    }
    <div class="scroll">
      <div class="m-scroll">
        <span><img src="https://upload.wikimedia.org/wikipedia/commons/a/ab/Logo_TV_2015.png" ></span>
        <span><img src="https://upload.wikimedia.org/wikipedia/commons/a/ab/Logo_TV_2015.png"></span>
        <span><img src="https://upload.wikimedia.org/wikipedia/commons/a/ab/Logo_TV_2015.png"></span>
        <span><img src="https://upload.wikimedia.org/wikipedia/commons/a/ab/Logo_TV_2015.png"></span>
        <span><img src="https://upload.wikimedia.org/wikipedia/commons/a/ab/Logo_TV_2015.png"></span>
        <span><img src="https://upload.wikimedia.org/wikipedia/commons/a/ab/Logo_TV_2015.png"></span>
        <span><img src="https://upload.wikimedia.org/wikipedia/commons/a/ab/Logo_TV_2015.png" ></span>
        <span><img src="https://upload.wikimedia.org/wikipedia/commons/a/ab/Logo_TV_2015.png"></span>
        <span><img src="https://upload.wikimedia.org/wikipedia/commons/a/ab/Logo_TV_2015.png"></span>
        <span><img src="https://upload.wikimedia.org/wikipedia/commons/a/ab/Logo_TV_2015.png"></span>
        <span><img src="https://upload.wikimedia.org/wikipedia/commons/a/ab/Logo_TV_2015.png"></span>
        <span><img src="https://upload.wikimedia.org/wikipedia/commons/a/ab/Logo_TV_2015.png"></span>
      </div>
    </div>

    【讨论】:

      【解决方案2】:

      我相信用这个替换你的关键帧会起作用,只需写下你的图像的 (width * -1) 而不是我的评论

      @keyframes scrollText {
        0% {
          transform: translate3d(0, 0, 0);
       }
        100% {
          transform: translate3d(/* Your image width */, 0, 0); 
       }
      }
      

      抱歉格式不正确我是新手

      【讨论】:

        猜你喜欢
        • 2022-12-17
        • 1970-01-01
        • 2017-02-09
        • 1970-01-01
        • 2017-11-27
        • 1970-01-01
        • 2013-01-01
        • 1970-01-01
        • 2012-09-29
        相关资源
        最近更新 更多