用于切换溢出的jQuery函数无法在Microsoft Edge上运行

时间:2016-11-10 12:00:26

标签: javascript jquery overflow microsoft-edge toggleclass

我写了一个jQuery函数,在按下按钮时在overflow-y:hidden和overflow-y:auto之间切换。这适用于台式机上的Chrome,Opera和Firefox。但由于某种原因,Microsoft Edge无法正常工作,因为其他浏览器都可以正常运行而且没有问题。一些帮助和解释将是美好的!

$(".pro-toggle").click(function(){
    var hidden = $('body').css('overflow');
    if(hidden == 'hidden'){
        $("body").css("overflow-y","auto");
    }
    else {
        $("body").css("overflow","hidden");
    }
});

<button class="navbar-toggle collapsed pro-toggle pull-left" data-toggle="collapse">
    <span class="icon-bar top-bar"></span>
    <span class="icon-bar middle-bar"></span>
    <span class="icon-bar bottom-bar"></span>    
</button>

1 个答案:

答案 0 :(得分:0)

请找Support for scroll bar styling in Edge Browser

如果没有官方文档,明确指示或开发团队的官方消息,很难具体了解,但根据之前关于Edge的目的和设计目标的评论,似乎不太可能。

这就是我说的原因:

您引用的属性最初是作为CSS 2.1规范的扩展添加到IE8的。这些属性是非标准的,在某些圈子中被视为非法。 (还有其他非标准版本,但不清楚它们是否在MS Edge中受支持。)

很明显,Edge中可能没有正式支持这些特定属性,可能是因为它们是专有扩展。

这似乎不太可能改变,因为MS Edge的主要设计点之一是抛弃传统兼容性,支持标准和跨平台互操作性。 (并且,鉴于在不改变主要版本号或次要版本号的情况下对IE11进行了主要功能更改,在任何给定更新后,对非标准属性的支持可能会消失,这是完全可行的。)

这些属性在您正在使用的构建中工作的事实可能是一个深思熟虑的设计决策,或者它可能是由于Edge基于三叉戟引擎的分叉这一事实的副作用,代码已被删除。

同样,在没有官方确认或公告的情况下,这是基于经验和之前团队行为的所有猜测。你的旅费可能会改变。