为什么JS遗漏了第四个边距属性
Why is this JS leaving out the fourth margin property?
var parallax = document.querySelectorAll(".slider-parallax"),
speed = 0.5;
window.onscroll = function(){
[].slice.call(parallax).forEach(function(el,i){
var windowYOffset = "-" + window.pageYOffset,
elBackgrounPos = (windowYOffset * speed) + "px 0 0 0";
el.style.margin = elBackgrounPos;
});
};
预期的行为是浏览器将margin: -0px 0 0 0
呈现为inline-css。但是最后一个值每次都会被忽略。
如果您将上面的值更改为仅px 0
,因此它适用于顶部和底部,它工作。
理想情况下,我只想为margin-top应用一个负值。有更简单的方法吗?
实际上,你的代码工作,你没有在inline-css中看到4个值的原因是写margin: 10px 0 0 0
相当于margin: 10px 0 0
,这只是浏览器优化你的css。
如果你只想写margin-top属性,只需这样做:
window.onscroll = function(){
[].slice.call(parallax).forEach(function(el,i){
var windowYOffset = "-" + window.pageYOffset;
var elBackgrounPos = (windowYOffset * speed) + "px";
el.style.marginTop = elBackgrounPos;
});
};
如果你需要知道属性的名称,只需检查MDN参考页面,在JavaScript中,名称通常变成驼峰式的,如margin-top
到marginTop
。
相关文章:
- MongoDB (php) - 以数组而不是多个属性的形式返回文档属性
- 如何在Racive中显示多个属性的总和
- Javascript获取具有不同id的文件数's来自没有多个属性的文件输入元素
- 使用 JavaScript 一次为一个元素设置多个属性
- Angular:如何使用ng选项进行四个单独的选择
- 如何基于多个属性筛选记录并获取计数
- 如何计算一个对象中五个属性中有多少是非null的
- 交换对象上两个属性的值
- 在JavaScriptES6中,如何从散列中只获取几个属性
- 按多个属性对多维数组进行排序
- 在 Javascript 或 D3 中选择多个属性
- 速度.js动画两个属性时持续时间不同
- 如何对对象的多个属性使用角度过滤器
- 有人知道如何使用highchart API实现三个或四个级别的动态下拉图吗
- 复制第一个属性's值,然后使用第一个属性的值创建新属性
- JQuery选择:两个属性's值不相等
- 使用相同的getter和setter创建多个属性
- 获取两个输入元素的值,并检查第三个元素的值.将值设置为第四个元素
- 如何在图像上添加标签.在jquerymobile中图像的四个角落
- 为什么JS遗漏了第四个边距属性