简单的三元运算不起作用

3

我试图使一个div在点击时改变位置,再次点击时恢复到原始位置。但我无论如何都无法弄清问题所在。

$("#bottom").click(function() {

  var $about = $('#bottom'),
  top = $about.css('top') === '50%' ? '90%' : '50%';

$about.stop().animate({top: top}, 500);  
});

我的 CSS 如下:

#bottom {
top: 90%;
left: 0; right: 0;
height: 100%;
}

当我点击 #bottom 时,div 元素会定位在50%,但当我再次点击时,没有任何反应。

1
控制台打印了什么?从语法角度来看,三元运算符的写法是正确的。 - omarjmh
1个回答

1

.css('top')并不会直接返回CSS中的top属性,而是返回计算出来的像素值。如果你的#bottom容器高度为100px,那么$('#bottom').css('top')将返回90px,而不是90%

这里有一个解决方法的示例。


那绝对解释了这个问题,谢谢。我通过使用50vh而不是50%来解决了这个问题。 - Alaw16
没问题 - 检查我的编辑,使用百分比的解决方案。 - TAGraves

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接