用CSS过渡移动div

时间:2012-12-20 09:03:32

标签: html css css3

我正在使用以下代码在悬停时显示隐藏的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;
}

演示: http://jsfiddle.net/u2FKM/

6 个答案:

答案 0 :(得分:26)

这样的东西?

DEMO

我使用的代码:

.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>

http://jsfiddle.net/u2FKM/2199/

答案 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