【问题标题】:If document height is taller than the viewport, perform X如果文档高度高于视口,则执行 X
【发布时间】:2015-02-05 16:31:31
【问题描述】:

如果文档的高度高于视口,我正在尝试向元素添加一些 CSS。

var docH = $(document).height(),
    viewPortH = $(window).height();

    console.log(docH);
    console.log(viewPortH);

if (docH > viewPortH) {
    $('.slick-slide img').css('max-width', '90%');
}

但是,console.log()docHviewPortH 都输出为 733,但事实并非如此。

我将html 设置为height: 100% 并将body 设置为min-height: 100%。有什么我错过的吗?

我在这里查看了其他一些类似的问题,我似乎做的一切都是正确的。

【问题讨论】:

标签: javascript jquery


【解决方案1】:

您的代码实际上看起来不错,应该可以按预期工作。你能做一个jsfiddle吗?

不过,试试这个:

var docH = parseInt( $('body').prop('scrollHeight') ),

【讨论】:

  • 我无法制作小提琴,因为在小提琴中它可以工作,哈哈。不过,如果有帮助,我可以给你live site。您可以在控制台中看到,数字相同。
  • 我明白了,但是var docH = parseInt( $('body').prop('scrollHeight') ), 应该可以工作
  • 我忘了提,但我试过了,也没有用。数字仍然相同。这真的很伤我的大脑。感谢您的帮助和尝试。
  • 也许你在错误的事件中这样做了。将此代码放入$(window).load() 事件中
  • 就是这样。谢谢!
【解决方案2】:

我不确定这是否可以解决您的问题,但您可能可以检查窗口是否有滚动条:$('#divId').hasScrollBar(); 如果为真,则和/修改 css

var body = document.body,
    html = document.documentElement;

var height = Math.max( body.scrollHeight, body.offsetHeight, 
                       html.clientHeight, html.scrollHeight, html.offsetHeight );

获取document的最高部分

【讨论】:

  • 我试过了,但奇怪的是数字仍然一样。这是live site。您可以在控制台中看到,数字相同。
猜你喜欢
  • 2012-12-23
  • 2014-05-30
  • 2023-03-26
  • 1970-01-01
  • 2018-06-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多