如何将整个 div 元素向上移动 x 个像素?

Posted

技术标签:

【中文标题】如何将整个 div 元素向上移动 x 个像素?【英文标题】:How to move an entire div element up x pixels? 【发布时间】:2011-11-01 10:13:33 【问题描述】:

我想将整个 div 及其内容重新定位大约 10-15 像素。

我该怎么做?

注意:这是滑块元素,所以当我单击按钮时,滑块会向下滑动。完成后,我想将其重新定位大约 15 像素。

【问题讨论】:

你应该提到它当前是否有任何定位CSS。这样你就可以改变它(例如使用 javascript)。 你考虑过position: relative; top: -15px;吗? 【参考方案1】:
$('#div_id').css(marginTop: '-=15px');

这将改变 id 为“div_id”的元素的 css

为了获得你想要的效果,我建议将上面的代码添加到动画中的回调函数中(这样动画完成后 div 会向上移动):

$('#div_id').animate(..., function () 
    $('#div_id').css(marginTop: '-=15px');
);

当然,您可以像这样对边距的变化进行动画处理:

$('#div_id').animate(marginTop: '-=15px');

这里是 jQuery 中.css() 的文档:http://api.jquery.com/css/

这里是 jQuery 中.animate() 的文档:http://api.jquery.com/animate/

【讨论】:

@Kira duration 参数可以在 properties 参数之后传递。它应该是一个整数,默认为400:api.jquery.com/animate 动画margin 属性是个坏主意,因为它会改变元素布局并导致回流。更好的主意是使用 transform-translate 属性来实现带有 CSS 过渡的动画。【参考方案2】:
$('div').css(
    position: 'relative',
    top: '-15px'
);

【讨论】:

【参考方案3】:

在 css 中将这个添加到元素中:

margin-top: -15px; /*for exact positioning */
margin-top: -5%; /* for relative positioning */

您可以使用其中任何一种来进行相应的定位。

【讨论】:

如果你只想使用 CSS,这个方法效果最好【参考方案4】:

你也可以这样做

margin-top:-30px; 
min-height:40px;

这个“帮助”可以阻止 div 把所有东西都拉高一点。

【讨论】:

以上是关于如何将整个 div 元素向上移动 x 个像素?的主要内容,如果未能解决你的问题,请参考以下文章

将滚动条位置移动 x 个像素

探讨移动端布局适配方案

div随鼠标移动

当从一个视图控制器传递到另一个视图时,视图向上移动 x 像素

CSS only:当宽度改变时向上移动 flexbox 的 2. item

如何将嵌套 div 向上移动两个 div 级别以匹配父级?