Javascript JQuery将填充添加到原始填充
这可能很简单,但我想不出来。 我想使用jquery将padding top添加到div中,这是对其原始padding top的补充。到目前为止,我的代码是: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会不断增加填充。
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包装器包装的?还是在另一个功能中?请发布更多显示Invovationtyalert
或console.log
headH
、mastPad
和mastPad+headH
的代码,以查看您正在做的事情。包括为什么此答案适用于用户的情况会很有帮助。