Javascript 为什么这个JS忽略了第四个保证金属性?

Javascript 为什么这个JS忽略了第四个保证金属性?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,浏览器的预期行为是将边距:-0px 0呈现为内联css。但每次都会错过最后一个值 如果将上述值更改为px 0,使其适用于顶部和底部,则可以工作 理想情况下,我只想为边距顶部应用负值。有更简单的方法吗?事实上,你的代码是有效的,你在内联css中看不到4个值的原因是写margin:10px 0 0相当于margin:10px 0 0,这只是浏览器优化你的css 如果只想写入margin top属性,只需执行以下操作: var parallax = document.querySelectorAll

浏览器的预期行为是将
边距:-0px 0
呈现为内联css。但每次都会错过最后一个值

如果将上述值更改为px 0,使其适用于顶部和底部,则可以工作


理想情况下,我只想为边距顶部应用负值。有更简单的方法吗?

事实上,你的代码是有效的,你在内联css中看不到4个值的原因是写
margin:10px 0 0
相当于
margin:10px 0 0
,这只是浏览器优化你的css

如果只想写入margin top属性,只需执行以下操作:

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;
        });
    };

如果您需要知道属性的名称,只需检查,在JavaScript中,名称通常会变成camelCase名称,如
marginTop
to
marginTop

也可以用同样的方式在css中使用3个值来编写。您不能命令dom解析如何处理这些值。浏览器之间也可能有所不同。因此,您建议如何动态更改此div上的margin top属性?对于border、margin等4向类型属性,访问所有值的唯一可靠方法是访问每个side属性。对于任何带有颜色的内容,浏览器也会根据返回的颜色值类型进行更改。在css中,十六进制值通常会从domnote返回rgb或rgba…我的最后一条评论仅指获取..未设置我获取一个
未捕获的引用错误:windowYOffset未定义
抱歉,更正了代码,我从小提琴上复制了错误的一个!这应该是
window.pageYOffset
后面的分号,对吗?
window.onscroll = function(){
        [].slice.call(parallax).forEach(function(el,i){
            var windowYOffset = "-" + window.pageYOffset;
            var elBackgrounPos = (windowYOffset * speed) + "px";
            el.style.marginTop = elBackgrounPos;
        });
    };