电脑滚动条出问题了,总是自动拉到最下面,而且还拉不回来。qq,浏览器,凡是有滚动条的地方都有这个问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了电脑滚动条出问题了,总是自动拉到最下面,而且还拉不回来。qq,浏览器,凡是有滚动条的地方都有这个问题相关的知识,希望对你有一定的参考价值。
我重做系统 都不管用 还把空格键 和 向下 的键 拆开了 没发现什么 我一般不用鼠标 都是用笔记本的 触控板操作了
电脑滚动条出问题了,总是自动拉到最下面,而且还拉不回来。qq,浏览器,凡是有滚动条的地方都有这个问题。向上拉回去又立即拉下来,这次看着有种闪屏的感觉。
此时回到桌面上,肯定会有一个桌面图标是被选中的状态。用键盘方向键操作打开后,又可以恢复正常。
我重做系统 都不管用 还把空格键 和 向下 的键 拆开了 没发现什么 我一般不用鼠标 都是用笔记本的 触控板操作了
这就是全部症状。麻烦高手帮我解决一下
以前我用的系统这样 刚做了新系统也这样
系统 我都是在网上下载的最新系统 且每次都不 一样
谢谢你的 耐心回答
你把键盘拔掉试一下
追问谢谢你 我还了一个外置USB键盘 就OK了
参考技术A 你怎么不检查触控板?触控板也有滚动条滑动的啊 把你触摸板锁了看看会不会 不会的话就是你触控板坏了 参考技术B 用WINDOWS清理助手清除追问这个 我用了 刚刚 根本不起作用 谢谢你
追答看看你的:
空格 键
PageDown 键
下 键
js防抖和节流优化浏览器滚动条滚动到最下面时加载更多数据
防抖和节流,主要是用来防止过于平凡的执行某个操作,如浏览器窗口变化执行某个操作,监听某个input输入框keyup变化,瀑布流布局时Y轴滚动,图片加载。
js函数的防抖
经过一段事件才执行某个操作,如果时间内又执行了该操作则延长时间重新开始计算
/* 不做处理input触发keyup事件 */
window.onload = function () { let obj = document.getElementById(‘input‘) obj.addEventListener(‘keyup‘,()=>{ let val = obj.value; inputchange(val) },false) } function inputchange(val) { console.log(val) }
// 11 11 123 123 123456 123456 123456
使用防抖去处理
/* 使用防抖去处理input触发keyup事件 */ /* 输入快的话会也不会输出多次重复结果 */ window.onload = function () { let obj = document.getElementById(‘input‘) let callback = inputchange() obj.addEventListener(‘keyup‘,()=>{ let val = obj.value; callback(val) },false) } // 高级函数的应用 // 闭包time为局部变量 但不会在inputchange 函数调用完后释放 // 函数返回函数 function inputchange() { var time return function(val){ if(time) { clearTimeout(time) } time = setTimeout(() => { console.log(val) }, 200); } }
js函数节流
定义:执行某个操作后一段时间内不在不行该操作
/* 使用节流去处理input触发keyup事件 */ /* 输入快的话会也不会输出多次重复结果 */ window.onload = function () { let obj = document.getElementById(‘input‘) let callback = inputchange() obj.addEventListener(‘keyup‘,()=>{ let val = obj.value; callback(val) },false) } // 使用闭包保存hasdone function inputchange() { var hasdone = false return function(val){ // 如果已经执行 hasdone = true 则直接返回 if(hasdone) { return; } // 设置已经执行 console.log(val) hasdone =true /* 一段时间后设置hasdone 为能够再次执行 */ time = setTimeout(() => { hasdone = false }, 2000); } }
上面的节流,第一次输入马上执行,是最后输入不执行。
还有就是第一次输入不马上执行,时间内最后执行
/* 使用节流去处理input触发keyup事件 */ /* 输入快的话会也不会输出多次重复结果 */ window.onload = function () { let obj = document.getElementById(‘input‘) let callback = inputchange() obj.addEventListener(‘keyup‘,()=>{ let val = obj.value; callback(val) },false) } // 使用闭包保存hasdone /* 时间内不马上执行,时间段内只执行一次 */ function inputchange() { var hasdone = false var time = null return function(val){ // 如果已经执行 hasdone = true 则直接返回 if(hasdone) { return; } // 设置已经执行 hasdone =true /* 一段时间后设置hasdone 为能够再次执行 */ time = setTimeout(() => { console.log(val) hasdone = false }, 500); } }
js 实现浏览器滚动条滚动到最下面时,加载更多数据
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <script src="./js/fangdouhejl.js"></script> <style> .box{ height:890px; } li{ height: 60px; } .loading{ width: 80px; height: 40px; margin: 0 auto; margin-top:100px; display: none; } .loading span{ display: inline-block; width: 8px; height: 100%; border-radius: 4px; background: lightgreen; -webkit-animation: load 1s ease infinite; } @-webkit-keyframes load{ 0%,100%{ height: 40px; background: lightgreen; } 50%{ height: 70px; margin: -15px 0; background: lightblue; } } .loading span:nth-child(2){ -webkit-animation-delay:0.2s; } .loading span:nth-child(3){ -webkit-animation-delay:0.4s; } .loading span:nth-child(4){ -webkit-animation-delay:0.6s; } .loading span:nth-child(5){ -webkit-animation-delay:0.8s; } </style> </head> <body> <ul id="box"> <li>baojia1</li> <li>baojia2</li> <li>baojia3</li> <li>baojia4</li> <li>baojia5</li> <li>baojia6</li> <li>baojia7</li> <li>baojia8</li> <li>baojia9</li> <li>baojia10</li> <li>baojia11</li> <li>baojia12</li> <li>baojia13</li> <li>baojia14</li> <li>baojia15</li> <li>baojia16</li> <li>baojia17</li> <li>baojia18</li> <li>baojia19</li> <li>baojia20</li> </ul> <div class="loading" id="loading"> <span></span> <span></span> <span></span> <span></span> <span></span> </div> </body> </html>
/* 浏览器滚动事件onsroll */ /* 实现浏览器滚动到最下面实现加载 */ var loadmore = loadmoreresource (); /* 模仿滚到最下面继续加载数据 */ window.onscroll = function (e) { /* 判断是否滚到最下面 */ /* 如果已经滚到最下面则执行某个操作 */ var e =e || window.event; // 为了兼容谷歌和火狐 document.body.scrollTop是谷歌上的 /* 滚动条的垂直位置 */ var scrolltop = document.documentElement.scrollTop||document.body.scrollTop; /* 整个页面的正文高度 */ var scrollHeight = document.documentElement.scrollHeight||document.body.scrollHeight; /* 可见区域高度 */ var clientHeight = document.documentElement.clientHeight||document.body.clientHeight; /* 当scrolltop加clientHeight 等于scrollHeight */ if(scrollHeight === (scrolltop+clientHeight)) { loadmore(); } } /* 往下拉时加载的数据 */ /* 使用函数节流优化加载,否则会出现一次性加载很多次 */ function loadmoreresource () { let i = 21; /* 定义是否已经加载 */ let isloading = false; return function () { /* 假如已经在加载中了则直接返回 */ if(isloading) { return; } /* 出现加载动画 */ loadingimg() let obj = document.getElementById(‘box‘); /* 代码片段 用于插入多个标签 */ let docfragment = document.createDocumentFragment(); for(let j=0;j<5;j++){ let li = document.createElement(‘li‘) li.append(‘baojia‘+i) docfragment.appendChild(li) i++; } /* 设置当前加载的状态为true */ isloading = true; /* 使用setTimeout 模拟从api加载数据 */ setTimeout(() => { obj.appendChild(docfragment) loadingimg() /* 将加载状态设置为false */ isloading = false }, 3000); } } /* 加载动画 */ function loadingimg() { let loading = document.getElementById(‘loading‘); if(loading.style.display===‘block‘) { loading.style.display = ‘none‘; } else { loading.style.display = ‘block‘; } }
以上是关于电脑滚动条出问题了,总是自动拉到最下面,而且还拉不回来。qq,浏览器,凡是有滚动条的地方都有这个问题的主要内容,如果未能解决你的问题,请参考以下文章
C# DataGridView 数据显示到最后一行后,如何使滚动条继续向下滚动。
Selenium WebDriver如何使滚动条滚动到最元素位置
Selenium WebDriver如何使滚动条滚动到最元素位置