无法使用 js 将 css `top` 值更改为固定元素

一种__

尝试position:fixed通过更改top:javascript 中css 值来滚动滚动 div div 不会移动,但不知道为什么。

html:

<div id="red">
  <div id="blue"></div>
</div>

css:

#red {
  position: relative;
  float: left;
  width: 100%;
  height: 1000px;
  background: rgba(255, 0, 0, 0.2);
  border: solid 2px #f0f;
}

#blue {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 50vh;
  background: rgba(0, 0, 255, 0.2);
  border: solid 2px #0ff;
}

js:

window.addEventListener('scroll', function() {
  var yPos = -(Math.floor(document.body.scrollTop / 10));
  //console.log("yPos = " + yPos); //output is correct
  document.getElementById('blue').style.top = yPos + 'px';
  //document.getElementById('blue').setAttribute('top',yPos); //also tried this
});

https://jsfiddle.net/akzx43yL/

为什么topcss 值没有改变,我怎样才能做到这一点?请不要jquery。

黑曜石时代

两件事情:

  • 相反的document.documentElement.scrollTop,你应该使用window.pageYOffsetscrollTop没有在Chrome中发挥很好)。
  • 更新后需要添加计量单位top0应该px附加到它们的值。

这可以在以下内容中看到:

window.addEventListener('scroll', function() {
  var yPos = -(Math.floor(window.pageYOffset / 10));
  document.getElementById('blue').style.top = yPos + "px";

  // Optionally log the `top` value
  //console.log(document.getElementById('blue').style.top);
});
#red {
  position: relative;
  float: left;
  width: 100%;
  height: 1000px;
  background: rgba(255, 0, 0, 0.2);
  border: solid 2px #f0f;
}

#blue {
  position: absolute;
  top: -10px;
  left: 0;
  width: 100vw;
  height: 50vh;
  background: rgba(0, 0, 255, 0.2);
  border: solid 2px #0ff;
}
<div id="red">
  <div id="blue"></div>
</div>

希望这可以帮助!:)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用js将css位置更改为固定在创建的画布上

如何将CSS属性值更改为元素的值?

如何使用 jQuery 在单击按钮时将 CSS 自定义属性的值更改为 1?

无法使用CSS将块元素居中

将js对象中的所有值更改为0

如何将 jQuery css 样式更改为 vanilla JS

将html,js,css文件更改为单个文件组件

使用ToString方法将bool值更改为word

HTML SELECT-使用JavaScript将值更改为VALUE

无法将CSS更改应用于通过JS / JQuery动态创建的CSS

使用react将类更改为元素

JS - 当我将数组“a”的值更改为数组“b”的值时,“b”的值也会更改

如何使用 Top 和 Left CSS 属性将元素定位在图像上非常精确的像素处

使用CSS将Img Src更改为父A href

如何使用CSS将div的位置从水平更改为垂直?

如何使用CSS将尺寸更改为GtkWidget?

使用类活动Bootstrap将Li更改为CSS

Sublime Text可以将CSS文件的属性和值更改为每一行

CSS将px更改为%

将值更改为 int

将值更改为数字

使用 Alpine.js 将输入文本更改为大写

如何使用js将<svg>标签更改为<img>标签?

使用 JS 将样式更改为所有 HTML 集合

选中复选框后,无法使用JS将CSS应用于输入字段

无法使用Bootstrap CSS no JS将单选按钮从垂直排列到水平

无法将一个活动中设置的 int 值更改为另一活动

无法将外键的值更改为对象Django的外键

无法将分配的默认值更改为日期 angularjs 类型的输入