首先,我们需要明白我们的滚轮是作用在谁的身上,根据实际需求来进行事件绑定,当我们鼠标移入可视区时,会触发滚轮事件,在移出可视区时则清除滚轮事件,接下来进行具体代码操作。...1.通过设置变量Judge来判断滚轮的滚动方向,当Judge为ture时,滚轮向上滚动,当Judge为false时,滚轮向下滚动。...scrY递减 scrY--; }else{ scrY++;// 当滚动向下滚动时,scrY递增...Y轴坐标 nowY = 0, // 鼠标拖动时滚动条C距父级顶部的高度 maxY = 0, // 拖动的最大极限值 nowDisY = 0..., // 点击滚动条C时距父级顶部的高度 judge = 0, // 判断鼠标滚轮的方向 scrY = 0; // 滚轮滚动距离 bxHeight
()熟悉的单击事件 3 dbclick()双击事件 4 mousedown() /mouseup() 鼠标按下和松开事件 5 mouseover()/mouseout() 鼠标移入和移出事件...focusin可以在父元素上检测子元素获得焦点的情况 而focusout可以在父元素上检测子元素失去焦点情况 四 其他事件 1 scroll()滚动滚动条时触发的事件 2 resize... 3 event.currentTarget 在事件冒泡阶段中的当前DOM元素,等同于 this 4 event.pageX/event.pageY 鼠标相对于文件左侧和顶部的位置... //会随着滚动条变化而变化 //screenX/screenY 获取显示器屏幕位置的坐标 //整个屏幕的高度 不会随着滚动条变化而变化 //clientX...event.which将event.keyCode 和 event.charCode标准化了。推荐用event.which来监视键盘输入。
于是便有了吸顶式导航的交互方式,吸顶条导航最大的好处是将最常用或者设计者最愿意让用户看到的内容、功能经常保持在用户面前,为用户提供了极大的便利与交互体验。...当页面向下滚动时超过了吸顶导航的初始位置时,需要把吸顶导航栏固定在窗口顶部,一般吸顶导航栏还可以替换成文章标题栏,搜索框、tab条等等,例如百度糯米,天猫,淘宝最为常用。...> div> div> ps:内容区要够长,不然无法滚动。...二、吸顶功能添加 1.实现思路是监听 scroll 事件,判断当前页面的滚动位置,当滚动距离大于导航条距顶部的距离时,为导航条采用窗口定位。...2.与“回到顶部“的实现方法一样,但是会发现实现吸顶功能时,到了临界位置时,页面会抖动一下,因为当导航条fixed出去,下部内容填补了导航条离开的位置。抢占了导航条的位置,所以抖动了一下。
就是类似于 PC端的滚动事件,但是在移动端是没有滚动事件的,所以就要用到 Touch事件结合 js去实现,效果如下: ? 1. 准备工作 什么是移动端的 Touch事件?...clientY:73 // 触摸点相对于浏览器的 viewport 上边缘的 Y 坐标,不会包括上边的滚动距离。 screenX:2202 // 触摸点相对于屏幕左边缘的 x 坐标。...首次滑动 手指触摸到列表向下滑动的时候,列表应该跟着向下滑动,当手指离开屏幕的时候,列表应该停在滑动的位置。这里就会用到上面准备阶段的知识点了,不明白的可以参考上面的概念。...实现原理 1、touchstart的时候,获取手指触摸的落点 A,通过这个点对象里面的 clientY属性,获取距离顶部可视区的距离; 2、touchmove的时候,获取手指的点 B,同样的获取移动时距离顶部可视区的距离...示例代码 var maxDown = 50; // 设定一个最大向下滑动的距离 // touchmove 时,记录此时手指在 Y 轴上的落点距离可视顶部距离 ul.addEventListener('
通过 document.documentElement.clientHeight获取屏幕可视窗口高度 通过 document.documentElement.scrollTop获取浏览器窗口顶部与文档顶部之间的距离...,也就是滚动条滚动的距离 通过 element.offsetTop获取元素相对于文档顶部的距离 然后判断②-③滚动条的向下滚动, bound.top会越来越小,也就是图片到可视区域顶部的距离越来越小,当 bound.top===clientHeight时,图片的上沿应该是位于可视区域下沿的位置的临界点,再滚动一点点...{ const bound = el.getBoundingClientRect(); const clientHeight = window.innerHeight; //如果只考虑向下滚动加载...第一张图片是完整的呈现了,第二张图片刚进入可视区域,后面的就看不到了~ 页面滚动时 当我向下滚动,此时浏览器是这样 ? 此时第二张图片完全显示了,而第三张图片显示了一点点,这时候我们看看请求情况 ?
1、先放效果 鼠标滚动,整个100%高度宽度的屏幕进行切换 2、再放代码 div> div> //滚动条滚动 //判断是不是火狐浏览器 var isFirefox...} //改变距离顶部的距离,计算距离 oUl.style.top = -i*100 + 'vh'; console.log...判断火狐浏览器的滚动方向,ev.wheelDelta判断其他浏览器的滚动方向,detail>0则是向下滚动,detail滚动;ev.wheelDelta滚动,ev.wheelDelta...>0则是向下滚动。
"section"> 第三屏幕 div class="slide">第三屏的第一屏div> div class="slide">第三屏的第二屏滚动 paddingTop string() 与顶部的距离 paddingBottom string() 与底部距离 keyboardScrolling (...-- -- moveSectionUp() 向上滚动 moveSectionDown() 向下滚动 moveTo(section, slide) 滚动到 moveSlideRight() slide 向右滚动...moveSlideLeft() slide 向左滚动 setAutoScrolling() 设置页面滚动方式,设置为 true 时自动滚动 setAllowScrolling() 添加或删除鼠标滚轮/..."section"> 第三屏幕 div class="slide">第三屏的第一屏div> div class="slide">第三屏的第二屏</
通过 document.documentElement.clientHeight获取屏幕可视窗口高度 通过 document.documentElement.scrollTop获取浏览器窗口顶部与文档顶部之间的距离...,也就是滚动条滚动的距离 通过 element.offsetTop获取元素相对于文档顶部的距离 然后判断②-③滚动条的向下滚动, bound.top会越来越小,也就是图片到可视区域顶部的距离越来越小,当 bound.top===clientHeight时,图片的上沿应该是位于可视区域下沿的位置的临界点,再滚动一点点...(el) { const bound = el.getBoundingClientRect(); const clientHeight = window.innerHeight; //如果只考虑向下滚动加载...实验 页面打开时 可以看出此时仅仅是加载了img1和img2,其它的img都没发送请求,看看此时的浏览器 第一张图片是完整的呈现了,第二张图片刚进入可视区域,后面的就看不到了~ 页面滚动时 当我向下滚动
(3)鼠标移出span元素时,字体大小是________px。...一些浏览器实现仅在框架或内置框架接收到用户手势或交互时才显示对话框 resize 窗口大小改变时触发 scroll 元素内发生滚动时触发 (1)实现窗口大小发生变化时,重置div元素高度为当前窗口高度的一半...(2)实现窗口滚动时,类名为top的元素固定在顶部,请补全横线处代码。...class="box"> 我是顶部 div class="top">顶部元素div> div> window.addEventListener...(不包括windows任务栏) availHeight 返回屏幕的高度(不包括windows任务栏) width 返回屏幕的总宽度 height 返回屏幕的总高度 (1)补全代码,完成点击按钮返回顶部的功能
最基本的touch事件包括4个事件: touchstart: 当在屏幕上按下手指时触发 touchmove: 当在屏幕上移动手指时触发 touchend: 当在屏幕上抬起手指时触发 touchcancel...上 先放1个手指在其他地方,然后再放1个手指在div上 先放1个手指在其他地方,然后再逐渐放2个手指在div上 3.3 Touch详解 Touch表示用户和触摸设备之间接触时单独的交互点...不会包括左边的滚动距离。 5. clientY 触摸点相对于浏览器的 viewport上边缘的 y 坐标。不会包括上边的滚动距离。...即使已经移出了元素甚至移出了document, 他表示的element仍然不变 案例: var box = document.querySelector("div"); var p = document.querySelector...:手指在屏幕上向下滑动时会触发 5.3 zepto的手势相关事件 Zepto.js 是一个轻量级的针对现代高级浏览器的JavaScript库, 它适配了jQuery的大部分api,也就是jQuery怎么用
最基本的touch事件包括4个事件: touchstart: 当在屏幕上按下手指时触发 touchmove: 当在屏幕上移动手指时触发 touchend: 当在屏幕上抬起手指时触发...测试多个手机触摸屏幕: div>div> var div = document.querySelector("div"); var p = document.querySelector...不会包括左边的滚动距离。 5. clientY 触摸点相对于浏览器的 viewport上边缘的 y 坐标。不会包括上边的滚动距离。...即使已经移出了元素甚至移出了document, 他表示的element仍然不变 案例: var box = document.querySelector("div"); var p = document.querySelector...:手指在屏幕上向下滑动时会触发 ?
三、弹性盒子(Flexbox) 弹性盒子(Flexbox)是CSS3引入的一种布局模式,用来为不同尺寸的屏幕设计复杂的布局。...五、浮动(Float) 浮动是CSS中的一个经典布局方法,用于将元素从正常流中移出,并使其在父容器内左右浮动。...div style="position: relative; top: 10px; left: 15px;"> 这是一个相对定位的元素 div> 元素相对于其原始位置向下移动了10px,向右移动了...粘性定位(Sticky) 粘性定位结合了相对定位和固定定位的特点,当元素在页面中滚动到一定位置时,会“粘”住并保持在该位置。...div style="position: sticky; top: 0; background-color: yellow;"> 这是一个粘性定位的元素 div> 当页面滚动时,元素会在到达顶部时固定在顶部
元素未滚动时,scrollTop的值为0,如果元素被垂直滚动了,scrollTop的值大于0,且表示元素上方不可见内容的像素宽度 由于scrollTop是可写的,可以利用scrollTop来实现回到顶部的功能...如果没有提供该参数,默认为true,使用该方法的原理与使用锚点的原理类似,在页面最上方设置目标元素,当页面滚动时,目标元素被滚动到页面区域以外,点击回到顶部按钮,使目标元素重新回到原来位置,则达到预期效果...} 8 9 增强 下面对回到顶部的功能进行增强 【1】显示增强 使用CSS画图,将“回到顶部”变成可视化的图形(如果兼容IE8-浏览器,...则用图片代替) 使用CSS伪元素及伪类hover效果,当鼠标移动到该元素上时,显示回到顶部的文字,移出时不显示 .box{ position:fixed; right:10px...id=“box” class=“box”> div class=“box-in”>div> div> 【2】动画增强 为回到顶部增加动画效果,滚动条以一定的速度回滚到顶部
将触发load事件 beforeunload window、document 和它们的资源即将卸载时触发。...一些浏览器实现仅在框架或内置框架接收到用户手势或交互时才显示对话框 resize 窗口大小改变时触发 scroll 元素内发生滚动时触发 实现窗口大小发生变化时,重置div元素高度为当前窗口高度的一半...('.box').style.height = window.innerHeight/2 + 'px' }) resize 实现窗口滚动时,类名为top的元素固定在顶部,请补全横线处代码...class="box"> 我是顶部 div class="top">顶部元素div> div> window.addEventListener...50px; } div class="box">我是顶部div> 返回顶部 var
div { position: relative; top: 20px; } 上面代码中,div元素从默认位置向下偏移20px(即距离顶部20px)。...div { position: fixed; top: 0; } 上面代码中,div元素始终在视口顶部,不随网页滚动而变化。...比如,网页的搜索工具栏,初始加载时在自己的默认位置(relative定位)。 ? 页面向下滚动时,工具栏变成固定位置,始终停留在页面头部(fixed定位)。 ?...position: -webkit-sticky; /* safari 浏览器 */ position: sticky; /* 其他浏览器 */ top: 20px; } 上面代码中,页面向下滚动时...div { position: sticky; top: 0; } 它的原理是页面向下滚动时,每张图片都会变成fixed定位,导致后一张图片重叠在前一张图片上面。详细解释可以看这里。
松开手指时,依据AppBarLayout移出屏幕区域与生育可视区域对比,自动移向占比大的区域。...: 此时可以看到,向上滚动,没有区别;向下滚动时,由于ImageView设置了enterAlways,因此首先滚动,直至出现了,然后ScrollView滚动,最后才是ToolBar显示。...可以理解为设置了enterAlways属性的View在向下滚动时的优先级高于ScrollView本身,可以实现分段滚动的效果。...向下滚动时,当ScrollView滚动顶部了,才继续滚动了。 snap snap是一个根据View在屏幕上显示范围进行调整的一个属性,看下效果其实就明白是怎么回事了。...offset的变化是0-->负数;向下滑时,负数--->0。
元素未滚动时,scrollTop的值为0,如果元素被垂直滚动了,scrollTop的值大于0,且表示元素上方不可见内容的像素宽度 由于scrollTop是可写的,可以利用scrollTop来实现回到顶部的功能...如果为true,表示元素的顶部与当前区域的可见部分的顶部对齐(前提是当前区域可滚动);如果为false,表示元素的底部与当前区域的可见部分的尾部对齐(前提是当前区域可滚动)。...如果没有提供该参数,默认为true 使用该方法的原理与使用锚点的原理类似,在页面最上方设置目标元素,当页面滚动时,目标元素被滚动到页面区域以外,点击回到顶部按钮,使目标元素重新回到原来位置,则达到预期效果...,则用图片代替) 使用CSS伪元素及伪类hover效果,当鼠标移动到该元素上时,显示回到顶部的文字,移出时不显示 .box{ position:fixed; right...id="box" class="box"> div class="box-in">div> div> 2】动画增强 为回到顶部增加动画效果,滚动条以一定的速度回滚到顶部
还是 先拿一个压缩的图片做占位,在鼠标移入或点击时放大预览? 今天偶然打开PC端QQ空间时,我发现了一种似乎更好的方式 —— 鼠标移入时在范围内上下滚动图片预览,移出时停止滚动。...offsetParent (获取父元素)); dom.getBoundingClientRect() :它有四个常用值:left、top、right、bottom,分别是相对于当前视口(即此tab网页窗口左侧、顶部...布局如下: div class="box"> div> 这里class为before和after的两个标签就是前面所说的“占位”元素(至于QQ是怎么实现的,等笔者稍作研究后再回来更新),它们负责判断“图片是应该向上滑还是向下滑”!...但是如果你仔细看,你会发现由于transition动画效果的时间是固定的,在向上/下滑动过短的情况下再向下/上滑动那么滑动的会特别慢! !
页面向下滚动超过吸顶元素初始位置时,把吸顶元素固定在顶部 要求吸顶的元素一般是二级导航栏、搜索框、文章标题栏(h1)、表头(thead)、tab条等等,共同特点是在内容或功能上比较重要,但又不是最重要的元素...(最重要的元素通常固定在页面顶部,navbar-fixed-top) 二.PC解决方案 页面滚动到一定位置时,做一些事情 “回到顶部”按钮也是这样的,页面向下滚动超过150px时,显示该按钮,否则隐藏...,iscroll等等 有前辈做了详细测试,见参考资料1 定时器在手指没有离开屏幕时不会执行,touchmove触发频率足够,也能拿到scrollTop,但touchend后,惯性滚动期间,没有任何事件可用...IOS 8+的Safari和WKWebView能够疯狂触发scroll,无论手指在不在屏幕上,无论是不是惯性滚动期间。...,让页面滚动,转到吸顶状态,多个tab列表无缝切换,浏览状态互不影响 吸顶状态时划动当前tab列表,到头,让页面滚动,转到非吸顶状态 也就是说,非吸顶状态时,让tab列表不能滚动(overflow-y:
这是掘金网页版的头部,当滚动条向下滑动时,主header会隐藏,次级header会吸在页面顶部。...header固定在页面顶部,这两个div分别是main-header和sub-header。...} else if (bottom) { isHidden.value = true } 是关键,当向上滚动时,显示header;向下滚动时,隐藏header。...你可能会发现在这段代码的上面,还有一段不明所以的代码: if (topArrived) { isHidden.value = false return } 当滚动条到顶部时,直接显示header...甚至y值能到负值 查看示例 这里还有一个问题,只检测了滚动到顶部,而没有检测滚动到底部。这是因为我没想到什么很好的方法去检测。
领取专属 10元无门槛券
手把手带您无忧上云