Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery缓慢的样式更新_Jquery_Resize_Window - Fatal编程技术网

jQuery缓慢的样式更新

jQuery缓慢的样式更新,jquery,resize,window,Jquery,Resize,Window,我在同步调整大小事件时遇到了一些问题。基本上,$M.resize更新div的宽度(css),然后我希望$API.resize读取新的大小并相应地更新其元素。但是,如果我设置了窗口调整大小事件(见下文),然后立即触发窗口的调整大小事件,$API.resize不会获得任何新的宽度信息,就好像$M.resize没有完成更新一样$API.resize通过$(“#main”).css(“宽度”)获取新的宽度信息;我能让它工作的唯一方法是使用下面的setTimeout解决方法。。有更好的方法吗 // on

我在同步调整大小事件时遇到了一些问题。基本上,$M.resize更新div的宽度(css),然后我希望$API.resize读取新的大小并相应地更新其元素。但是,如果我设置了窗口调整大小事件(见下文),然后立即触发窗口的调整大小事件,$API.resize不会获得任何新的宽度信息,就好像$M.resize没有完成更新一样$API.resize通过$(“#main”).css(“宽度”)获取新的宽度信息;我能让它工作的唯一方法是使用下面的setTimeout解决方法。。有更好的方法吗

// on page load
$(function () {
    $(window).resize(function () {
        $M.resize();
        $API.resize();
    });
    setTimeout(function () {
        $(window).resize();
    }, 100);
});

// $API.resize
function () {
    var pageWidth = $M.width();
    console.log("pageWidth = " + pageWidth);
    $("#atmoGrid").css("width", pageWidth);
    $(".atmoSector")
        .css("width", pageWidth/5-2)
        .css("height", pageWidth/5-2);
}

// $M.resize
function () {
    // refresh screen dimensions
    width = Math.min(screen.availWidth, window.innerWidth);
    height = Math.min(screen.availHeight, window.innerHeight);
    smallScreen = (width < smallWidth);
    fontScale = (smallScreen) ? 3 : 1;

    // check if screen is small
    if (smallScreen) {
        $("#main").css("width", "100%");
    } else {
        $("#main").css("width", smallWidth + "px")
    }
    $("#main").css("font-size", $M.font(18));
}

// $M.width
function () {
    var width = $("#main").css("width");
    return parseInt(width);
}
//页面加载时
$(函数(){
$(窗口)。调整大小(函数(){
$M.resize();
$API.resize();
});
setTimeout(函数(){
$(窗口).resize();
}, 100);
});
//$API.resize
函数(){
var pageWidth=$M.width();
console.log(“pageWidth=“+pageWidth”);
$(“#atmoGrid”).css(“宽度”,pageWidth);
$(“.atmoSector”)
.css(“宽度”,页面宽度/5-2)
.css(“高度”,页面宽度/5-2);
}
//百万美元
函数(){
//刷新屏幕尺寸
宽度=Math.min(screen.availWidth,window.innerWidth);
高度=数学.min(screen.availHeight,window.innerHeight);
小屏幕=(宽度<小宽度);
fontScale=(小屏幕)?3:1;
//检查屏幕是否小
if(小屏幕){
$(“#main”).css(“宽度”、“100%”);
}否则{
$(“#main”).css(“宽度”,smallWidth+“px”)
}
$(“#main”).css(“字体大小”,$M.font(18));
}
//米宽
函数(){
变量宽度=$(“#主”).css(“宽度”);
返回parseInt(宽度);
}
试试这个:

// on page load
$(function () {
    $(window).resize(function () {
        $M.resize();
    });
});

// $API.resize
function (mWidth, mHeight) {
    var pageWidth = mWidth;
    console.log("pageWidth = " + pageWidth);
    $("#atmoGrid").css("width", pageWidth);
    $(".atmoSector")
        .css("width", pageWidth/5-2)
        .css("height", pageWidth/5-2);
}

// $M.resize
function () {
    // refresh screen dimensions
    width = Math.min(screen.availWidth, window.innerWidth);
    height = Math.min(screen.availHeight, window.innerHeight);
    smallScreen = (width < smallWidth);
    fontScale = (smallScreen) ? 3 : 1;

    // check if screen is small
    if (smallScreen) {
        $("#main").css("width", "100%");
    } else {
        $("#main").css("width", smallWidth + "px")
    }
    $("#main").css("font-size", $M.font(18));

    $API.Resize(smallWidth, someheight);
}

// $M.width
function () {
    var width = $("#main").css("width");
    return parseInt(width);
}
//页面加载时
$(函数(){
$(窗口)。调整大小(函数(){
$M.resize();
});
});
//$API.resize
功能(mWidth、mHight){
var pageWidth=mWidth;
console.log(“pageWidth=“+pageWidth”);
$(“#atmoGrid”).css(“宽度”,pageWidth);
$(“.atmoSector”)
.css(“宽度”,页面宽度/5-2)
.css(“高度”,页面宽度/5-2);
}
//百万美元
函数(){
//刷新屏幕尺寸
宽度=Math.min(screen.availWidth,window.innerWidth);
高度=数学.min(screen.availHeight,window.innerHeight);
小屏幕=(宽度<小宽度);
fontScale=(小屏幕)?3:1;
//检查屏幕是否小
if(小屏幕){
$(“#main”).css(“宽度”、“100%”);
}否则{
$(“#main”).css(“宽度”,smallWidth+“px”)
}
$(“#main”).css(“字体大小”,$M.font(18));
$API.Resize(smallWidth,someheight);
}
//米宽
函数(){
变量宽度=$(“#主”).css(“宽度”);
返回parseInt(宽度);
}

hth

我认为您需要向我们展示更多的代码,现在只是一些变量和调整大小事件的触发,设置CSS等的函数在哪里?$API.resize();不会从$M获取任何更改。resize();,因为它超出了范围。使用一些全局变量sk我为$M.resize和$API.resize以及其他几个添加了函数体。我应该注意到,$M和$API都是全局的。也许在$M.resize()中实现一些回调,在更新完成后触发,你会得到类似$M.resize($API.resize)的东西?也许从$M.resize的最后一行调用API,其中两个参数是你需要的元素的宽度和高度?