// 注释版 $(document).ready(function() { $(window).scroll(function() { // 获取元素相对于文档顶部的偏移量 var contentOffset = $('.page-wrap-right').offset().top; // 获取窗口当前滚动条的位置 var scrollPosition = $(window).scrollTop(); // 获取 banner 高度(包括外边距) var bannerHeightWithMargin = $('.page-banner').outerHeight(true); // 获取文档总宽度 var documentWidth = $(document).width(); // 获取 .nyey 元素距离文档左边的距离 var elementOffsetLeft = $('.nyey').offset().left; // 获取 .nyey 元素的宽度(包括内边距和边框) var elementWidth = $('.nyey').outerWidth(); // 计算 .nyey 元素距离文档右边的距离 var rightDistance = documentWidth - (elementOffsetLeft + elementWidth); console.log(rightDistance); // 设置固定定位样式 var fixedStyles = { 'position': 'fixed', 'top': '50px', 'width': '370px', 'z-index': '1000', 'right': rightDistance + 'px' // 将距离右边文档的距离应用到 right 样式 }; // 如果滚动位置大于 banner 高度 if (scrollPosition >= bannerHeightWithMargin) { // 应用固定定位样式 $('.nyey').css(fixedStyles); } else { // 否则应用绝对定位样式 $('.nyey').css({ 'position': 'absolute', 'right': '0px', 'top': '0px', }); } }); }); // 未注释版 $(document).ready(function() { $(window).scroll(function() { var contentOffset = $('.page-wrap-right').offset().top; // 元素相对于文档顶部的偏移量 var scrollPosition = $(window).scrollTop(); // 获取窗口当前滚动条的位置 var bannerHeightWithMargin = $('.page-banner').outerHeight(true); // banner 高度 var documentWidth = $(document).width(); var elementOffsetLeft = $('.nyey').offset().left; var elementWidth = $('.nyey').outerWidth(); var rightDistance = documentWidth - (elementOffsetLeft + elementWidth); console.log(rightDistance); var fixedStyles = { 'position': 'fixed', 'top': '50px', 'width': '370px', 'z-index': '1000', 'right': rightDistance + 'px' // 直接应用距离右边文档的距离 }; if (scrollPosition >= bannerHeightWithMargin) { $('.nyey').css(fixedStyles); } else { $('.nyey').css({ 'position': 'absolute', 'right': '0px', 'top': '0px', }); } }); });
上一篇:swiper 常用参数
下一篇:JS页面下滑固定顶部