IE8 问题 - jQuery 调整页面大小时导航 html



使用以下代码,我不希望IE8选择响应式导航。调整窗口大小时,IE8 将删除导航。我的IE8有一个"lt-ie9"类。你能告诉我如何调整代码,所以如果浏览器大小低于 767,它将使用桌面版本。

function resizeNav() {
if (!nav) {
        nav = {};
        nav.root = jQuery('#navigation');
        nav.primary = nav.root.find('.menu');
        nav.secondary = jQuery('.secondary-links');
        nav.moveable = nav.secondary.children('li');
        nav.icon = jQuery('<div id="menu-icon" class="btn">Navigation</div>');
        nav.icon.click(function () {
            nav.primary.slideToggle('slow');
            nav.icon.toggleClass('active');
        });
    }
    // Position everything
    if (getWidth() <= 767) {
        nav.moveable.appendTo(nav.primary);
        nav.root.prepend(nav.icon);
        nav.primary.hide();
    } else {
        nav.moveable.appendTo(nav.secondary);
        nav.icon.detach();
        nav.primary.show();
    }
    nav.icon.removeClass('active');
}

假设您的lt-ie9类添加了html元素,最简单的方法是检查它以及宽度:

if (!html.lt-ie9 && getWidth() <= 767) {

您还可以将lt-ie9存储为布尔值以提高效率:

var isLtIe9 = $('html.lt-ie9').length;

然后将上述内容修改为:

if (!isLtIe9 && getWidth() <= 767) {

如果你只想影响IE8,为什么要使用JS?只使用仅 IE8 的 CSS 文件不是更好吗?这将使您的代码保持干净且不受黑客攻击。

<!--[if lte IE 8]>
    <link rel="stylesheet" type="text/css" href="ie8-and-down.css" />
<![endif]-->

最新更新