我正在使用以下代码在悬停时显示隐藏的div。我正在使用CSS transition
属性来淡入隐藏的div。是否可以在隐藏(例如从左到右)div中滑动而不是仅使用CSS淡入?
这是我的代码:
HTML
<div class="box">
<a href="#"><img src="http://farm9.staticflickr.com/8207/8275533487_5ebe5826ee.jpg"></a>
<div class="hidden"></div>
</div>
CSS
.box{
position: relative;
}
.box .hidden{
background: yellow;
height: 300px;
position: absolute;
top: 0;
left: 0;
width: 500px;
opacity: 0;
transition: all 1s ease;
}
.box:hover .hidden{
opacity: 1;
}
答案 0 :(得分:26)
这样的东西?
我使用的代码:
.box{
position: relative;
overflow: hidden;
}
.box:hover .hidden{
left: 0px;
}
.box .hidden {
background: yellow;
height: 300px;
position: absolute;
top: 0;
left: -500px;
width: 500px;
opacity: 1;
-webkit-transition: all 0.7s ease-out;
-moz-transition: all 0.7s ease-out;
-ms-transition: all 0.7s ease-out;
-o-transition: all 0.7s ease-out;
transition: all 0.7s ease-out;
}
我还可以补充说,可以使用transform: translate();
移动元素,在这种情况下可以使用DEMO nr2
答案 1 :(得分:3)
我添加了供应商前缀,并将动画更改为all
,因此您可以同时设置动画的不透明度和宽度。
这是你要找的吗? http://jsfiddle.net/u2FKM/3/
答案 2 :(得分:3)
只是为了添加我的答案,似乎转换需要基于css属性中的初始值和最终值才能管理动画。
那些重写的css类应该提供预期的结果:
.box{
position: relative;
top:0px;
left:0px;
width:0px;
}
.box:hover .hidden{
opacity: 1;
width: 500px;
}
.box .hidden{
background: yellow;
height: 300px;
position: absolute;
top: 0px;
left: 0px;
width: 0px;
opacity: 0;
transition: all 1s ease;
}
<div class="box">
<a href="#">
<img src="http://farm9.staticflickr.com/8207/8275533487_5ebe5826ee.jpg"></a>
<div class="hidden"></div>
</div>
答案 3 :(得分:2)
transition-property:width;
这应该有效。你必须有浏览器相关的代码
答案 4 :(得分:1)
这对您来说可能是一个很好的解决方案:更改代码就像这一点变化
.box{
position: relative;
}
.box:hover .hidden{
opacity: 1;
width:500px;
}
.box .hidden{
background: yellow;
height: 334px;
position: absolute;
top: 0;
left: 0;
width: 0;
opacity: 0;
transition: all 1s ease;
}
请参阅demo here
答案 5 :(得分:-2)
是可以的,但不是所有浏览器都支持。
请参阅w3schools