将元素从当前位置过渡到视口中心?

Posted

技术标签:

【中文标题】将元素从当前位置过渡到视口中心?【英文标题】:Transitioning an element from its current position to the center of the viewport? 【发布时间】:2015-07-03 16:04:59 【问题描述】:

将元素从当前位置转移到视口中心?

这基本上就是我要问的。

我希望 elem 从页面上的任何位置平滑地移动到图像的中心,使用复选框之类的东西在状态之间切换。

我真的很想用纯 CSS 来做这件事。能做到吗?

【问题讨论】:

请提供可修改的示例 html 和 CSS 代码以实现此目标。像这样的问题需要更多上下文才能提供答案。 codepen.io/mildrenben/pen/MwYgVY 当你点击小猪时,它会摇晃到给定的位置,我该如何平滑过渡? 【参考方案1】:

http://codepen.io/anon/pen/LVEYZm

试试这样的。问题是您没有在默认状态下指定transformtopleft,因此CSS 转换不知道如何在切换检查时从未定义状态计算到已定义状态。

img 
    width: 400px;
    position: absolute;
    transition: all 0.3s ease;
    /* these need to be specified as well */
    top: 0;
    left: 100px;
    transform: translate(0, 0);


input:checked 
    + label 
        img 
            /* since they're the values being transitioned */
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
        
    

【讨论】:

感谢您的评论,但我已经知道了(并不是说听起来像个混蛋)。我想要那个结果,但不必指定顶部和左侧。 @mildrenben - 为什么要求不指定顶部和左侧?如果您已经知道它应该在您的问题中。 @mildrenben 你的请求是不可能的,使用纯 CSS。也许你应该问一个关于这个的新问题,请求一个 javascript 解决方案,限制是 topleft 在初始 CSS 状态中没有定义。同时,我对您最初问题的回答实际上是正确的,应该被接受。

以上是关于将元素从当前位置过渡到视口中心?的主要内容,如果未能解决你的问题,请参考以下文章

2D变换过渡不适用于IE11中的VW和VH单元

当父级处于悬停状态时CSS过渡子级

div中心的CSS过渡宽度和高度

移动和扩展图像以填充视口过渡

过渡到 iOS 7:在 iPad 上查看的 jQuery/iPhone Web 应用程序的正确视口设置

动画过渡没有从正确的位置开始