css - Sprite 淡入淡出不适用于 CSS

标签 css sprite fade

我正在创建 Logo 淡入淡出,因此悬停时 Logo 的颜色会从白色逐渐变为蓝色。图片文件为 289 像素 x 165 像素,这是一张图片中两个 Logo 的大小,位于另一张图片的正下方。

我在其他网站上使用过这个模板,但由于某种原因这次无法使​​用。由于声誉原因,我无法发布实际 Logo 。

<div id="logo"> <a href="#home"> <span> </span> </a> </div>

#logo a {
display:inline-block;
height: 298px;
width:165px;
background-image: url(../images/logo-sprite.jpg);
float:left;

#logo span{ 
display: inline-block;
height: 298px;
width:165px;
background-image: url(../images/logo-sprite.jpg);
background-position: 0 298px;
-webkit-transition:opacity background-position 1s ease;
-moz-transition:opacity background-position 1s ease;
-o-transition:opacity background-position 1s ease;
transition: background-position 1s ease;

#logo span:hover{
opacity: 1;

最佳答案

您当前正在为不透明度更改添加过渡。因此,要为背景图像添加过渡效果,您需要添加以下内容: <罢工>

<罢工>
-webkit-transition:background-position 1s ease;
-moz-transition:background-position 1s ease;
-o-transition:background-position 1s ease;
transition: background-position 1s ease;

<罢工> 更新 以上答案确实会显示背景图片幻灯片。 要解决这个问题:

#logo span 上设置背景图片的位置而不是在悬停事件期间。

改变这个:

background-position: 0 0;

对此:

background-position: 0 298px;

那么hover时就不用设置背景位置了,应该是这样的:

#logo span:hover {
  opacity: 1;
}

更新 去除背景位置过渡

来自

-webkit-transition:opacity background-position 1s ease;
-moz-transition:opacity background-position 1s ease;
-o-transition:opacity background-position 1s ease;
transition: background-position 1s ease;

收件人:

-webkit-transition:opacity 1s ease;
-moz-transition:opacity 1s ease;
-o-transition:opacity 1s ease;
transition: opacity 1s ease;

Working sample code

关于css - Sprite 淡入淡出不适用于 CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30063555/

相关文章:

javascript - .style 在 JS 中不起作用

animation - css3动画(逐帧)

html - 带有 Sprite 图像的 Div

list - CSS3 列表菜单淡入淡出过渡不起作用

javascript - Raphael.js - 我可以使用带有淡入淡出效果的 .show/.hide 吗?

javascript - 当有一组 div 时使用 fadeToggle + 淡出所有其他内容

html - 无法在下拉菜单中定位内容

css - jQueryUI - 在 "stop"事件执行后可拖动重置 z-index

css - Chrome 错误?鼠标按下 + 移动时光标变化

html - CSS Sprite 翻转显示垂直而不是水平