1

这似乎是一个相当抽象的概念,但我会尽力解释它。

div 根据窗口的滚动从相对位置到固定位置变为绝对位置,将功能与此分开,但这只是为了上下文。

现在,网站是响应式的,我希望在调整窗口大小时重排内容,包括固定位置的 div。但是在这里尝试了这个功能后,我意识到我采取了错误的方法。

    $(document).ready(function () {

    var sidebarwidth = $(".sidebarholder").width();
        controlwidth = $(".loop-contain").outerWidth();
        innerwidth = $(".front-contain").outerWidth();
        //get side-contain width dynamically    
        //derivative variable   
            sidecon = (controlwidth - innerwidth);



    $(window).on('resize', function(){
         $('.side-contain').css({
            position: "fixed",
            left: sidebarwidth + innerwidth,
            top: "50px",
            width: sidecon - "24"

        });
        console.log (sidecon);
    });
});

我认为,内容不会重排,因为它只计算页面加载时的变量。

有什么想法可以让固定位置的 div 在调整页面大小时重新排列它的大小和位置?我一直在这个网络上深入挖掘,我就是想不出任何东西。奇怪的是,console.log 将 sidecon 宽度显示为初始宽度,即使页面一次又一次地调整大小,尽管变量正在改变。如果我正在调整页面大小并且 controlwdith 和 innerwidth 正在改变,那不应该改变 .side-contain 的位置吗?

4

1 回答 1

1

resize在事件内移动所有维度计算:

$(document).ready(function () {

$(window).on('resize', function(){

    var sidebarwidth = $(".sidebarholder").width();
        controlwidth = $(".loop-contain").outerWidth();
        innerwidth = $(".front-contain").outerWidth();
        //get side-contain width dynamically    
        //derivative variable   
        sidecon = (controlwidth - innerwidth);


     $('.side-contain').css({
        position: "fixed",
        left: sidebarwidth + innerwidth,
        top: "50px",
        width: sidecon - "24"

    });
    console.log (sidecon);
});

});

于 2013-11-12T08:47:14.193 回答