javascript - 使用 (window).resize 实现响应式布局的多个脚本

标签 javascript jquery responsive-design

所以我目前正在开发一个具有响应式布局的单页网站。在较小的屏幕上,我使用动画滚动插件在内容 div 之间导航,但在较大的屏幕上,我使用插件来简单地切换这些 div 的可见性。

我遇到的问题是,如果在加载页面后调整窗口大小,我需要更改脚本。我认为 $(window).resize 可以解决问题,但它似乎不起作用,并继续使用最初加载的脚本而不是执行正确的脚本。 .anchorAnimate 和 .anchorTog 是我正在使用的插件,但我不认为它们是这里的问题。有需要的话我可以发帖。

代码:

$(document).ready(function() {

    var w = $(window).width();

    if(w <= 767) {
        $('a.anchorLink').anchorAnimate();
    }
    if(w >= 768) {
        $('a.anchorLink').anchorTog();
    }

    $(window).resize(function(){
        if(w <= 767) {
            $('a.anchorLink').anchorAnimate();
        }
        if(w >= 768) {
            $('a.anchorLink').anchorTog();
        }
    });
});

最佳答案

在您的代码中,变量“w”超出了调整大小函数的范围。当文档达到就绪状态时,“w”将仅是窗口宽度。要解决此问题,您可以在调整大小函数中重新声明变量,以便每次调整大小时,我们都会检查宽度:

$(window).resize(function(){
    var w = $(window).width();
    if(w <= 767) {
        $('a.anchorLink').anchorAnimate();
    }
    if(w >= 768) {
        $('a.anchorLink').anchorTog();
    }
});

关于javascript - 使用 (window).resize 实现响应式布局的多个脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19010114/

相关文章:

javascript - 如何从javascript中带有空参数的函数返回零?

javascript - 如何在循环 2.js 中悬停图像时同时显示上一个/下一个按钮

testing - AEM 组件的响应测试 (Adobe Experience Manager)

mobile - 使 Adsense 响应式

javascript - 如何定义要使用 ".channels"的公会?

javascript - Firefox webgl 上的 Websocket

javascript - 奇怪的 JavaScript 比较运算符

javascript - 如何从 XMLHttpRequest 响应中获取 <p> 标签值并在 html 中设置

jquery - 将 jQuery 从 1.3.2 和 1.4.2 升级到 1.5.1

css - 使用响应实用程序类时更改 "span"类 - Twitter Bootstrap