如何使div的长度反向增长

比如现在要写一个动画效果,实现div的长度由100~200,一般我们都是用css3或者jquery里的animate方法,但是他们都是固定向右边伸长,有没有办法让他向左边伸长,我开始用的是在它增长长度的同时改变它的margin值,已达到向左增长的视觉效果,但是这样的动画台生硬,像transition里面的一些变化效果都体现不出来。
有没有什么办法来处理这个问题呢?

阅读 8.1k
7 个回答

这个要用布局来解决,如果右边没位置,就会向左边伸长

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title></title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        .box{
            position: absolute;
            right: 0;
            top: 0;
            width: 100px;
            height: 100px;
            transition: all 1s;
            background: red;
        }
        .box:hover{
            width: 200px;
        }
    </style>
</head>
<body>
    <div class="box"></div>
</body>

</html>

可以选择在修改width的同时设置transform: translateX() 来配合。。木有其他好的办法,考虑兼容性的话,marginLeft or left也都是可以的

左移,同时增加宽度

行内块元素 左对齐 就行

用定位,固定在右边某个位置,用后通过left让达到反向增长,float,行内元素加上父级右对齐属性也可以做到

如果是css3动画,给动画加上 transform-origin 属性试试

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题