普通的javascript到jquery - clientHeight

ale*_*ska 7 javascript jquery

我有以下脚本

(function(win){
    var doc = win.document;
    if (doc.querySelector && doc.addEventListener) {
        var toggler = doc.querySelector('.toggle-menu')
        var menu = doc.querySelector('.main-nav ul');
        menu.style.height = '0px';
        toggler.addEventListener('click',function(e) {
            e.preventDefault();
            if (menu.style.height == '0px') {
                menu.style.height = 'auto';
                if (menu.clientHeight != 0) {
                    menu.style.height = menu.clientHeight+'px';
                }
            } else {
                menu.style.height = '0px';
            }
        });
    }
})(this);
Run Code Online (Sandbox Code Playgroud)

该脚本的jQuery版本是什么,因为我找不到与clientHeight等效的jQuery.

Chr*_*nte 9

clientHeight不是jQuery属性.它是在Internet Explorer中引入的,但不是W3C规范的一部分.它看起来只在Firefox和Internet Explorer中受支持.我刚刚测试过它可以在最新版本的Chrome中运行.不确定结果是否是浏览器的标准结果,尽管我在下面发布的链接表明没有.

此外,Mozilla建议对不支持它的浏览器使用以下公式:

clientHeight可以计算为CSS高度+ CSS填充 - 水平滚动条的高度(如果存在).

我假设这是元素本身的滚动条,而不是整个浏览器窗口,除非元素占用整个窗口.

资料来源:

  • 我认为,即使"支持",使用这些标准CSS属性(高度和填充)也更安全. (2认同)