资讯专栏INFORMATION COLUMN

Scrollbar平滑滚到指定位置

AlphaWallet / 3385人阅读

摘要:背景近期项目需求实现同一页面内进行导航跳转。一开始想到的是通过描点定位,但是跳转效果不好,没有过渡的动画。于是自己封装了一个跳转函数,支持立刻跳转线性过渡先快后慢缓动三种跳转方式。此模块由原生编写,不依赖其他插件库。

背景

近期项目需求实现同一页面内进行导航跳转。一开始想到的是通过描点定位,但是跳转效果不好,没有过渡的动画。后来试了scrollIntoView和scroll-behavior: smooth,一方面浏览器兼容性不好,另一方面无法控制过渡时间,内容很多时跳转太慢。于是自己封装了一个跳转函数,支持立刻跳转、线性过渡、先快后慢(缓动)三种跳转方式。此模块由原生JS编写,不依赖其他插件库。

演示

详见:https://theoxiong.github.io/s...

安装方法
$   npm install scroll-ease-efficient 
使用
// 支持 CommonJs/ES6/Script 三种引入
// 1. CommonJs 
const { scrollTo } = require("scroll-ease-efficient")
// 2. ES6
import { scrollTo } from "scroll-ease-efficient"
// 3. Script


// scrollable element
let scrollEle = document.getElementById("id")

// 基本用法
scrollTo(scrollEle, 500)

// 指定过渡时间(单位ms)
scrollTo(scrollEle, 500, { duration: 500})

// 指定过渡动画效果, 支持"gradually"/"liner"/"instant"
scrollTo(scrollEle, 500, { timingFunction: "gradually"})

// 指定过渡时间和动画效果
scrollTo(scrollEle, 500, { timingFunction: "liner", duration: 500})

// 指定缓动因子, 只对"gradually"方式有效
scrollTo(scrollEle, 500, { timingFunction: "gradually", factor: 6})
函数说明

function scrollTo (ele, pos, [options])

ele < Dom> target scrollable element

pos specified the position which scroll to

options

timingFunction specify velocity curve of scrolling, default value is "linear"

duration specify time of scrolling, default value is 1000

factor specify the factor of gradually scrolling, it is only for gradually mode, should less then 100, and more then 1

项目地址:https://github.com/TheoXiong/...   欢迎star

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/100121.html

相关文章

  • css隐藏移动端滚动条并且ios上平滑滚动

    摘要:完整代码如下移动端隐藏滚动条解决方案解决上滑动不流畅推荐娃娃日用品美妆护肤娃娃日用品美妆护肤娃娃 HTML代码如下 移动端隐藏滚动条解决方案 * { padding: 0; margin: 0; } .par-type { height: 50px; ...

    wangzy2019 评论0 收藏0
  • css隐藏移动端滚动条并且ios上平滑滚动

    摘要:完整代码如下移动端隐藏滚动条解决方案解决上滑动不流畅推荐娃娃日用品美妆护肤娃娃日用品美妆护肤娃娃 HTML代码如下 移动端隐藏滚动条解决方案 * { padding: 0; margin: 0; } .par-type { height: 50px; ...

    Karrdy 评论0 收藏0
  • 完美实现一个“回到顶部”

    摘要:在浏览器中,页面默认滚动是在标签上,移动端大多数在标签上,在我们想要实现平滑回到顶部,只需在这两个标签上都加上准确的说,写在容器元素上,可以让容器非鼠标手势触发的滚动变得平滑,而不局限于,标签。 前言 在实际应用中,经常用到滚动到页面顶部或某个位置,一般简单用锚点处理或用js将document.body.scrollTop设置为0,结果是页面一闪而过滚到指定位置,不是特别友好。我们想要...

    layman 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<