我正在尝试创建从白色背景到图像背景的过渡。这样,当观众在一个部分上空盘旋时,它会从平面变为风格。
这是我目前的代码:
div.camp {
background: #FFFFFF;
border: 1px solid #CCCCCC;
border-radius: 8px;
padding: 8px;
transition: all 1s linear 0s;
}
div.camp:hover {
background: #EFFFD5 url("http://www.alpinejosh.com/host/sp/images/camp.png");
background-position: center bottom;
background-repeat: repeat-x;
border: 1px solid #CECECE;
}
以下是此代码所在的页面:http://www.summitpost.org/eldorado-peak/150316#chapter_7
根据我的理解,很容易让背景颜色过渡。但似乎背景图像不支持过渡。
答案 0 :(得分:4)
不幸的是,您无法按照指定的方式在背景图像上使用转场。您可以看到W3C list of animation property types here。
您可以将白色背景放在顶部,然后在悬停时设置其不透明度动画(以显示下方的图像)。
代码示例
你显然可以让它变得更漂亮。我刚刚拼凑了一些东西给你一个想法。
div.camp {
border: 1px solid #CCCCCC;
background: #EFFFD5 url("http://www.alpinejosh.com/host/sp/images/camp.png");
background-position: center bottom;
background-repeat: repeat-x;
border-radius: 8px;
position: relative;
}
div.camp-overlay {
padding: 8px;
border-radius: 8px;
position: absolute;
z-index:50;
width: 100%;
height: 100%;
background:white;
-webkit-transition: all 1s ease-in-out;
-moz-transition: all 1s ease-in-out;
-o-transition: all 1s ease-in-out;
transition: all 1s ease-in-out;
}
div.camp-overlay:hover {
background: rgba(255,255,255,0); /* use opacity for older browsers*/
}
上述CSS的HTML
<div class="camp">
<div class="camp-overlay"></div>
</div>
以上的JSFiddle
答案 1 :(得分:1)
你可以做的是制作两个div元素,一个在另一个上面,并在悬停时淡出顶部div。
<div class="wrapper">
<div class="image"></div>
<div class="white-bg"></div>
</div>
.wrapper{position:relative;}
.image, .white-bg{position:absolute; top:0; left:0; width:100px; height:50px;}
.image{background:red;}
.white-bg{background:white; z-index:9999; -webkit-transition:opacity 0.3s linear; opacity:1;}
.white-bg:hover{opacity:0;}
应该有效 小提琴:http://jsfiddle.net/b46z8/5/