2011-04-22 137 views
5

我想在我的网站徽标上使用CSS3悬停效果。很简单,对吧?它的工作原理,但不是我想要的方式。CSS3背景图像位置转换

Link to my logo

它的上半部分是常规状态,下半部分是:悬停状态。

我有用于更改背景位置的标准CSS:hover,但CSS3过渡将图像上下滑动并显示位置。相反,我希望它淡入淡出到新的位置。

这是可能的,当处理一个图像和两个位置,或者我将不得不做两个单独的图像(这是没有发生)?

+0

我想两项。 CSS3不是JS的替代品... – Blender 2011-04-22 23:20:16

+0

我不太了解什么你是否想要实现,你是否可以给出一个工作的例子(或者至少澄清一点 - 你想让你的图像只改变它的上半部分,或者你希望你的图像淡出和淡入一个新的图像) ? – Maverick 2011-04-22 23:47:29

+0

我做了一个页面来演示我的情况。 http://scferg.com/logoexamples.html – Sean 2011-04-23 02:30:39

回答

1

是的,它是可能的,但你不能用一个简单的过渡,你将不得不使用一个CSS动画与4个关键帧

0% - opacity 1 
49% - opacity 0 
50% - move to new position, opacity 0 
100% - opacity 1 
10

你不需要两个单独的图像,但你需要两个独立的元素来定位你的标志。

见真人版在这里:http://jsfiddle.net/BdY79/

.logo { 
    width: 282px; 
    height: 69px; 
    background: #fff url(http://scferg.com/wp-content/themes/austere/images/logo.png) 0 -69px no-repeat; 
    overflow: hidden; 
} 

.logo img { 
    background-color: #fff; 
    -webkit-transition: opacity 200ms ease; 
    -moz-transition: opacity 200ms ease; 
    -o-transition: opacity 200ms ease; 
} 

.logo img:hover { 
    opacity: 0; 
} 

在实践中,你可能要链接的标志,你可以使用标签来做到这一点,所以没有额外的标记。它也优雅地退化。