JS固定边栏滚动

摘要:
JS固定提要栏滚动实现密钥1。CSSpotionfixed:这用于同时修复侧边栏。由于它在离开文档流后会向左浮动,因此应该设置浏览器右侧的距离——以这种格式导入的js文件是一个外部js文件,它是一个绝对引用。
JS固定边栏滚动

实现关键点

1、 CSS position fixed:作用把边栏做一个固定

  还要在设置一下位置,因为脱离文档流之后,会向左侧浮动,所以要设置相对浏览器右侧的距离。

2、监听window上的滚动事件

3、设置fixed条件判断的依据:滚动高度 + 屏幕高度 > 边栏高度

 

使用jquery实现

 1 <script src="https://code.jquery.com/jquery.js"></script><!--引入这种格式的js文件是引入的外部的js文件,就是绝对引用。只是存储的位置是互联网-->
 2 
 3 <script>
 4 
 5   var jWindow = $(window);//获取window窗体
 6 
 7   jWindow.scroll(functoin) {//实现业务逻辑操作
 8 
 9     var scrollHeight = jWindow.scrollTop();
10 
11     var screeHeight = jWindow.height();
12 
13     var sideHeight = $('#J_BdSide').Height();
14 
15     if(scrollHeight + screeHeight > sideHeight) {
16 
17       $('#J_BdSide').css({
18 
19         'position':'fixed',
20 
21         'top':-(sideHeight-screenHeight),//top取负值
22 
23         'right':0
24 
25       });
26 
27     }else {
28 
29         $('#J_BdSide').css({
30 
31           'position':'static'
32 
33         });
34 
35       }
36 
37   });
38 
39   window.onload(function() {//刷新页面不变
40 
41     jWindow.trigger('scroll');//使用trigger触发scroll事件
42 
43   });//监听window的onload事件
44 
45   jWindow.resize(function(){//改变窗口大小不变
46 
47     jWindow.trigger('scroll');
48 
49   });//监听resize事件
50 
51 </script>

另一种方法js

 1 <script>
 2 
 3   var $ = function(id) {
 4 
 5     return document.getElementById(id);
 6 
 7   }
 8 
 9   var addEvent = function(obj,event,fn) {//元素对象名字,绑定事件,触发的回调函数
10 
11    if(obj.addEventListener) {
12 
13      obj.addEventListener(event,fn,false);
14 
15    }else if(obj.attachEvent) {
16 
17       obj.attachEvent('on'+event,fn);
18 
19    }
20 
21   }//事件绑定元素
22 
23   var domSide = $('J_BdSide');
24 
25   var scrollEvent = function() {
26 
27     var sideHeight = domSider.offsetHeight;//获取边栏高度
28 
29     var screeHeight = document.documentElement.clientHeight || document.body.clientHeight;//获取可见屏幕高度
30 
31     var scrollHeight = document.documentElement.scrollTop || document.body.scrollTop;//屏幕滚动高度
32 
33     if(scrollHeight + screeHeight > sideHeight) {
34 
35       domSider.style.cssText = 'position:fixed;right:0px;top:'+(-(sideHeight-screenHeigh))+'px' ';<!--/*dom操作必须加上px和top取反*/-->
36 
37     }else {
38 
39       domSider.style.position='static',
40 
41     }
42 
43   }//scroll事件做一次封装
44 
45   addEvent(window,'scroll',function(){
46 
47     scrollEvent();
48 
49   });
50 
51   addEvent(window,'resize'function(){<!--把scroll事件做一次封装-->
52 
53     scrollEvent();
54 
55   });
56 
57   
58 
59 </script>

 HTML DOM addEventListener() 方法

JS固定边栏滚动第1张

测试能不能调用函数

免责声明:文章转载自《JS固定边栏滚动》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇python测试开发django(8)--django连接mysqlC# 打开exe文件下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

VS2010主题设置及插件推荐

本文主要写了个人使用 VS2010 的一些配置及实用插件,从而打造一个符合个人风格的开发环境。 基础设置 安装 Visual Assist X 在 VS2010 中若不安装 Visual Assist X 这个插件,直接开发 C++ 相关的项目将是非常痛苦的事情。默认环境没有对代码的不同部分进行颜色高亮显示,也没有任何的智能提示,在这种情况下想要准确写出...

使用 Vue 开发 scrollbar 滚动条组件

Vue 应该说是很火的一款前端库了,和 React 一样的高热度,今天就来用它写一个轻量的滚动条组件; 知识储备:要开发滚动条组件,需要知道知识点是如何计算滚动条的大小和位置,还有一个问题是如何监听容器大小的改变,然后更新滚动条的位置; 先把样式贴出来: .disable-selection { -webkit-touch-callout: none...

KRKR基础篇(二)

这里介绍一些krkr的语法规范,具体的命令含义及用法以后再叙述 一:kag语法及基本概念 KAG使用的剧本语言为KAG Script,文件扩展名为.ks 脚本内的文字除 注释, 命令 , 段落标签, 等内容外,一律被当作 剧本文字 进行显示处理。 每个标签都可能有若干属性,也可能没有属性,属性用于精确控制指令的行为。 1:标记命令 命令的格式为: [命令名...

ES分页

本篇文章将会讲解ES两种分页查询方法以及优缺点 注意:以下文章中的命令和java代码均基于ES5.3.0版本 一、from/size分页 官网文档地址:https://www.elastic.co/guide/en/elasticsearch/reference/5.3/search-request-from-size.html 查询的时候带上from和s...

Elasticsearch _reindex Alias使用

应用背景:1、当你的数据量过大,而你的索引最初创建的分片数量不足,导致数据入库较慢的情况,此时需要扩大分片的数量,此时可以尝试使用Reindex。 2、当数据的mapping需要修改,但是大量的数据已经导入到索引中了,重新导入数据到新的索引太耗时;但是在ES中,一个字段的mapping在定义并且导入数据之后是不能再修改的, 所以这种情况下也可以考虑尝试使用...

左侧menu导航,设置overflow:scroll,设置高度,滚动滚轮然后鼠标向上或者向下移时鼠标会出现抖动

我这边使用的是Ant design插件搭建的项目,左侧菜单栏使用的是Menu组件,因为项目的需求是整个项目不能出现滚动条,但是左侧菜单栏又有很多,所以只能给左侧菜单设置滚动条 :如图 按理说给一个盒子固定了高度以及设置了overflow:scroll后是没什么问题的,但是实际上是有问题的,每当你滚动鼠标然后鼠标向下或者向上移动时,menu菜单栏就会出现抖动...