从下到上的文字颜色过渡效果
Text Color Transition Effect from Bottom to Top
我怎样才能让文本颜色从黑色变为红色,css 过渡效果(例如缓出)从底部到顶部达到特定的百分比高度?
我得到了一个值 - 假设是 50%。所以现在我想更改示例文本的文本颜色:示例从黑色变为红色,并带有 css 过渡效果。但是过渡效果应该从底部开始,然后继续到顶部(而不是像许多示例所展示的那样从左到右)。最后,文本 "example" 应该用黑色一半着色 - 从测试的底部到中间 (50%) 和一半用红色着色 - 从文本中间到顶部 (100%)。
嘿@Opa114 请看看我的代码笔来了解我是如何实现这个效果的 https://codepen.io/akinhwan/pen/JvmJpO
a {
font: 300 42px/1.5 "Helvetica Neue", sans-serif;
margin-left: 80px;
color: $main-color;
text-decoration: none;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-image: linear-gradient(
0deg,
$secondary-color,
$secondary-color 50%,
$main-color 50%);
background-size: 100% 200%;
background-position: 0% 0%;
}
a:hover {
transition: all 0.3s cubic-bezier(0.000, 0.000, 0.230, 1);
background-position: 100% 100%;
}
https://developer.mozilla.org/en-US/docs/Web/CSS/linear-gradient
background-size 和 background-position 在这里很重要,可以控制效果
制作效果的方法有很多,我建议为了更平滑的过渡,在背景中创建一个包含您想要使用的颜色的渐变,并将背景移动到只有您想要的颜色可见的位置。
h1{
font-size: 4em;
text-align: center;
color: transparent;
background-position-y: -0%;
background-image: linear-gradient( black, red, white, green );
-webkit-background-clip: text;
-moz-background-clip: text;
transition: background 1400ms ease;
background-size: auto 400%;
}
h1.deg1{
background-position-y: -100%;
}
h1.deg2{
background-position-y: -200%;
}
h1.deg3{
background-position-y: -300%;
}
<h1 id="prueba"> Hola Mundo</h1>
<button onclick="document.getElementById('prueba').className='deg1'"> Cambiar 1 </button>
<button onclick="document.getElementById('prueba').className='deg2'"> Cambiar 2 </button>
<button onclick="document.getElementById('prueba').className='deg3'"> Cambiar 2 </button>
我怎样才能让文本颜色从黑色变为红色,css 过渡效果(例如缓出)从底部到顶部达到特定的百分比高度?
我得到了一个值 - 假设是 50%。所以现在我想更改示例文本的文本颜色:示例从黑色变为红色,并带有 css 过渡效果。但是过渡效果应该从底部开始,然后继续到顶部(而不是像许多示例所展示的那样从左到右)。最后,文本 "example" 应该用黑色一半着色 - 从测试的底部到中间 (50%) 和一半用红色着色 - 从文本中间到顶部 (100%)。
嘿@Opa114 请看看我的代码笔来了解我是如何实现这个效果的 https://codepen.io/akinhwan/pen/JvmJpO
a {
font: 300 42px/1.5 "Helvetica Neue", sans-serif;
margin-left: 80px;
color: $main-color;
text-decoration: none;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-image: linear-gradient(
0deg,
$secondary-color,
$secondary-color 50%,
$main-color 50%);
background-size: 100% 200%;
background-position: 0% 0%;
}
a:hover {
transition: all 0.3s cubic-bezier(0.000, 0.000, 0.230, 1);
background-position: 100% 100%;
}
https://developer.mozilla.org/en-US/docs/Web/CSS/linear-gradient background-size 和 background-position 在这里很重要,可以控制效果
制作效果的方法有很多,我建议为了更平滑的过渡,在背景中创建一个包含您想要使用的颜色的渐变,并将背景移动到只有您想要的颜色可见的位置。
h1{
font-size: 4em;
text-align: center;
color: transparent;
background-position-y: -0%;
background-image: linear-gradient( black, red, white, green );
-webkit-background-clip: text;
-moz-background-clip: text;
transition: background 1400ms ease;
background-size: auto 400%;
}
h1.deg1{
background-position-y: -100%;
}
h1.deg2{
background-position-y: -200%;
}
h1.deg3{
background-position-y: -300%;
}
<h1 id="prueba"> Hola Mundo</h1>
<button onclick="document.getElementById('prueba').className='deg1'"> Cambiar 1 </button>
<button onclick="document.getElementById('prueba').className='deg2'"> Cambiar 2 </button>
<button onclick="document.getElementById('prueba').className='deg3'"> Cambiar 2 </button>