CSS3渐变效果
问题描述:
a {
float: left;
width: 32px;
height: 32px;
text-align: left;
text-indent:-9999px;
background: url('../img/button.png') no-repeat 0 0;
-webkit-transition: background 300ms ease-in 2s; /* property duration timing-function delay */
-moz-transition: background 300ms ease-in 2s;
-o-transition: background 300ms ease-in 2s;
transition: background 300ms ease-in 2s;
-webkit-transition-property: background;
-webkit-transition-duration: 300ms;
-webkit-transition-timing-function: ease-in;
-webkit-transition-delay: 100ms;
-moz-transition-property: background;
-moz-transition-duration: 300ms;
-moz-transition-timing-function: ease-in;
-moz-transition-delay: 100ms;
-o-transition-property: background;
-o-transition-duration: 300ms;
-o-transition-timing-function: ease-in;
-o-transition-delay: 100ms;
transition-property: background;
transition-duration: 300ms;
transition-timing-function: ease-in;
transition-delay: 100ms;
}
a:hover {
background:position: 0 -32px;
}
。目前有向上/向下滚动的效果,但我希望背景与淡入淡出效果改变,我应该在CSS改变?CSS3渐变效果
谢谢!
答
您无法在两个背景图片之间切换,因为浏览器无法知道您要插入的内容。正如您发现的那样,您可以转换背景位置。如果您希望图片在鼠标上淡入,我认为使用CSS转换的最佳方式是将图片放在包含元素上,然后在背景颜色上对链接本身设置透明度:
span {
background: url(button.png) no-repeat 0 0;
}
a {
width: 32px;
height: 32px;
text-align: left;
background: rgb(255,255,255);
-webkit-transition: background 300ms ease-in 200ms; /* property duration timing-function delay */
-moz-transition: background 300ms ease-in 200ms;
-o-transition: background 300ms ease-in 200ms;
transition: background 300ms ease-in 200ms;
}
a:hover {
background: rgba(255,255,255,0);
}
答
这是可能的,使用下面的结构:
<li><a><span></span></a></li>
<li><a><span></span></a></li>
等等
凡<li>
包含包含跨度如上图所示的<a>
锚标记。然后插入下面的CSS:
- 李得到
position: relative;
- 给
<a>
标签height
,width
- 集
<span>
width
&height
到100%,这样既<a>
和<span>
具有相同的尺寸 - 两个
<a>
和<span>
得到position: relative;
。 - 分配相同的背景图像的每个元素
-
<a>
标签将具有“OFF”background-position
,并且<span>
将具有“ON”background-poisiton
。 - 为 'OFF' 状态使用不透明度为0
<span>
- 为 'ON'
:hover
状态使用不透明1<span>
- 设置
<span>
元素的-webkit
或-moz
过渡
你必须在仍旧违约旧版background-position
交换时使用过渡效果的能力。不要忘记插入IE alpha过滤器。
答
滚动效果是通过在css中指定通用的“背景”属性而不是更具体的背景图像引起的。通过设置背景属性,动画将在所有属性之间转换。背景颜色,背景图像,背景位置..等因此造成滚动效果。
例如,
a {
-webkit-transition-property: background-image 300ms ease-in 200ms;
-moz-transition-property: background-image 300ms ease-in 200ms;
-o-transition-property: background-image 300ms ease-in 200ms;
transition: background-image 300ms ease-in 200ms;
}
+0
伟大的小费!我在应用了'cover'属性的背景图片上进行动画处理。奇怪的收缩效果正在显示,因为图像被调整到div中。可能更多的是将图像的原始尺寸“动画化”为“封面”最终状态。 – 2015-10-16 02:06:50
这里是属性的列表,可以转变:http://www.w3.org/TR/css3-transitions/#properties-from-css- – crispy 2011-08-23 12:10:16