【问题标题】:CSS3 Fade EffectCSS3 淡入淡出效果
【发布时间】:2011-03-05 23:49:51
【问题描述】:
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 中更改什么?

谢谢!

【问题讨论】:

    标签: css fade css-transitions


    【解决方案1】:

    您无法在两个背景图像之间转换,因为浏览器无法知道您要插入什么。正如您所发现的,您可以转换背景位置。如果您希望图像在鼠标悬停时淡入,我认为使用 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);
    }
    

    【讨论】:

    【解决方案2】:

    有可能,使用下面的结构:

    <li><a><span></span></a></li>
    <li><a><span></span></a></li>
    

    等等……

    &lt;li&gt; 包含一个 &lt;a&gt; 锚标记,其中包含如上所示的跨度。然后插入以下css:

    • LI 得到position: relative;
    • 给&lt;a&gt;标签一个height,width
    • 将&lt;span&gt; width & height 设置为 100%,以便 &lt;a&gt; 和 &lt;span&gt; 具有相同的尺寸
    • &lt;a&gt; 和 &lt;span&gt; 都得到 position: relative;。
    • 为每个元素分配相同的背景图片
    • &lt;a&gt; 标记将具有“OFF”background-position,&lt;span&gt; 将具有“ON”background-poisiton。
    • 对于“关闭”状态,使用不透明度 0 表示 &lt;span&gt;
    • 对于“开启”:hover 状态,&lt;span&gt; 使用不透明度 1
    • 在&lt;span&gt; 元素上设置-webkit 或-moz 过渡

    您将能够使用过渡效果,同时仍默认使用旧的 background-position 交换。不要忘记插入 IE alpha 过滤器。

    【讨论】:

      【解决方案3】:

      滚动效果是通过在 CSS 中指定通用的“背景”属性而不是更具体的背景图像引起的。通过设置背景属性,动画会在所有属性之间进行过渡..Background-Color, Background-Image, Background-Position.. 等从而产生滚动效果..

      例如

      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;
      }
      

      【讨论】:

      • 很棒的提示!我正在对应用了“封面”属性的背景图像进行动画处理。当图像被调整到 div 中时,会出现奇怪的收缩效果。可能更多地与被“动画”成“封面”最终状态的图像的原始尺寸有关。
      猜你喜欢
      • 1970-01-01
      • 2013-01-13
      • 2013-04-01
      • 2011-10-16
      • 2012-09-08
      • 1970-01-01
      • 1970-01-01
      • 2011-01-01
      • 2014-07-20
      相关资源
      最近更新 更多