滚动条

jQuery 滚动监听总结

大憨熊 提交于 2019-12-16 17:58:55
JQuery监听页面滚动总结 1、当前滚动的地方的窗口顶端到整个页面顶端的距离: var winPos = $(window).scrollTop(); 2、获取指定元素的页面位置: $(val).offset().top; 3、对页面滚动条滚动的监听:要放在页面加载的时候 $(window).scroll(function(event){ }); 4、设置滚动条到指定位置。$(window).scrollTop(offset)。 例如: jquery判断滚动条距离顶部的距离 //滚动监听显示回顶部 function jianting(){ $(window).scroll(function(){ // 滚动条距离顶部的距离 大于300px时 if($(window).scrollTop() >= 300){ $("#xiaohuojian").fadeIn(1000); // 开始淡入 } else{ $("#xiaohuojian").stop(true,true).fadeOut(1000); // 如果小于等于 300 淡出 } }); } //点击回到页面顶部 function huidingbu(){ $("#xiaohuojian").click(function(){ $("html,body").animate({scrollTop:"0px"},'slow');

JS-scrollTop、scrollHeight、clientTop、clientHeight、offsetTop、offsetHeight的理解

那年仲夏 提交于 2019-12-16 12:33:05
scrollTop, 可写(这些属性中唯一一个可写的元素) Element.scrollTop 属性可以获取或设置一个元素的内容垂直滚动的像素数。 一个元素的 scrollTop 值是这个元素的顶部到视口可见内容(的顶部)的距离的度量。当一个元素的内容没有产生垂直方向的滚动条,那么它的 scrollTop 值为0。 scrollTop 可以被设置为任何整数值,同时注意: 如果一个元素不能被滚动(例如,它没有溢出,或者这个元素有一个"non-scrollable"属性), scrollTop将被设置为0。 设置scrollTop的值小于0,scrollTop 被设为0 如果设置了超出这个容器可滚动的值, scrollTop 会被设为最大值. 看图理解: 返回顶部: element.scrollTop = 0 一个简单的返回顶部的例子,并且实现动画由快到慢 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>返回顶部</title> <style> #outer { height: 100px; width: 100px; padding: 10px 50px; border: 1px solid; overflow: auto; } </style> </head> <body> <div id=

自定义滚动条使用(scrollbar样式设置)

一个人想着一个人 提交于 2019-12-15 05:33:24
转自: https://segmentfault.com/a/1190000012800450 PS:非商业用途,如有侵权,请联系删除。 一 前言 在CSS 中,如果我们在块级容器上设置了属性: overflow:scroll /* x y 方向都会*/ 或者 overflow-x:scroll /*只是x方向*/ 或者 overflow-y:scroll /*只是y方向*/ 当块级内容区域超出块级元素范围的时候,就会以滚动条的形式展示,你可以滚动里面的内容,里面的内容不会超出块级区域范围。 有时候我们需要自定义滚动条的样式,比如一开始就它显示,比如想改变滚动条的颜色,设置轨道的样式等,那么这篇文章就是为你准备的。 二 正文 1.认识滚动条 设置scrollbar的为CSS伪元素,对应上图的数字: ::-webkit-scrollbar { /* 1 */ } ::-webkit-scrollbar-button { /* 2 */ } ::-webkit-scrollbar-track { /* 3 */ } ::-webkit-scrollbar-track-piece { /* 4 */ } ::-webkit-scrollbar-thumb { /* 5 */ } ::-webkit-scrollbar-corner { /* 6 */ } ::-webkit

JQuery页面随滚动条动态加载效果实现

自作多情 提交于 2019-12-14 11:22:01
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 有一个AJAX scollLoad效果很 不错,就是阅读项目时不需要翻页,浏览器滚动条往下拉到一定位置时自动加载新的一批项目进来,一直到所有项目加载完为止。要知道,数据量增加很频繁时,要通过定位页码来找到目标数据似乎并没有什么意义。我觉得用户 体验成熟的WEB应用程序应当引导用户使用TAG或搜索等功能来找到目标数据。至于浏览数据,尤其是浏览最新的数据,利用浏览器滚动条来加载,是很好的尝 试…… 我试着用jquery来实现这个功能。先要得到滚动条的总长属性值:scrollHeight,还有滚动条当前位置属性 值:scrollTop。然后通过计算,若当前值位于总长值三分之二时加载新数据。假设DOM上有一个元素为<div id=”mypage”></div>,该元素overflow样式为scroll,也就是元素中的内容溢出元素指定高度时启用滚动 条。利用jquery的load方法为元素加载一个已经存在的文件,我假设它是table.html。这个文件的内容可以是足以使浏览器滚屏的一张数据 表。 <script type=”text/javascript” src=” jquery.js “>// 加载jquery库</script> <script type=”text/javascript”> var hght=0;

事件

