请告诉我,我怎样才能正常运作
var $photoblock = $(".element img");
if ($photoblock).width() > 80%){
$photoblock.css({width: 80%, max-width: 'none'});
} else {
$photoblock.css({width: auto, max-width: 100%});
});
怎么会这样?
答案 0 :(得分: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%的父母,然后需要比较它。
答案 1 :(得分: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%'
});
});
答案 2 :(得分:1)
您需要获取css宽度(如果以百分比指定),然后解析它以获取可用于计算或比较的值:
if (parseInt($photoblock.css('width')) > 80){..
否则,将其与父母宽度进行比较(如其他海报所示):
if ($photoblock).width() > $parent.width() * .8) { ...