切换显示页面高度的条件

时间:2014-05-30 11:04:16

标签: javascript html

所以我有一个完美运作的切换显示代码:

function toggle_visibility(id) {
    var x = document.getElementById(id);
    if (x.style.display == 'block')
        x.style.display = 'none';
    else
        x.style.display = 'block';
}

我正在使用此切换显示作为粘性导航上搜索框的下拉列表。我的粘性导航在300 pixels处偏移,当页面高于该值时,切换保持显示状态,我如何根据页面高度显示?x.style.display = 'none';

到目前为止我有这个似乎没有用的。

function toggle_visibility(id) {
    var x = document.getElementById(id);
    if ((window.pageYOffset || document.documentElement.scrollTop <= 300) && (x.style.display == 'block'))
        x.style.display = 'none';
    else
        x.style.display = 'block';
}

1 个答案:

答案 0 :(得分:1)

我认为您的条件有问题:

(window.pageYOffset || document.documentElement.scrollTop <= 300)

Javascript正在尝试评估逻辑OR的每一侧,而只测试右侧位测试<=300。换句话说,它正在评估:

(window.pageYOffset) OR (document.documentElement.scrollTop <= 300)

我想你想要更像这样的东西:

(window.pageYOffset <=300 || document.documentElement.scrollTop <= 300)

如果我能在小提琴中证实它​​,我会更有信心,但我希望无论如何都有帮助。