javascript - 当浏览器调整大小时刷新左侧元素的位置

标签 javascript jquery

我有以下 JavaScript 代码。

var x   = $('.sidebar').offset().top,
offsetY = $('.left-columns').offset().left + $('.left-columns').width();

$(window).scroll(function(){
    var scroll = $(this).scrollTop();
    if(scroll >= x){
        $('.sidebar').addClass('active1');
        $('.active1').css({left:offsetY});
    }else{
        $('.sidebar').removeClass('active1');
        $('.active1').css({left:0});
    }
});
$(window).resize(function(){
         x = $('.sidebar').offset().top,
   offsetY = $('.left-columns').offset().left + $('.left-columns').width();
});

它工作正常,但是当我调整浏览器窗口大小时,问题就从定位元素开始

最佳答案

我不知道您想要实现什么目的,但我猜测您需要在窗口调整大小时重新定位 .sidebar1.active1 元素。我的意思是,在调整大小处理程序上,执行与在滚动处理程序上执行的操作完全相同的操作...

$(window).scroll(updatePosition);
$(window).resize(updatePosition);

function updatePosition(){    

    x = $('.sidebar').offset().top,
    offsetY = $('.left-columns').offset().left + $('.left-columns').width(),
    scroll = $(this).scrollTop();

    if(scroll >= x){
      $('.sidebar').addClass('active1');
      $('.active1').css({left:offsetY});
    }else{
      $('.sidebar').removeClass('active1');
      $('.active1').css({left:0});
    }
}

关于javascript - 当浏览器调整大小时刷新左侧元素的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24009087/

相关文章:

javascript - 保存响应数据并在另一个函数中使用该数据

javascript - 在 IE 中获取计算出的背景颜色为 rgb

jquery - 当内容到达顶部时,删除 Bootstrap 粘性导航栏上的故障

javascript - 没有 Canvas 的 HTML 动画序列

javascript - Google Apps 脚本 : TypeError: Cannot read property 'values' of undefined (line 3, 文件 "Code")

javascript - Vue.js - 为按字母顺序排序的列表创建字母标题

javascript - 循环遍历数组并根据计数添加到字符串

javascript - 双向无限滚动 - 向上和向下

JavaScript 切换 HTML

javascript - 使用模板但保留 jquery 绑定(bind)?