jquery - 通过调整窗口大小来缩放固定位置 div 的宽度

标签 jquery css positioning fixed

这可能看起来是一个相当抽象的概念,但我会尽力解释它。

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 将侧边宽度显示为初始宽度,即使页面一遍又一遍地调整大小,尽管变量正在发生变化。如果我调整页面大小并且 controlwdith 和 insidewidth 发生变化,那么不应该改变 .side-contain 的位置吗?

最佳答案

将所有尺寸计算移至 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);
});

});

关于jquery - 通过调整窗口大小来缩放固定位置 div 的宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19924498/

相关文章:

javascript - Jquery event.preventDefault() 扰乱点击功能

jquery - $.ajax() 与 $.get() 和 $.load() 的区别

php - 未设置 Cookie 但数据库已更改

php - 如何使用php在不重新加载/刷新当前页面的情况下显示mysql记录?

css - 由于存在绝对定位,大多数元素周围是否还需要 div

javascript - 创建像谷歌图片页面这样的框架

jquery - 使用 jQuery 更改 "style"的 Css 转换问题

html - ul 的最大高度限制为单个嵌套的 li 项

javascript - 通过 JS 与视口(viewport)(非相对)相关的元素的位置坐标

javascript - 根据窗口中的元素位置使用 jquery 定位弹出菜单