Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JQuery将填充添加到原始填充_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript JQuery将填充添加到原始填充

Javascript JQuery将填充添加到原始填充,javascript,jquery,html,css,Javascript,Jquery,Html,Css,这可能很简单,但我想不出来。 我想使用jquery将padding top添加到div中,这是对其原始padding top的补充。到目前为止,我的代码是: var headH = $('#header').outerHeight(); var mastPad = $('#masthead').css('padding-top'); $('#masthead').css('padding-top', mastPad + headH); 我认为这会导致大量的填充,因为JQuery会不断增加填充。

这可能很简单,但我想不出来。 我想使用jquery将padding top添加到div中,这是对其原始padding top的补充。到目前为止,我的代码是:

var headH = $('#header').outerHeight();
var mastPad = $('#masthead').css('padding-top');
$('#masthead').css('padding-top', mastPad + headH);
我认为这会导致大量的填充,因为JQuery会不断增加填充。我需要找到一种方法,抓住原来的填充顶部,然后添加到它

谢谢

$(“#报头”).css('padding-top')
返回一个字符串,而不是一个数字,因此可能是
headH
被附加到该字符串,而不是添加到其数值

也许:

$('#masthead').css('padding-top', parseInt(mastPad, 10) + headH);
parseInt
将解析它能找到的内容,然后忽略其余内容。因此
“42px”
变成
42
(而使用一元
+
数字将阻塞px部分)

下面是一个独立的示例,在Chrome上用
with
div而不是
with
div复制了我的问题:

setTimeout(函数(){
var-top;
var$无=$(“#无”);
top=$without.css(“padding top”);
log(“top=[“+top+”](type:“+typeof top+”));
$without.css(“padding top”,top+100);
变量$with=$(“#with”);
top=parseInt($with.css(“padding top”),10);
log(“top=[“+top+”](type:“+typeof top+”));
$with.css(“填充顶部”,顶部+100);
snippet.log(“更新”);
}, 2000);
div{
填充顶部:20px;
边框:1px实心#888;
}

我们将更新此div而不使用
parseInt
我们将使用
parseInt

outerHeight包括顶部、底部填充和边框。

您可以将该变量存储在全局上下文中,然后防止其递增,如下所示:

var originalPad;
var ranOnce = false;
function GrowPadding() {
   var headH = $('#header').outerHeight();
   if(!ranOnce) {
      mastPad = parseInt($('#masthead').css('padding-top'), 10);
      ranOnce = true;
   }
   $('#masthead').css('padding-top', mastPad + headH);
}

你打过多次电话吗?如果没有“原始填充物”,你需要将其储存起来。哎呀,对不起,我不知道你的意思@epascarello我想我只是叫它一次。它是如何继续生长的?另外,您没有从值中删除px/%/em。我假设这是用onload包装器包装的?还是在另一个功能中?请发布更多显示Invovationty
alert
console.log
headH
mastPad
mastPad+headH
的代码,以查看您正在做的事情。包括为什么此答案适用于用户的情况会很有帮助。