寵の児 提交于 2019-12-10 09:45:40
事件与事件流 事件介绍 JavaScript 和 HTML 之间的交互是通过当用户或者浏览器操作网页时发生的事件来处理的。页面装载时,是一个事件,用户点击页面上的某个按钮时,也是一个事件。 事件冒泡 即事件开始时由最具体的元素(文档中嵌套层次最深的那个节点)接收,然后逐级向上传播到较为不具体的节点(文档)。 事件捕获 事件捕获的思想是不太具体的节点应该更早接收到事件,而最具体的节点应该最后接收到事件。 事件监听器 HTML 事件监听器 < body > < button onclick = "test()" > 点击我 < / button > < script > let test = function ( ) { alert ( " 你已经点击了" ) ; } < / script > < / body > DOM 0 级事件监听器 < body > < button id = "test" > 点击我 < / button > < script > let test = document . getElementById ( "test" ) ; test . onclick = function ( ) { console . log ( "this is a test" ) ; } < / script > < / body > DOM 2 级事件监听器

js中clientHeight,offsetHeight,scrollHeight的区别

好久不见. 提交于 2019-12-09 19:46:50
一 clientHeight,offsetHeight,scrollHeight的区别   clientHeight在各个浏览器中基本是一样的,一致认为是内容可视区域的高度,也就是说页面浏览器中可以看到内容的这个区域的高度,不包括滚动条,不包括margin,但包括padding,也就是说实际的clientHeight = 当前对象可视区域的高度 + padding值,如下图所示 clientHeight = 对象可视区域高度(300) + 上下padding值(20) = 320 在不同浏览器都实用的javascript方案: var w= document.documentElement.clientWidth || document.body.clientWidth; var h= document.documentElement.clientHeight || document.body.clientHeight;   offsetHeight = 当前对象的高度 + 滚动条 + borde值 + padding值,上图中当前对象的高度和可视区域高度是一样的,所以offsetHeight = 300 + padding(20px ) + border(10px) = 330   scrollHeight是网页内容的实际高度,最小值就是clientHeight

2019年12月第一周前端问题汇总

孤街醉人 提交于 2019-12-09 18:03:20
2019-12-01 获取浏览器高度、宽度。 <div id="outer"> <div id="inner"> <div id="dot"></div> </div> </div> #outer{ width: 300px; height: 300px; background-color: aquamarine; margin: 0 auto; overflow: hidden; } #inner{ width: 150px; height: 150.5px; background-color: chartreuse; padding: 50px; border: 10px solid slateblue; margin: 15px; font-size: 50px; overflow: hidden; word-break: break-all; } #dot{ width: 100%; height: 100%; background-color: tomato; overflow: scroll; } clientWidth/clientHeight 元素的可见宽度、高度。text-area + padding-area 不包括滚动条等边线,会随窗口的显示大小改变。内联样式以及css样式的元素的clientWidth属性值为0 var ele = document

CSS3 calc实现滚动条出现页面不跳动

烈酒焚心 提交于 2019-12-09 16:32:54
本文转载于: 猿2048 网站 CSS3 calc实现滚动条出现页面不跳动 什么是calc()? calc()从字面我们可以把他理解为一个函数function。其实calc是英文单词calculate(计算)的缩写,是css3的一个新增的功能,用来指定元素的长度。比如说,你可以使用calc()给元素的border、margin、pading、font-size和width等属性设置动态值。为何说是动态值呢?因为我们使用的表达式来得到的值。不过calc()最大的好处就是用在流体布局上,可以通过calc()计算得到元素的宽度。 语法 calc() = calc(四则运算) 例如: .elm { width : calc(expression) ; } 其中"expression"是一个表达式,用来计算长度的表达式 说明 用于动态计算长度值。 需要注意的是,运算符前后都需要保留一个空格,例如: width: calc(100% - 10px) ; 任何长度值都可以使用calc()函数进行计算; calc()函数支持 "+", "-", "*", "/" 运算; calc()函数使用标准的数学运算优先级规则; 兼容性 简单的例子: <! DOCTYPE html > < html lang ="zh-cmn-Hans" > < head > < meta charset ="utf-8"

「前端长列表」开源库解析及最佳实践

偶尔善良 提交于 2019-12-09 12:08:29
前言 长列表一般也叫虚拟列表,是一种大数据量下只渲染可见节点避免页面卡顿的优化方案 长列表也有时间分片的做法,比较少用,感兴趣的可以看 高性能渲染十万条数据(时间分片) 前端比较有名的有两个项目: react-window vue-virtual-scroller 以及 Ant Design 4 的 virtual-list 本文将对这些开源库进行剖析,分析实现原理,并进行各个指标的评估,最终实现一个高可用的长列表组件 主要评估以下几点: 渲染:回流, 渲染策略等 计算:起止项和偏移位置的计算,总高度的计算 功能:自适应高度,其他 健壮:是否存在鼠标与滚动条不同步的 bug(计算时总高度增加了,则滚动条会相对鼠标向上) 然后说下看源码的策略,主要看这几点: dom 结构 查找起始位置 计算偏移距离 计算总高度 长列表入门 如果还不清楚长列表是什么,可以先看下这篇文章 「前端进阶」高性能渲染十万条数据(虚拟列表) 一张图快速入门 下面我们来看看其他开源库都怎么做的 vue-virtual-scroller 项目地址 功能: 支持自适应高度,横向滚动,图片自适应高度 渲染 dom 结构如下 <!-- position: relative;overflow-y: auto; --> < div class = " vue-recycle-scroller " > < div class