2014-01-10 55 views
2

告訴我,我請該怎麼做功能權限如果元素的寬度超過80%

var $photoblock = $(".element img"); 
if ($photoblock).width() > 80%){ 
$photoblock.css({width: 80%, max-width: 'none'}); 
} else { 
$photoblock.css({width: auto, max-width: 100%}); 
}); 

怎麼會是正確的?

+0

這是我的照片的大小。如果寬度超過父級的80%,圖像應該是80%,如果它小於80%,它應該具有原始大小。 –

+0

不知道你想做什麼,但無論如何:.width()將返回一個只有寬度的字符串,而不是80%。除了錯誤之外,代碼的功能似乎有些奇怪:您選擇所有圖像。當他們大於80%(某事物?)時,當他們小於80%時,他們使他們達到80%,當他們達到100%時?應該是什麼效果? –

回答

3

嘗試這樣的事情

var $photoblock = $(".element img"); 
var per = $photoblock.parent().width() * 0.8; 
if ($photoblock.width() > per) { 
    $photoblock.css({ 
     width: '80%', 
     'max-width': 'none' 
    }); 
} else { 
    $photoblock.css({ 
     width: 'auto', 
     'max-width': '100%' 
    }); 
} 

$photoblock.width()將像素不是百分比返回寬度。因此,您需要找出其父母的80%,然後需要對其進行比較。

+0

grunt.js顯示錯誤,這就是爲什麼我應該將.8修正爲0.8 –

1

的.WIDTH()不讓步%的寬度,所以它比較對父母的寬度,也有一些其他的語法問題

var $photoblock = $(".element img"), 
    $parent = $photoblock.parent(); 
if ($photoblock).width() > $parent.width() * .8) { 
    $photoblock.css({ 
     width: '80%', 
     'max-width': 'none' 
    }); 
} else { 
    $photoblock.css({ 
     width: 'auto', 
     'max-width': '100%' 
    }); 
}); 
1

你需要得到的CSS寬度(如果以百分比指定),那麼parseInt函數它讓您可以在計算或比較使用值:

if (parseInt($photoblock.css('width')) > 80){.. 

否則,將其與父母的寬度(比較其他海報的建議):

if ($photoblock).width() > $parent.width() * .8) { ... 
相關問題