Mal*_*yev 205 javascript css jquery
jQuery有height()en width()函数,以像素为单位返回高度或宽度...
如何使用jQuery 获取元素的填充或边距值(以像素为单位)和整数?
我的第一个想法是做以下事情:
var padding = parseInt(jQuery("myId").css("padding-top"));
Run Code Online (Sandbox Code Playgroud)
但是,如果在ems中给出填充,例如,我如何获得以像素为单位的值?
查看Chris Pebble建议的JSizes插件,我意识到我自己的版本是正确的:).jQuery总是以像素为单位返回值,因此只需将其解析为整数即可.
感谢Chris Pebble和Ian Robinson
Ian*_*son 226
您应该能够使用CSS(http://docs.jquery.com/CSS/css#name).您可能必须更具体,例如"padding-left"或"margin-top".
例:
CSS
a, a:link, a:hover, a:visited, a:active {color:black;margin-top:10px;text-decoration: none;}
Run Code Online (Sandbox Code Playgroud)
JS
$("a").css("margin-top");
Run Code Online (Sandbox Code Playgroud)
结果是10px.
如果要获取整数值,可以执行以下操作:
parseInt($("a").css("margin-top"))
Run Code Online (Sandbox Code Playgroud)
svi*_*nto 78
比较外部和内部高度/宽度以获得总边距和填充:
var that = $("#myId");
alert(that.outerHeight(true) - that.innerHeight());
Run Code Online (Sandbox Code Playgroud)
gui*_*ouz 35
parseInt函数有一个"radix"参数,它定义转换时使用的数字系统,因此调用parseInt(jQuery('#something').css('margin-left'), 10);
将左边距作为整数返回.
这是JSizes使用的.
Rav*_*rsT 30
请不要加载另一个库只是为了做一些本机可用的东西!
jQuery .css()
将%和em转换为等效于开头的像素,并将从返回的字符串的末尾parseInt()
删除'px'
并将其转换为整数:
$(document).ready(function () {
var $h1 = $('h1');
console.log($h1);
$h1.after($('<div>Padding-top: ' + parseInt($h1.css('padding-top')) + '</div>'));
$h1.after($('<div>Margin-top: ' + parseInt($h1.css('margin-top')) + '</div>'));
});
Run Code Online (Sandbox Code Playgroud)
Fir*_*his 11
以下是如何获得周围尺寸的方法:
var elem = $('#myId');
var marginTopBottom = elem.outerHeight(true) - elem.outerHeight();
var marginLeftRight = elem.outerWidth(true) - elem.outerWidth();
var borderTopBottom = elem.outerHeight() - elem.innerHeight();
var borderLeftRight = elem.outerWidth() - elem.innerWidth();
var paddingTopBottom = elem.innerHeight() - elem.height();
var paddingLeftRight = elem.innerWidth() - elem.width();
Run Code Online (Sandbox Code Playgroud)
注意每个变量,paddingTopBottom
例如,包含元素两边的边距之和; 即,paddingTopBottom == paddingTop + paddingBottom
.我想知道是否有办法让它们分开.当然,如果它们相等,你可以除以2 :)
你可以像任何CSS属性一样抓住它们:
alert($("#mybox").css("padding-right"));
alert($("#mybox").css("margin-bottom"));
Run Code Online (Sandbox Code Playgroud)
您可以在css方法中使用第二个属性设置它们:
$("#mybox").css("padding-right", "20px");
Run Code Online (Sandbox Code Playgroud)
编辑:如果您只需要像素值,请使用parseInt(val, 10)
:
parseInt($("#mybox").css("padding-right", "20px"), 10);
Run Code Online (Sandbox Code Playgroud)
这个简单的功能可以做到:
$.fn.pixels = function(property) {
return parseInt(this.css(property).slice(0,-2));
};
Run Code Online (Sandbox Code Playgroud)
用法:
var padding = $('#myId').pixels('paddingTop');
Run Code Online (Sandbox Code Playgroud)