首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

详细设计一个文章页目录插件

因为我们都习惯从上到下从左到右的去浏览文章,所以我希望首先映入眼帘的是文章内容而不是文章目录;另外因为我的博客的首页和文章列表页都是左侧是浏览区域而右侧是操作区域,所以把目录放到右侧能保持整站的布局统一以及操作的便利性...首先我们要判断当前滚动向上还是向下滚动,可以根据两次滚动前后的偏移量来判断: 向上滚动 = 滚动后偏移量 < 滚动前偏移量 let lastSH = window.pageYOffset // 获取最近一次页面的滚动方向...很多文章页很长,所以有回到顶部这种功能,试想一下,如果当前页面已经滚动到最底部,这个时候来一下回到顶部,那刚刚写的优化代码会遍历几次?答案是:遍历次数将会是目录子项的总数。...,就是体验不太好,突然从一个位置滚动到另外一个位置,显得突兀,能不能来点动画效果?...+ 当前滚动距离 直接来看完整的动画实现滚动的函数: // 滚动到目标位置 function scrollToDest(destScrollTop) { let startTime; let

2.4K20
您找到你想要的搜索结果了吗?
是的
没有找到

js实现单张或多张图片持续无缝滚动

背景: 想要实现图片持续滚动,既然使用js,就千万不要加css动画、过渡等相关样式,如果想要滚动的平滑一下,可以一像素一像素的感动,则很平滑,如果加了过渡动画,当图片重置为0时,会有往回倒的动画效果,跟预期不符...原理: 图片滚动原理同图片轮播原理,同样也适用于文字滚动等一系列滚动,通过复制最后一张图片或最后一堆文字插入第一行,或复制第一张图片或一堆文字插入在结尾,来实现无缝拼接,前提:1、必须是没有设置过渡动画的...,2、重置为0的时候与当前已经滚动到的高度对于图片的位置而言肉眼看上去没变化。...this.elem.innerHTML = this.elem.innerHTML + this.elemHtml+ this.elemHtml; this.speed; // 如果向上或者向左滚动每次减...1,向下或者向右滚动每次加1 if(this.direction === 'top' || this.direction === 'left'){ this.speed

7.5K10

一个创建产品动画说明视频的新手指南

(时间轴快速指南) 由于这是针对动画初学者和对After Effects知之甚少的人,下面是您应该在时间轴上看到的内容: 左侧的眼睛图标显示/隐藏每个图层 右侧的三角形,这是你如何访问所有的图层属性,并最终使它们动起来...每个层的时间轴,其中关键帧(动画中的转换的开始或结束点)将被标记在右侧 在这些下方,您将看到一个缩放栏(小山和一个大山)。尽可能缩小。 ?...使播放头(较大的蓝色,向下的箭头,您可以像在视频上一样从第二个标记拖动到左侧)为零,单击不透明度左侧的秒表,然后通过键入将值设置为0%它或单击并拖动标记直到其达到零。 ?...选择所有图层并在时间轴上完全缩小,将鼠标悬停在彩色条的右侧。你应该得到一个调整大小的句柄。点击并拖动到时间轴的右侧。每层现在应该持续30秒。...(30秒的动画,每秒25帧,减29秒,二十帧)。 如果一切顺利,请在数字键盘上按0(或将播放头拖回到时间轴的开始位置,然后按空格键),查看自己的视频。

2.9K10

微信小程序实践:2.3 可滚动的容器组件之 scroll-view

10,在一些购物类或订餐类小程序中,左侧有物品分类,左侧是物品列表,单击分类,右侧自动滚动到相关位置,右侧列表上下滚动左侧分类菜单自动切换,获得高亮焦点,这样的功能是怎么实现的?...默认情况下scroll-top是0,当实体向上滚动时,其值慢慢增加。 ? 同理,scroll-left类似。当开启的是横向滚动时,scroll-left是距离左边界、子实体向左滚动的距离。...我们一般说「滚动到顶部、滚动到底部」,指的还不是内部滚动实体滚动到了它所能达到的最大值、最小值,而是指滚动实体顶部边缘到达了滚动外框的顶部,及底滚动实体底部边缘到达了滚动外框的底部。...它是一个布尔属性,添加它以后,当上面内容扩充时,微信会自动向上滚动一段扩充的距离。这就是「滚动锚定」策略。不是没有滚动,而是滚动冲抵了,scroll-top已经不一样了。...这里主要需要实现两个功能: 单击左侧菜单,右侧滚动到相应位置 在右侧滚动左侧菜单自动同步高亮 第一个功能点,可以通过scroll-into-view属性实现,将左侧菜单与右侧每块区域的id对应起来,单击时更新

