今天我在使用一些css3,主要是转换。
我想要实现的是,当鼠标悬停在安莉元素上时,背景将从左到右填充不同的颜色,理想情况下,我希望能够填充一半或所有的颜色。我已经创建了一个jsfiddle
我是否需要使用属性
-vendor-prefix transition 有人能给我一些实现这一点的建议吗?
谢谢
发布于 2013-06-20 19:28:37
你需要做的事情是使用线性渐变作为背景,并动画背景位置。在代码中:
使用线性渐变(50%红色,50%蓝色),告诉浏览器背景比元素的宽度大2倍(宽度:200%,高度:100%),然后告诉它将背景定位在左侧。
background: linear-gradient(to right, red 50%, blue 50%);
background-size: 200% 100%;
background-position:left bottom;在悬停时,将背景位置更改为right bottom,并使用transition:all 2s ease;,位置将逐渐改变(使用linear tough会更好)背景位置:右下角;
http://jsfiddle.net/75Umu/3/
至于-prefix前缀,请参阅您问题的注释
如果你希望在颜色上有一个“过渡”,你可以使它的宽度为300%,并使过渡开始于34% (略高于1/3),结束于65% (略小于2/3)。
background: linear-gradient(to right, red 34%, blue 65%);
background-size: 300% 100%;演示:
div {
font: 22px Arial;
display: inline-block;
padding: 1em 2em;
text-align: center;
color: white;
background: red; /* default color */
/* "to left" / "to right" - affects initial color */
background: linear-gradient(to left, salmon 50%, lightblue 50%) right;
background-size: 200%;
transition: .5s ease-out;
}
div:hover {
background-position: left;
}<div>Hover me</div>
发布于 2016-04-21 21:18:57
在hover上只需一段css代码就可以做到这一点:box-shadow: inset 100px 0 0 0 #e0e0e0;
完整的演示可以在我的小提琴中找到:
发布于 2017-12-18 01:10:02
如果你像我一样,需要改变文本本身的颜色,同时填充背景颜色,请检查我的解决方案。
创建步骤:
的地方添加溢出隐藏
这个解决方案的好处是:
仅使用transform
这个解决方案不是很好:
检查笔-> https://codepen.io/nikolamitic/pen/vpNoNq
<button class="btn btn--animation-from-right">
<span class="btn__text-static">Cover left</span>
<div class="btn__text-dynamic">
<span class="btn__text-dynamic-inner">Cover left</span>
</div>
</button>
.btn {
padding: 10px 20px;
position: relative;
border: 2px solid #222;
color: #fff;
background-color: #222;
position: relative;
overflow: hidden;
cursor: pointer;
text-transform: uppercase;
font-family: monospace;
letter-spacing: -1px;
[class^="btn__text"] {
font-size: 24px;
}
.btn__text-dynamic,
.btn__text-dynamic-inner {
display: flex;
justify-content: center;
align-items: center;
position: absolute;
top:0;
left:0;
right:0;
bottom:0;
z-index: 2;
transition: all ease 0.5s;
}
.btn__text-dynamic {
background-color: #fff;
color: #222;
overflow: hidden;
}
&:hover {
.btn__text-dynamic {
transform: translateX(-100%);
}
.btn__text-dynamic-inner {
transform: translateX(100%);
}
}
}
.btn--animation-from-right {
&:hover {
.btn__text-dynamic {
transform: translateX(100%);
}
.btn__text-dynamic-inner {
transform: translateX(-100%);
}
}
}如果要向左设置动画,可以删除.btn--animation-from-right修改器。
https://stackoverflow.com/questions/17212094
复制相似问题