我知道以像素为单位你可以做这种事情但是有百分比,没有任何东西被退回。如果我的CSS使用百分比,我将如何解决这个问题?我基本上需要查看具有特定值的div然后触发我的脚本的变体。
jQuery的:
if ($(".modPopUp").css("width") == "32%" ){
console.log("32%");
$(".modPopUp:nth-child(3n-2)").css('margin-left', '0');
}
else if ($(".modPopUp").css("width") == "49%" ){
console.log("49%");
$(".modPopUp:nth-child(2n)").css('margin-left', '0');
}
答案 0 :(得分:1)
无论你如何设置,获取宽度都会以像素为单位返回,因为它是computed value。 .width()
也是如此。你需要根据它的父亲的宽度来计算宽度。
如下所示:
Math.floor(($el.width()/$el.parent().width())*100)+"%"
你甚至可以把它放在你自己的插件中:
$.fn.widthPerc = function(){
var parent = this.parent();
return ~~((this.width()/parent.width())*100)+"%";
}
被称为:
if ($(".modPopUp").widthPerc() == "32%" ){
答案 1 :(得分:0)
尝试在条件之前计算px中元素的百分比。
类似的东西:
var width = $('.modPopUp').width();
var parentWidth = $(document).offsetParent().width(); //Document or the element you want
var percent = 100*width/parentWidth;
之后:
if ($(".modPopUp").css("width") == percent ){
答案 2 :(得分:0)
如果您有一个div(或者您确实关心其中一个div),您可以执行以下操作: 使用jQuery选择元素,然后从选择器中获取HTML元素,这是选择器中的第一个元素。然后,您可以使用元素的style属性来获取元素的CSS。
例如:
if ($('.modPopUp')[0].style.width == "25%")
{
//Statements
}