【问题标题】:get current width after resize / setTimeout调整大小 / setTimeout 后获取当前宽度
【发布时间】:2011-12-19 11:26:35
【问题描述】:

我正在尝试在调整大小后获取新的浏览器宽度。 我已经尝试了所有..bind、live、resize,现在 setTimeout。我不擅长 jquery,但我可以理解一些。 我希望这里有人可以帮忙。 这是我的代码

function myfunction() {

         var w = ($(".wrap").innerWidth());
         var m = ($(".module").outerWidth(true));
         var total = parseInt(w/m);
         var newwrap = total * m;


         $(".wrap").css("width",newwrap);

 }; myfunction(jQuery)



$(document).ready(function(){
   setTimeout("myfunction()",100)
});

在调整浏览器大小后,我想让函数在每次更改宽度时运行。或在调整大小后获取新宽度。

先谢谢你!

【问题讨论】:

    标签: jquery live settimeout onresize


    【解决方案1】:

    我不确定你想要什么,但这可能会有所帮助

    width = 0;
    function myfunction() {
      //your code to calculate width  or use $(window).width();
      width = 100;
    }
    $(document).ready(function(){
       $(window).resize(myfunction);
    });
    

    【讨论】:

    • 我想要实现的是每次更改宽度时计算或运行的函数,因此我使用了调整大小或setTimeout。我试过你的代码,但它仍然没有改变。也许我做错了什么...... :(
    • 使用回调函数调整大小
    【解决方案2】:

    试试你写的这个函数,在 body 的 onresize 事件上调用。

    例如

    <body onresize="myFunction();">
    <!-- your content -->
    </body>
    

    【讨论】:

    • 太好了!但它在控制台中显示“myFunction 未定义”。你知道为什么吗?
    • 即使我不是 jquery 方面的专家。而且我不知道为什么你在 myFunction 定义结束后写了那个声明myFunction(jQuery)。也许这就是原因。只需在脚本中编写该函数,它就应该在 onresize 时调用。你可以参考这个链接w3schools.com/jsref/event_onresize.asp
    • 适用于 console.log('text');但它不适用于我的功能。早些时候这是一个拼写错误,但现在控制台一切正常,只是功能不起作用。我看过w3s,但很简短。无论如何,谢谢你的想法。
    • 没有错误,只是没有触发函数。例如,如果我刷新整个页面,它就可以工作。
    • 我做到了:function getResize() { var w = ($("body").innerWidth()); var m = ($(".module").outerWidth(true)); var total = parseInt(w/m); var newwrap = total * m; $(".wrap").css("width", newwrap); }
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-16
    • 2012-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-02
    相关资源
    最近更新 更多