html - 通过 CSS 变换移动父级后,保持子级位置相同

标签 html css transform css-animations

是否有可能将子级带出其转换后的父级流程之外?简单的例子如下:

HTML:

<div class="parent">
    <div class="child"></div>
</div>
<a href="#" id="button">Move parent</a>

CSS:

.parent {
    background: red;
    height: 200px;
    position: relative;
    transition: 0.5s ease-in-out;
    width: 200px;
}

.child {
    background: black;
    height: 100px;
    left: 0;
    top: 0;
    position: absolute;
    width: 100px;
}

.moved {
    transform: translateX(100px);
}

Javascript:

$('#button').on('click', function(e) {
    e.preventDefault();
    console.log('test');
    $('.parent').toggleClass('moved');
});

JSFiddle:http://jsfiddle.net/ous3s873/1/

非常简单的东西。基本上,使用 CSS 变换将父级(红色框)向右移动 100px。我想要的输出是,当父级在其后面移动时,子级(黑匣子)将保持在同一位置。

最佳答案

一个选项是向子元素添加一个负的 translateX 以使其保持在其位置:

<强> Updated Demo

.moved .child {
    transform: translateX(-100px);
}

关于html - 通过 CSS 变换移动父级后,保持子级位置相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25775539/

相关文章:

javascript - Vue 自定义指令使用更新的 Dom(或 $el)

opencv - 具有外部跟踪的 AR - 对齐错误,值正确

css - React Native 转换原点

java - 将 HTML 转换为 PDF 并将其添加到段落中

javascript - 使用 jQuery 检索复选框值

html - 图像下方的颜色条出现

javascript - 如何根据 body 高度动态更改元素 margin-top

javascript - Bootstrap carousel 滑动时滑动高度变化bug

javascript - 使用 javascript 添加 CSS 样式

jquery - CSS3 在动画元素上旋转导致点击事件不调用