【问题标题】:CSS gradient animation degree changeCSS渐变动画度数变化
【发布时间】:2021-05-29 03:33:46
【问题描述】:

我找到了这个代码笔,我想在悬停时将其应用于某个 HTML 元素。 工作正常,但我想将运动从水平更改为垂直。

/* <- Demo Stuff Start */

body{
  font-family: 'Montserrat', sans-serif;
  margin:0;
}

.container {
  display: flex;
  align-items: center;
  align-content: center;
  flex-wrap: wrap;
  width: 80vw;
  margin: 0 auto;
  min-height: 100vh;
}
.btn {
  flex: 1 1 auto;
  margin: 10px;
  padding: 30px;
  text-align: center;
  text-transform: uppercase;
  transition: 0.5s;
  background: linear-gradient(90deg, var(--c1, #f6d365), var(--c2, #fda085) 51%, var(--c1, #f6d365)) var(--x, 0)/ 200%;
  color: white;
 /* text-shadow: 0px 0px 10px rgba(0,0,0,0.2);*/
  box-shadow: 0 0 20px #eee;
  border-radius: 10px;
 }

/* Demo Stuff End -> */

/* <- Magic Stuff Start */

.btn:hover { --x: 100%; }

.btn-1 {
  --c1: #f6d365;
  --c2: #fda085;
}

.btn-2 {
  --c1: #fbc2eb;
  --c2: #a6c1ee;
}

.btn-3 {
  --c1: #84fab0;
  --c2: #8fd3f4;
}

.btn-4 {
  --c1: #a1c4fd;
  --c2: #c2e9fb;
}

.btn-5 {
  --c1: #ffecd2;
  --c2: #fcb69f;
}

/* Magic Stuff End -> */
<div class="container">
  <a class="btn btn-1">Hover me</a>
  <a class="btn btn-2">Hover me</a>
  <a class="btn btn-3">Hover me</a> 
  <a class="btn btn-4">Hover me</a> 
  <a class="btn btn-5">Hover me</a>
</div>

每当我将代码笔中的“90 度”更改为“180 度”时,动画就会停止工作。 我摆弄了很多,但无法按预期工作。

我错过了什么?

感谢任何帮助。

目标是在 WP 中的动态元素上创建动画渐变叠加。 类似这样:

【问题讨论】:

    标签: html css animation


    【解决方案1】:

    你需要改变的不仅仅是角度。您需要为 Y 位置设置动画并设置高度200%

    /* <- Demo Stuff Start */
    
    body{
      font-family: 'Montserrat', sans-serif;
      margin:0;
    }
    
    .container {
      display: flex;
      align-items: center;
      align-content: center;
      flex-wrap: wrap;
      width: 80vw;
      margin: 0 auto;
      min-height: 100vh;
    }
    .btn {
      flex: 1 1 auto;
      margin: 10px;
      padding: 30px;
      text-align: center;
      text-transform: uppercase;
      transition: 0.5s;
      background: linear-gradient(180deg, var(--c1, #f6d365), var(--c2, #fda085) 51%, var(--c1, #f6d365)) 0 var(--y, 0)/100% 200%;
      color: white;
     /* text-shadow: 0px 0px 10px rgba(0,0,0,0.2);*/
      box-shadow: 0 0 20px #eee;
      border-radius: 10px;
     }
    
    /* Demo Stuff End -> */
    
    /* <- Magic Stuff Start */
    
    .btn:hover { --y: 100%; }
    
    .btn-1 {
      --c1: #f6d365;
      --c2: #fda085;
    }
    
    .btn-2 {
      --c1: #fbc2eb;
      --c2: #a6c1ee;
    }
    
    .btn-3 {
      --c1: #84fab0;
      --c2: #8fd3f4;
    }
    
    .btn-4 {
      --c1: #a1c4fd;
      --c2: #c2e9fb;
    }
    
    .btn-5 {
      --c1: #ffecd2;
      --c2: #fcb69f;
    }
    
    /* Magic Stuff End -> */
    <div class="container">
      <a class="btn btn-1">Hover me</a>
      <a class="btn btn-2">Hover me</a>
      <a class="btn btn-3">Hover me</a> 
      <a class="btn btn-4">Hover me</a> 
      <a class="btn btn-5">Hover me</a>
    </div>

    为了确保它在这两种情况下都能正常工作,您可以执行以下操作:

    /* <- Demo Stuff Start */
    
    body{
      font-family: 'Montserrat', sans-serif;
      margin:0;
    }
    
    .container {
      display: flex;
      align-items: center;
      align-content: center;
      flex-wrap: wrap;
      width: 80vw;
      margin: 0 auto;
      min-height: 100vh;
    }
    .btn {
      flex: 1 1 auto;
      margin: 10px;
      padding: 30px;
      text-align: center;
      text-transform: uppercase;
      transition: 0.5s;
      background: linear-gradient(var(--a,180deg), var(--c1, #f6d365), var(--c2, #fda085) 51%, var(--c1, #f6d365)) var(--y, 0) var(--y, 0)/200% 200%;
      color: white;
     /* text-shadow: 0px 0px 10px rgba(0,0,0,0.2);*/
      box-shadow: 0 0 20px #eee;
      border-radius: 10px;
     }
    
    /* Demo Stuff End -> */
    
    /* <- Magic Stuff Start */
    
    .btn:hover { --y: 100%; }
    
    .btn-1 {
      --c1: #f6d365;
      --c2: #fda085;
    }
    
    .btn-2 {
      --c1: #fbc2eb;
      --c2: #a6c1ee;
      --a:90deg;
    }
    
    .btn-3 {
      --c1: #84fab0;
      --c2: #8fd3f4;
    }
    
    .btn-4 {
      --c1: #a1c4fd;
      --c2: #c2e9fb;
      --a:90deg;
    }
    
    .btn-5 {
      --c1: #ffecd2;
      --c2: #fcb69f;
    }
    
    /* Magic Stuff End -> */
    <div class="container">
      <a class="btn btn-1">Hover me</a>
      <a class="btn btn-2">Hover me</a>
      <a class="btn btn-3">Hover me</a> 
      <a class="btn btn-4">Hover me</a> 
      <a class="btn btn-5">Hover me</a>
    </div>

    相关:Using percentage values with background-position on a linear-gradient

    【讨论】:

      猜你喜欢
      • 2020-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-19
      • 2021-12-28
      • 2016-03-19
      相关资源
      最近更新 更多