14.1K30

QQ空间缓存图片_QQ空间原图

今天偶然打开PC端QQ空间时,我发现了一种似乎更好的方式 —— 鼠标移入时在范围内上下滚动图片预览,移出时停止滚动。...offsetParent (获取父元素)); dom.getBoundingClientRect() :它有四个常用值:left、top、right、bottom,分别是相对于当前视口(即此tab网页窗口左侧...class="after"> 这里class为before和after的两个标签就是前面所说的“占位”元素(至于QQ是怎么实现的,等笔者稍作研究后再回来更新),它们负责判断“图片是应该向上滑还是向下滑...但是如果你仔细看,你会发现由于transition动画效果的时间是固定的,在向上/下滑动过短的情况下再向下/上滑动那么滑动的会特别慢! !...再回到PC端QQ空间 —— 我们发现,它的transition时间竟然是动态变化的: 这…我猜测可能是设定了一个从上到下固定的时间,然后在JS中按照滑出部分高度(已经滑动的距离)占总高度的比例动态调节时间

6.2K20

android 有阻尼下拉刷新列表的实现方法

根据以上分析,我们可以知道,重画子View的原理就是: 当PullToRefreshListView已经滚动到顶部的时候,通过监控滑动手势来计算distanceY,从而确定要将canvas向上移动多少再重画子...ev.setAction(MotionEvent.ACTION_MOVE); } } else { // 在下拉过程中往上拉动listView使listView往下滚动到其没有滚动到顶部...如何判断ListView是否已经滚动到顶部 下一步,我们如何判断ListView是否处于“滚动到顶部”状态呢?这一问题我PullToRefreshListView的onScroll中解决。...下拉后的回滚动画 最后,当下拉结束松开手指时,我们需要为PullToRefreshListView执行一个回动画,我们在onTouchEvent方法中看到: // .........(2) 回滚动画应该也可以进行优化,具体怎么优化我也不清楚。。。

3.4K10

HarmonyOS-UIAbitity-枚举说明——【坚果派-红目香薰】

Back 鼠标左侧后退键。 Forward 鼠标左侧前进键。 None 无按键。 MouseAction 名称 描述 Press 鼠标按键按下。 Release 鼠标按键松开。...Both 动画将遵循Forwards和Backwards的规则,从而在两个方向上扩展动画属性。 PlayMode 名称 描述 Normal 动画按正常播放。 Reverse 动画反向播放。...Edge 名称 描述 Top 竖直方向上边缘 Center 竖直方向居中位置 Bottom 竖直方向下边缘 Baseline 交叉轴方向文本基线位置 Start 水平方向起始位置 Middle 水平方向居中位置...Top 从下向上。 Right 从左向右。 Bottom 从上向下。 LeftTop 左上。 LeftBottom 左下。 RightTop 右上。 RightBottom 右下。 None 无。...Placement8+ 名称 描述 Left 气泡提示位于组件左侧,与组件左侧中心对齐。 Right 气泡提示位于组件右侧,与组件右侧中心对齐。 Top 气泡提示位于组件上侧,与组件上侧中心对齐。

11510

Cypress web自动化30-操作窗口滚动条(scrollTo)

x(数字,字符串) 距离窗口/元素左侧的距离(以像素为单位)或滚动到的窗口/元素宽度的百分比。 y(数字,字符串) 与窗口/元素顶部之间的距离(以像素为单位)或滚动到的窗口/元素高度的百分比。...) easing |swing | 将随着缓动动画滚动 timeout |defaultCommandTimeout | 命令行默认超时时间 4000毫秒 position 窗口滚动到的指定位置...position 参数将窗口或元素滚动到的指定位置。...('top')}) }) x 横向左右滚动 x 参数控制横向左右滚动,x参数可以是数字,也可以是字符串,也可以是百分比 // x 横向,距离左侧100像素,可以是数字100 cy.scrollTo...('200px') // 按百分比,滚动50%,也就是正中间 cy.wait(3000) cy.scrollTo('50%') y 纵向上滚动 y 参数控制纵向上滚动,y参数可以是数字,也可以是字符串

1.5K20

「JavaScript 」动画基础 - 02

