jQuery如果width等于百分比

时间:2014-05-02 15:52:54

标签: jquery

我知道以像素为单位你可以做这种事情但是有百分比,没有任何东西被退回。如果我的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');
}

3 个答案:

答案 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%" ){

JSFiddle

答案 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
    }