javascript - 应用位置固定时元素改变位置

标签 javascript css

当我使用 Javascript 应用 position: fixed 时,我的元素向下移动几个像素并固定在另一个位置,向下一些像素,而不是仅仅停留在原来的位置。

这是为什么?

// html
<div id="container">
    <div id="myDiv"></div>
</div>

// CSS
#container {
    height: 2000px;
}
#myDiv {
    margin-top: 50px;
    width: 100px;
    height: 50px;
    background-color: #88a;
}

// Javascript
myDiv.style.position = 'fixed';

我至少在 Chrome 和 FF 中发现了这种行为。

http://jsfiddle.net/bSM8h/

最佳答案

当你应用 position:fixed 时,还要:

pin.addEventListener('click', function () {
    myDiv.style.position = 'fixed';
    myDiv.style.top = '50px';
    myDiv.style.marginTop = '0';
});

http://jsfiddle.net/bSM8h/2/

*编辑*

默认情况下浏览器执行body{padding:5px;} 这就是为什么一个好主意是html5boilerplate your css's

*结束编辑*

出于某种原因(see explanation here) , margin-top 也插入了容器。应用 position:fixed 后,容器会弹回页面顶部(失去边距)并位于距页面顶部 5px 的位置。

position:fixed 之前

enter image description here

position:fixed 之后

enter image description here

关于javascript - 应用位置固定时元素改变位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23319889/

相关文章:

javascript - 如何检查我网站上另一个框架的 URL 是否包含给定字符串?

javascript - JavaScript 中的子像素抗锯齿 Canvas 像素移位算法

html - 如何使某个符号在视口(viewport)断点处消失?

html - CSS 一个类忽略另一个

javascript - JQuery 在鼠标点击位置定位一个元素

javascript - window.open 在新的弹出窗口中打开,而不是在新选项卡中打开

javascript - 为什么我的 JQuery 运行缓慢?

php - 从页面 url 获取页面描述而不减慢页面加载

html - 2 栏网站布局与完整的背景幻灯片或视频

css - Extjs - 当使用 extjs 进行数据验证失败时,在文本字段中动态添加警告图像