【问题标题】:sass animation did not work after adding a transition-timing function添加过渡定时功能后,sass 动画不起作用
【发布时间】:2021-07-12 22:48:00
【问题描述】:

我想创建一个带边框的盒子,里面有一个小 div,我想当我将鼠标悬停在盒子上时,里面的小 div 会开始动画,但动画根本没有开始,所以我删除悬停在这种情况下动画也不起作用,

这是我尝试过的:

<div class="row mb-4">
      <div class="col col__animation">
        <div id="object"></div>
      </div>
    </div>

文字:

.col__animation{  
    display: flex;
    border-radius: 1rem !important;
    border: 1px solid #284876;
    height: 200px !important;
    align-items: center;
    
    #object {
        width: 40px;
        height: 50px;
        background: blueviolet;
        margin-top: 2px;
        margin-bottom: 1px;
        margin-right: 3px;
    }
    
    &:hover{
        #object{
            transition: transform 1000ms;
            transition-timing-function: ease-in-out;
        }
    }

}

我正在尝试许多动画效果,例如使框向右移动并返回初始位置以及更多动画

【问题讨论】:

    标签: css sass


    【解决方案1】:

    这应该可行

    .col__animation {
      display: flex;
      border-radius: 1rem !important;
      border: 1px solid #284876;
      height: 200px !important;
      align-items: center;
    }
    
    .col__animation #object {
      width: 40px;
      height: 50px;
      background: blueviolet;
      margin-top: 2px;
      margin-bottom: 1px;
      margin-right: 3px;
      animation: mymove 3s infinite;
    }
    
    @keyframes mymove {
      0% {
        margin-left: 0px;
      }
    
      50% {
        margin-left: calc(100% - 40px);
      }
    
      100% {
        margin-left: 0px;
      }
    }
    
    

    Codepen

    【讨论】:

    • 太棒了!动画正在运行,但我注意到它只是 100px 的距离然后又回来了,如何让它持续到最后?我应该将 100px 替换为 100% 还是什么?
    • 是否可以让动画在没有悬停的情况下一直运行?
    • 您可以通过margin 值使其一直运行到最后,并使用keyframes 并将动画时间设置为infinite 以使其始终运行。我也更新了代码。
    • 请记住,我没有为此使用 sass,因此您可能需要自己将此 css 转换为 sass
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-28
    • 2012-04-18
    • 2016-09-22
    • 2018-02-28
    • 2013-07-18
    相关资源
    最近更新 更多