CSS渐变动画度变化
CSS gradient animation degree change
我找到了这个代码笔,我想在悬停时将其应用于某个 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>
每当我将 codepen 中的“90deg”更改为“180deg”时,动画就会停止工作。
我摆弄了很多,但无法让它按预期工作。
我错过了什么?
感谢任何帮助。
目标是在 WP 中的动态元素上创建动画渐变叠加层。
类似这样:
你需要改变的不只是角度。您需要为 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
我找到了这个代码笔,我想在悬停时将其应用于某个 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>
每当我将 codepen 中的“90deg”更改为“180deg”时,动画就会停止工作。 我摆弄了很多,但无法让它按预期工作。
我错过了什么?
感谢任何帮助。
目标是在 WP 中的动态元素上创建动画渐变叠加层。 类似这样:
你需要改变的不只是角度。您需要为 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