1.1.2 动画函数多个目标值之间移动 可以让动画函数从 800 移动到 500。...点击右侧按钮一次,图片往左播放一张,以此类推,左侧按钮同理。 图片播放的同时,下面小圆圈模块跟随一起变化。 点击小圆圈,可以播放相应图片。 鼠标不经过轮播图,轮播图也会自动播放图片。...点击右侧按钮, 图片滚动一张 var num = 0; // circle 控制小圆圈的播放 var circle = 0; // flag 节流阀 var flag...案例:返回顶部 带有动画的返回顶部 此时可以继续使用我们封装的动画函数 只需要把所有的left 相关的值改为 跟 页面垂直滚动距离相关就可以了 页面滚动了多少,可以通过 window.pageYOffset...当我们页面滚动到main盒子,就显示 goback模块 if (window.pageYOffset >= mainTop) { goBack.style.display = '

32920

初学前端用代码实现一个网页老虎机游戏

所以我们在列表移动之前要做一件事情,我们要把这个列表的初始化布局给调整一下,将全部列表都向上移动,使数字“1”移动到格子中去。...的内置属性scrollHeight获得列表的高度; 因为整个列表向上动到最后数字1会留在格子中,列表中全部有6个数字,我们只需要向上移动5个数字的高度即可。...如果只是滚动到最后一个数字那还是比较容易的,那我们只需要将向上移动的距离还原为0就可以了,这样子就能达到向下移动的效果。...随机的滚动结果是怎么实现的? 随机的滚动结果解释起来可能会比较难以理解一点。我们再回顾一下,在上面我们实现向下滚动的原理是将向上移动的距离还原为0('translateY(0))来实现的。...,由于游戏开始过程中数字列表添加了过渡动画,会导致数字列表在回到初始位置的过程也会存在过渡动画,因此我们需要调用之前先声明好的removeTranstion()来删除全部数字列表的过渡效果。

5.1K10

常见网页特效案例

2.点击右侧按钮一次,图片往左播放一张,以此类推,左侧按钮同理。 3.图片播放的同时,下面小圆圈模块跟随一起变化。 4.点击小圆圈,可以播放相应图片。...点击右侧按钮, 图片滚动一张 var num = 0; // circle 控制小圆圈的播放 var circle = 0; // flag 节流阀 var flag...案例:返回顶部 带有动画的返回顶部 此时可以继续使用我们封装的动画函数 只需要把所有的left 相关的值改为 跟 页面垂直滚动距离相关就可以了 页面滚动了多少,可以通过 window.pageYOffset...当我们页面滚动到main盒子,就显示 goback模块 if (window.pageYOffset >= mainTop) {...animate(cloud, this.offsetLeft); }); // (2) 鼠标离开就回到起始的位置

2.2K40

Material Design — App bars: topApp bars: top

---- 分解 在 top app bar 中推荐的元素放置顺序是(从左到右的语言顺序中): ·将导航放置在最左侧 ·将任何 titles 放在导航的右侧 ·将 contextual actions 置于导航的右侧...它可以采取以下任何一种形式: ·一个 menu icon,打开一个 navigation drawer ·向上箭头,用于导航 app 的层次结构 ·后退箭头,返回到前一个屏幕 ?...任何剩余的或次要的动作都应放置在 overflow menu 中(3) ---- 行为 滚动 滚动时,e top app bar 可保留原位,或以下列方式转换: ·向上滚动隐藏 top app bar...·向下滚动显示 top app bar 当 top app bar滚动时,其海拔在其他元素之上变得非常明显。...在滚动时,它们会增加海拔并让内容在它们后面滚动 ? 当向上滚动时,使用带有图像的 prominent top app bars 可以转换为正常的 top app bars。

2.2K60

页面滚动效果库,有点儿皮

一分钟,让页面滚动更有趣 前段时间刚给大家推荐了一个强大易用的跨平台 CSS3 动画库 Animate.css,内置了很多常用的 CSS 动画,可以一行代码让页面动起来。...[image-20210423133600820.png] 官网即这个库的介绍和演示页面,当你向下滚动页面时,一个个狗头会以各种不同的动画进行展现。...[image-20210423133849725.png] WOW.js 基于 Animate.css,能够在页面滚动到某一位置时,触发 Animate.css 的内置动画,从而让页面更加生动。...如果自己来做滚动动画,你要编写 JS 代码来判断页面滚动位置是否达到元素所处位置,再动态添加类名,一个元素也还好说,如果想控制多个,就比较麻烦了。 如果使用 WOW.js,一切就简单了许多。...比如我选择 “向上弹出” 的动效,对应的类名是 bounceInUp: 然后就大功告成啦,生日蛋糕默认会隐藏,直到用户滚动到它才会向上弹出

2.3K21
领券