123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418 |
- <!DOCTYPE html>
- <html lang="zh-CN">
- <head>
- <meta charset="utf-8">
- <meta name="viewport" content="width=device-width,initial-scale=1">
- <title>API | BetterScroll 2.0</title>
- <meta name="generator" content="VuePress 1.9.10">
- <link rel="shortcut icon" href="/docs/assets/bs.ico" type="images/x-icon">
- <script src="https://www.googletagmanager.com/gtag/js?id=G-7E85TW7P27"></script>
- <script type="text/javascript">
- window.dataLayer = window.dataLayer || [];
- function gtag(){dataLayer.push(arguments);}
- gtag('js', new Date());
- gtag('config', 'G-7E85TW7P27');
- </script>
- <meta name="description" content="Make Scroll Perfect">
-
- <link rel="preload" href="/docs/assets/css/0.styles.0cd93813.css" as="style"><link rel="preload" href="/docs/assets/js/app.c71b64d3.js" as="script"><link rel="preload" href="/docs/assets/js/5.d6412664.js" as="script"><link rel="preload" href="/docs/assets/js/4.4855b9ef.js" as="script"><link rel="preload" href="/docs/assets/js/3.481632b4.js" as="script"><link rel="preload" href="/docs/assets/js/102.79d86e3d.js" as="script"><link rel="preload" href="/docs/assets/js/7.518ccda7.js" as="script"><link rel="prefetch" href="/docs/assets/js/1.8644db92.js"><link rel="prefetch" href="/docs/assets/js/10.6f8c38eb.js"><link rel="prefetch" href="/docs/assets/js/100.ee08226e.js"><link rel="prefetch" href="/docs/assets/js/101.fd2f3d9f.js"><link rel="prefetch" href="/docs/assets/js/103.7a3ae3b5.js"><link rel="prefetch" href="/docs/assets/js/104.7be4589d.js"><link rel="prefetch" href="/docs/assets/js/105.75386d15.js"><link rel="prefetch" href="/docs/assets/js/106.a4a18e8d.js"><link rel="prefetch" href="/docs/assets/js/107.561ec2e2.js"><link rel="prefetch" href="/docs/assets/js/108.1c61689f.js"><link rel="prefetch" href="/docs/assets/js/109.da71a73e.js"><link rel="prefetch" href="/docs/assets/js/110.5e0fa2d1.js"><link rel="prefetch" href="/docs/assets/js/111.1e326dd1.js"><link rel="prefetch" href="/docs/assets/js/112.590ba317.js"><link rel="prefetch" href="/docs/assets/js/113.cf201ace.js"><link rel="prefetch" href="/docs/assets/js/114.6d895ce2.js"><link rel="prefetch" href="/docs/assets/js/115.572aee19.js"><link rel="prefetch" href="/docs/assets/js/116.754722a0.js"><link rel="prefetch" href="/docs/assets/js/117.15e4dab3.js"><link rel="prefetch" href="/docs/assets/js/118.721d68f8.js"><link rel="prefetch" href="/docs/assets/js/119.c5c28d96.js"><link rel="prefetch" href="/docs/assets/js/120.12cd2e0e.js"><link rel="prefetch" href="/docs/assets/js/121.e41f8100.js"><link rel="prefetch" href="/docs/assets/js/122.9ebe2f53.js"><link rel="prefetch" href="/docs/assets/js/123.f90c91f9.js"><link rel="prefetch" href="/docs/assets/js/13.b0c40cd7.js"><link rel="prefetch" href="/docs/assets/js/14.28bec126.js"><link rel="prefetch" href="/docs/assets/js/15.87b22af4.js"><link rel="prefetch" href="/docs/assets/js/16.c10e14e7.js"><link rel="prefetch" href="/docs/assets/js/17.5c921c77.js"><link rel="prefetch" href="/docs/assets/js/18.dc23b7e3.js"><link rel="prefetch" href="/docs/assets/js/19.a4034f95.js"><link rel="prefetch" href="/docs/assets/js/2.03f0f2c8.js"><link rel="prefetch" href="/docs/assets/js/20.8633fd45.js"><link rel="prefetch" href="/docs/assets/js/21.1fbf8d7e.js"><link rel="prefetch" href="/docs/assets/js/22.2888cfc5.js"><link rel="prefetch" href="/docs/assets/js/23.f951d302.js"><link rel="prefetch" href="/docs/assets/js/24.12842718.js"><link rel="prefetch" href="/docs/assets/js/25.5a5a3137.js"><link rel="prefetch" href="/docs/assets/js/26.88e81f0b.js"><link rel="prefetch" href="/docs/assets/js/27.152b8fda.js"><link rel="prefetch" href="/docs/assets/js/28.22550ea8.js"><link rel="prefetch" href="/docs/assets/js/29.f43fa807.js"><link rel="prefetch" href="/docs/assets/js/30.4ed38f67.js"><link rel="prefetch" href="/docs/assets/js/31.af4018f6.js"><link rel="prefetch" href="/docs/assets/js/32.930ee0b7.js"><link rel="prefetch" href="/docs/assets/js/33.c6a68c75.js"><link rel="prefetch" href="/docs/assets/js/34.6d10da1e.js"><link rel="prefetch" href="/docs/assets/js/35.11ba7b51.js"><link rel="prefetch" href="/docs/assets/js/36.8a54712b.js"><link rel="prefetch" href="/docs/assets/js/37.b26eb85d.js"><link rel="prefetch" href="/docs/assets/js/38.d6569a11.js"><link rel="prefetch" href="/docs/assets/js/39.1d22cfba.js"><link rel="prefetch" href="/docs/assets/js/40.577a94d7.js"><link rel="prefetch" href="/docs/assets/js/41.155e01e0.js"><link rel="prefetch" href="/docs/assets/js/42.3c26eaba.js"><link rel="prefetch" href="/docs/assets/js/43.d90991e2.js"><link rel="prefetch" href="/docs/assets/js/44.5437344c.js"><link rel="prefetch" href="/docs/assets/js/45.0d2eca0a.js"><link rel="prefetch" href="/docs/assets/js/46.11455b40.js"><link rel="prefetch" href="/docs/assets/js/47.1ee1a8f0.js"><link rel="prefetch" href="/docs/assets/js/48.c82450ab.js"><link rel="prefetch" href="/docs/assets/js/49.8016ee5f.js"><link rel="prefetch" href="/docs/assets/js/50.ab73e091.js"><link rel="prefetch" href="/docs/assets/js/51.bce6eb99.js"><link rel="prefetch" href="/docs/assets/js/52.c9b1992f.js"><link rel="prefetch" href="/docs/assets/js/53.7057f0f5.js"><link rel="prefetch" href="/docs/assets/js/54.cbb0a6b5.js"><link rel="prefetch" href="/docs/assets/js/55.89176a68.js"><link rel="prefetch" href="/docs/assets/js/56.cd04bae9.js"><link rel="prefetch" href="/docs/assets/js/57.c7a42e07.js"><link rel="prefetch" href="/docs/assets/js/58.09d6cb1b.js"><link rel="prefetch" href="/docs/assets/js/59.8445a09f.js"><link rel="prefetch" href="/docs/assets/js/6.5737c458.js"><link rel="prefetch" href="/docs/assets/js/60.86b1f417.js"><link rel="prefetch" href="/docs/assets/js/61.fa371ad1.js"><link rel="prefetch" href="/docs/assets/js/62.dbc75ddc.js"><link rel="prefetch" href="/docs/assets/js/63.a4465c93.js"><link rel="prefetch" href="/docs/assets/js/64.a39c3193.js"><link rel="prefetch" href="/docs/assets/js/65.a7275f82.js"><link rel="prefetch" href="/docs/assets/js/66.afd0af7d.js"><link rel="prefetch" href="/docs/assets/js/67.8009e00e.js"><link rel="prefetch" href="/docs/assets/js/68.de3c51dd.js"><link rel="prefetch" href="/docs/assets/js/69.41a50235.js"><link rel="prefetch" href="/docs/assets/js/70.938e9532.js"><link rel="prefetch" href="/docs/assets/js/71.af7fca59.js"><link rel="prefetch" href="/docs/assets/js/72.25df569a.js"><link rel="prefetch" href="/docs/assets/js/73.f16b7dc3.js"><link rel="prefetch" href="/docs/assets/js/74.d2184ed7.js"><link rel="prefetch" href="/docs/assets/js/75.9497b6fa.js"><link rel="prefetch" href="/docs/assets/js/76.2081d35e.js"><link rel="prefetch" href="/docs/assets/js/77.e5a8b470.js"><link rel="prefetch" href="/docs/assets/js/78.6d3ef23b.js"><link rel="prefetch" href="/docs/assets/js/79.025583e1.js"><link rel="prefetch" href="/docs/assets/js/8.8547d4ad.js"><link rel="prefetch" href="/docs/assets/js/80.e7e3ef35.js"><link rel="prefetch" href="/docs/assets/js/81.569d569f.js"><link rel="prefetch" href="/docs/assets/js/82.ac3ed0f7.js"><link rel="prefetch" href="/docs/assets/js/83.3393dfc3.js"><link rel="prefetch" href="/docs/assets/js/84.e5352ac1.js"><link rel="prefetch" href="/docs/assets/js/85.c7cdb129.js"><link rel="prefetch" href="/docs/assets/js/86.0aa0af94.js"><link rel="prefetch" href="/docs/assets/js/87.0db12b1e.js"><link rel="prefetch" href="/docs/assets/js/88.e8651cfa.js"><link rel="prefetch" href="/docs/assets/js/89.1b58abde.js"><link rel="prefetch" href="/docs/assets/js/9.0a882dfc.js"><link rel="prefetch" href="/docs/assets/js/90.d65d2d13.js"><link rel="prefetch" href="/docs/assets/js/91.32b2ad41.js"><link rel="prefetch" href="/docs/assets/js/92.795675a1.js"><link rel="prefetch" href="/docs/assets/js/93.818e5569.js"><link rel="prefetch" href="/docs/assets/js/94.79c2b16e.js"><link rel="prefetch" href="/docs/assets/js/95.4810ee5e.js"><link rel="prefetch" href="/docs/assets/js/96.6e382fd5.js"><link rel="prefetch" href="/docs/assets/js/97.e270d7b5.js"><link rel="prefetch" href="/docs/assets/js/98.728ef6c2.js"><link rel="prefetch" href="/docs/assets/js/99.c75096e0.js"><link rel="prefetch" href="/docs/assets/js/vendors~docsearch.2091e099.js">
- <link rel="stylesheet" href="/docs/assets/css/0.styles.0cd93813.css">
- </head>
- <body>
- <div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/docs/zh-CN/" class="home-link router-link-active"><img src="https://dpubstatic.udache.com/static/dpubimg/t_L6vAgQ-E/logo.svg" alt="BetterScroll 2.0" class="logo"> <span class="site-name can-hide">BetterScroll 2.0</span></a> <div class="links"><form id="search-form" role="search" class="algolia-search-wrapper search-box"><input id="algolia-search-input" class="search-query"></form> <nav class="nav-links can-hide"><div class="nav-item"><a href="/docs/zh-CN/guide/" class="nav-link router-link-active">
- 指南
- </a></div><div class="nav-item"><a href="/docs/zh-CN/plugins/" class="nav-link">
- 插件
- </a></div><div class="nav-item"><a href="/docs/zh-CN/FAQ/" class="nav-link">
- 常见问题
- </a></div><div class="nav-item"><a href="https://github.com/ustbhuangyi/better-scroll/issues" target="_blank" rel="noopener noreferrer" class="nav-link external">
- 讨论
- <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Select language" class="dropdown-title"><span class="title">选择语言</span> <span class="arrow down"></span></button> <button type="button" aria-label="Select language" class="mobile-dropdown-title"><span class="title">选择语言</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/docs/en-US/guide/base-scroll-api.html" class="nav-link">
- English
- </a></li><li class="dropdown-item"><!----> <a href="/docs/zh-CN/guide/base-scroll-api.html" aria-current="page" class="nav-link router-link-exact-active router-link-active">
- 简体中文
- </a></li></ul></div></div> <a href="https://github.com/ustbhuangyi/better-scroll" target="_blank" rel="noopener noreferrer" class="repo-link">
- GitHub
- <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/docs/zh-CN/guide/" class="nav-link router-link-active">
- 指南
- </a></div><div class="nav-item"><a href="/docs/zh-CN/plugins/" class="nav-link">
- 插件
- </a></div><div class="nav-item"><a href="/docs/zh-CN/FAQ/" class="nav-link">
- 常见问题
- </a></div><div class="nav-item"><a href="https://github.com/ustbhuangyi/better-scroll/issues" target="_blank" rel="noopener noreferrer" class="nav-link external">
- 讨论
- <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Select language" class="dropdown-title"><span class="title">选择语言</span> <span class="arrow down"></span></button> <button type="button" aria-label="Select language" class="mobile-dropdown-title"><span class="title">选择语言</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/docs/en-US/guide/base-scroll-api.html" class="nav-link">
- English
- </a></li><li class="dropdown-item"><!----> <a href="/docs/zh-CN/guide/base-scroll-api.html" aria-current="page" class="nav-link router-link-exact-active router-link-active">
- 简体中文
- </a></li></ul></div></div> <a href="https://github.com/ustbhuangyi/better-scroll" target="_blank" rel="noopener noreferrer" class="repo-link">
- GitHub
- <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></nav> <ul class="sidebar-links"><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>指南</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/docs/zh-CN/guide/" aria-current="page" class="sidebar-link">介绍</a></li><li><a href="/docs/zh-CN/guide/how-to-install.html" class="sidebar-link">安装</a></li><li><a href="/docs/zh-CN/guide/use.html" class="sidebar-link">使用</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading open"><span>核心滚动</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/docs/zh-CN/guide/base-scroll.html" class="sidebar-link">核心滚动</a></li><li><a href="/docs/zh-CN/guide/base-scroll-options.html" class="sidebar-link">配置项</a></li><li><a href="/docs/zh-CN/guide/base-scroll-api.html" aria-current="page" class="active sidebar-link">API</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/docs/zh-CN/guide/base-scroll-api.html#属性" class="sidebar-link">属性</a></li><li class="sidebar-sub-header"><a href="/docs/zh-CN/guide/base-scroll-api.html#方法" class="sidebar-link">方法</a></li><li class="sidebar-sub-header"><a href="/docs/zh-CN/guide/base-scroll-api.html#事件-vs-钩子" class="sidebar-link">事件 VS 钩子</a></li><li class="sidebar-sub-header"><a href="/docs/zh-CN/guide/base-scroll-api.html#事件" class="sidebar-link">事件</a></li><li class="sidebar-sub-header"><a href="/docs/zh-CN/guide/base-scroll-api.html#钩子" class="sidebar-link">钩子</a></li></ul></li></ul></section></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="api"><a href="#api" class="header-anchor">#</a> API</h1> <p>如果想要彻底了解 BetterScroll,就需要了解其实例的常用属性、灵活的方法以及提供的事件与钩子。</p> <h2 id="属性"><a href="#属性" class="header-anchor">#</a> 属性</h2> <p>有时候我们想基于 BetterScroll 做一些扩展,需要对 BetterScroll 的一些属性有所了解,下面介绍几个常用属性。</p> <h3 id="x"><a href="#x" class="header-anchor">#</a> x</h3> <ul><li><strong>类型</strong>:number</li> <li><strong>作用</strong>:bs 横轴坐标。</li></ul> <h3 id="y"><a href="#y" class="header-anchor">#</a> y</h3> <ul><li><strong>类型</strong>:number</li> <li><strong>作用</strong>:bs 纵轴坐标。</li></ul> <h3 id="maxscrollx"><a href="#maxscrollx" class="header-anchor">#</a> maxScrollX</h3> <ul><li><strong>类型</strong>:number</li> <li><strong>作用</strong>:bs 最大横向滚动位置。</li> <li><strong>备注</strong>:bs 横向滚动的位置区间是 [minScrollX, maxScrollX],并且 maxScrollX 是负值。</li></ul> <h3 id="minscrollx"><a href="#minscrollx" class="header-anchor">#</a> minScrollX</h3> <ul><li><strong>类型</strong>:number</li> <li><strong>作用</strong>:bs 最小横向滚动位置。</li> <li><strong>备注</strong>:bs 横向滚动的位置区间是 [minScrollX, maxScrollX],并且 minScrollX 是正值。</li></ul> <h3 id="maxscrolly"><a href="#maxscrolly" class="header-anchor">#</a> maxScrollY</h3> <ul><li><strong>类型</strong>:number</li> <li><strong>作用</strong>:bs 最大纵向滚动位置。</li> <li><strong>备注</strong>:bs 纵向滚动的位置区间是 [minScrollY, maxScrollY],并且 maxScrollY 是负值。</li></ul> <h3 id="minscrolly"><a href="#minscrolly" class="header-anchor">#</a> minScrollY</h3> <ul><li><strong>类型</strong>:number</li> <li><strong>作用</strong>:bs 最小纵向滚动位置。</li> <li><strong>备注</strong>:bs 纵向滚动的位置区间是 [minScrollY, maxScrollY],并且 minScrollY 是正值。</li></ul> <h3 id="movingdirectionx"><a href="#movingdirectionx" class="header-anchor">#</a> movingDirectionX</h3> <ul><li><strong>类型</strong>:number</li> <li><strong>作用</strong>:判断 bs 滑动过程中的方向(左右)。</li> <li><strong>备注</strong>:-1 表示手指从左向右滑,1 表示从右向左滑,0 表示没有滑动。</li></ul> <h3 id="movingdirectiony"><a href="#movingdirectiony" class="header-anchor">#</a> movingDirectionY</h3> <ul><li><strong>类型</strong>:number</li> <li><strong>作用</strong>:判断 bs 滑动过程中的方向(上下)。</li> <li><strong>备注</strong>:-1 表示手指从上往下滑,1 表示从下往上滑,0 表示没有滑动。</li></ul> <h3 id="directionx"><a href="#directionx" class="header-anchor">#</a> directionX</h3> <ul><li><strong>类型</strong>:number</li> <li><strong>作用</strong>:判断 bs 滑动结束后相对于开始滑动位置的方向(左右)。</li> <li><strong>备注</strong>:-1 表示手指从左向右滑,1 表示从右向左滑,0 表示没有滑动。</li></ul> <h3 id="directiony"><a href="#directiony" class="header-anchor">#</a> directionY</h3> <ul><li><strong>类型</strong>:number</li> <li><strong>作用</strong>:判断 bs 滑动结束后相对于开始滑动位置的方向(上下)。</li> <li><strong>备注</strong>:-1 表示手指从上往下滑,1 表示从下往上滑,0 表示没有滑动。</li></ul> <h3 id="enabled"><a href="#enabled" class="header-anchor">#</a> enabled</h3> <ul><li><strong>类型</strong>:boolean,</li> <li><strong>作用</strong>:判断当前 bs 是否处于启用状态,不再响应手指的操作。</li></ul> <h3 id="pending"><a href="#pending" class="header-anchor">#</a> pending</h3> <ul><li><strong>类型</strong>:boolean,</li> <li><strong>作用</strong>:判断当前 bs 是否处于滚动动画过程中。</li></ul> <h2 id="方法"><a href="#方法" class="header-anchor">#</a> 方法</h2> <p>BetterScroll 提供了很多灵活的 API,当我们基于 BetterScroll 去实现一些 feature 的时候,会用到这些 API,了解它们会有助于开发更加复杂的需求。</p> <h3 id="refresh"><a href="#refresh" class="header-anchor">#</a> refresh()</h3> <ul><li><strong>参数</strong>:无</li> <li><strong>返回值</strong>:无</li> <li><strong>作用</strong>:重新计算 BetterScroll,当 DOM 结构发生变化的时候务必要调用确保滚动的效果正常。</li></ul> <h3 id="scrollto-x-y-time-easing-extratransform"><a href="#scrollto-x-y-time-easing-extratransform" class="header-anchor">#</a> scrollTo(x, y, time, easing, extraTransform)</h3> <ul><li><strong>参数</strong>:
- <ul><li>{number} x 横轴坐标(单位 px)</li> <li>{number} y 纵轴坐标(单位 px)</li> <li>{number} time 滚动动画执行的时长(单位 ms)</li> <li>{Object} easing 缓动函数,一般不建议修改,如果想修改,参考源码中的 <code>packages/shared-utils/src/ease.ts</code> 里的写法</li> <li>{Object} extraTransform,只有在你想要修改 CSS transform 的一些其他属性的时候,你才需要传入此参数,结构如下:</li></ul> <div class="language-js extra-class"><pre class="language-js"><code><span class="token keyword">let</span> extraTransform <span class="token operator">=</span> <span class="token punctuation">{</span>
- <span class="token comment">// 起点的属性</span>
- <span class="token literal-property property">start</span><span class="token operator">:</span> <span class="token punctuation">{</span>
- <span class="token literal-property property">scale</span><span class="token operator">:</span> <span class="token number">0</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token comment">// 终点的属性</span>
- <span class="token literal-property property">end</span><span class="token operator">:</span> <span class="token punctuation">{</span>
- <span class="token literal-property property">scale</span><span class="token operator">:</span> <span class="token number">1.1</span>
- <span class="token punctuation">}</span>
- <span class="token punctuation">}</span>
- bs<span class="token punctuation">.</span><span class="token function">scrollTo</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span> <span class="token operator">-</span><span class="token number">60</span><span class="token punctuation">,</span> <span class="token number">300</span><span class="token punctuation">,</span> <span class="token keyword">undefined</span><span class="token punctuation">,</span> extraTransform<span class="token punctuation">)</span>
- </code></pre></div></li> <li><strong>返回值</strong>:无</li> <li><strong>作用</strong>:滚动到指定的 x,y 位置。</li></ul> <h3 id="scrollby-x-y-time-easing"><a href="#scrollby-x-y-time-easing" class="header-anchor">#</a> scrollBy(x, y, time, easing)</h3> <ul><li><strong>参数</strong>:
- <ul><li>{number} x 横轴变化量(单位 px)</li> <li>{number} y 纵轴变化量(单位 px)</li> <li>{number} time 滚动动画执行的时长(单位 ms)</li> <li>{Object} easing 缓动函数,一般不建议修改,如果想修改,参考源码中的 <code>packages/shared-utils/src/ease.ts</code> 里的写法</li></ul></li> <li><strong>返回值</strong>:无</li> <li><strong>作用</strong>:相对于当前位置偏移滚动 x,y 的距离。</li></ul> <h3 id="scrolltoelement-el-time-offsetx-offsety-easing"><a href="#scrolltoelement-el-time-offsetx-offsety-easing" class="header-anchor">#</a> scrollToElement(el, time, offsetX, offsetY, easing)</h3> <ul><li><strong>参数</strong>:
- <ul><li>{DOM | string} el 滚动到的目标元素, 如果是字符串,则内部会尝试调用 querySelector 转换成 DOM 对象。</li> <li>{number} time 滚动动画执行的时长(单位 ms)</li> <li>{number | boolean} offsetX 相对于目标元素的横轴偏移量,如果设置为 true,则滚到目标元素的中心位置</li> <li>{number | boolean} offsetY 相对于目标元素的纵轴偏移量,如果设置为 true,则滚到目标元素的中心位置</li> <li>{Object} easing 缓动函数,一般不建议修改,如果想修改,参考源码中的 <code>packages/shared-utils/src/ease.ts</code> 里的写法</li></ul></li> <li><strong>返回值</strong>:无</li> <li><strong>作用</strong>:滚动到指定的目标元素。</li></ul> <h3 id="stop"><a href="#stop" class="header-anchor">#</a> stop()</h3> <ul><li><strong>参数</strong>:无</li> <li><strong>返回值</strong>:无</li> <li><strong>作用</strong>:立即停止当前运行的滚动动画。</li></ul> <h3 id="enable"><a href="#enable" class="header-anchor">#</a> enable()</h3> <ul><li><strong>参数</strong>:无</li> <li><strong>返回值</strong>:无</li> <li><strong>作用</strong>:启用 BetterScroll, 默认 开启。</li></ul> <h3 id="disable"><a href="#disable" class="header-anchor">#</a> disable()</h3> <ul><li><strong>参数</strong>:无</li> <li><strong>返回值</strong>:无</li> <li><strong>作用</strong>:禁用 BetterScroll,DOM 事件(如 touchstart、touchmove、touchend)的回调函数不再响应。</li></ul> <h3 id="destroy"><a href="#destroy" class="header-anchor">#</a> destroy()</h3> <ul><li><strong>参数</strong>:无</li> <li><strong>返回值</strong>:无</li> <li><strong>作用</strong>:销毁 BetterScroll,解绑事件。</li></ul> <h3 id="on-type-fn-context"><a href="#on-type-fn-context" class="header-anchor">#</a> on(type, fn, context)</h3> <ul><li><strong>参数</strong>:
- <ul><li>{string} type 事件名</li> <li>{Function} fn 回调函数</li> <li>{Object} context 函数执行的上下文环境,默认是 this</li></ul></li> <li><strong>返回值</strong>:无</li> <li><strong>作用</strong>:监听当前实例上的钩子函数。如:scroll、scrollEnd 等。</li> <li><strong>示例</strong>:</li></ul> <div class="language-javascript extra-class"><pre class="language-javascript"><code><span class="token keyword">import</span> BScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
- <span class="token keyword">let</span> scroll <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">BScroll</span><span class="token punctuation">(</span><span class="token string">'.wrapper'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span>
- <span class="token literal-property property">probeType</span><span class="token operator">:</span> <span class="token number">3</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- <span class="token keyword">function</span> <span class="token function">onScroll</span><span class="token punctuation">(</span><span class="token parameter">pos</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token template-string"><span class="token template-punctuation string">`</span><span class="token string">Now position is x: </span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span>pos<span class="token punctuation">.</span>x<span class="token interpolation-punctuation punctuation">}</span></span><span class="token string">, y: </span><span class="token interpolation"><span class="token interpolation-punctuation punctuation">${</span>pos<span class="token punctuation">.</span>y<span class="token interpolation-punctuation punctuation">}</span></span><span class="token template-punctuation string">`</span></span><span class="token punctuation">)</span>
- <span class="token punctuation">}</span>
- scroll<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'scroll'</span><span class="token punctuation">,</span> onScroll<span class="token punctuation">)</span>
- </code></pre></div><h3 id="once-type-fn-context"><a href="#once-type-fn-context" class="header-anchor">#</a> once(type, fn, context)</h3> <ul><li><strong>参数</strong>:
- <ul><li>{string} type 事件名</li> <li>{Function} fn 回调函数</li> <li>{Object} context 函数执行的上下文环境,默认是 this</li></ul></li> <li><strong>返回值</strong>:无</li> <li><strong>作用</strong>:监听一个自定义事件,但是只触发一次,在第一次触发之后移除监听器。</li></ul> <h3 id="off-type-fn"><a href="#off-type-fn" class="header-anchor">#</a> off(type, fn)</h3> <ul><li><strong>参数</strong>:
- <ul><li>{string} type 事件名</li> <li>{Function} fn 回调函数</li></ul></li> <li><strong>返回值</strong>:无</li> <li><strong>作用</strong>:移除自定义事件监听器。只会移除这个回调的监听器。</li> <li><strong>示例</strong>:</li></ul> <div class="language-javascript extra-class"><pre class="language-javascript"><code><span class="token keyword">import</span> BScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
- <span class="token keyword">let</span> scroll <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">BScroll</span><span class="token punctuation">(</span><span class="token string">'.wrapper'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span>
- <span class="token literal-property property">probeType</span><span class="token operator">:</span> <span class="token number">3</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- <span class="token keyword">function</span> <span class="token function">handler</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">'bs is scrolling now'</span><span class="token punctuation">)</span>
- <span class="token punctuation">}</span>
- scroll<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'scroll'</span><span class="token punctuation">,</span> handler<span class="token punctuation">)</span>
- scroll<span class="token punctuation">.</span><span class="token function">off</span><span class="token punctuation">(</span><span class="token string">'scroll'</span><span class="token punctuation">,</span> handler<span class="token punctuation">)</span>
- </code></pre></div><h2 id="事件-vs-钩子"><a href="#事件-vs-钩子" class="header-anchor">#</a> 事件 VS 钩子</h2> <p>基于 2.x 的架构设计,以及对 1.x 事件的兼容,我们延伸出两个概念 ——『<strong>事件</strong>』以及『<strong>钩子</strong>』。从本源上来说它们都是属于 <code>EventEmitter</code> 实例,只是叫法不一样。下面我们从节选的源码来讲解一下:</p> <div class="language-typescript extra-class"><pre class="language-typescript"><code> <span class="token keyword">export</span> <span class="token keyword">default</span> BScrollCore <span class="token keyword">extends</span> <span class="token class-name">EventEmitter</span> <span class="token punctuation">{</span>
- hooks<span class="token operator">:</span> EventEmitter
- <span class="token punctuation">}</span>
- </code></pre></div><ul><li><p><strong>BScrollCore</strong></p> <p>本身继承了 EventEmitter。它派发出来的,我们都称之为『<strong>事件</strong>』。</p> <div class="language-js extra-class"><pre class="language-js"><code> <span class="token keyword">import</span> BScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
- <span class="token keyword">let</span> bs <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">BScroll</span><span class="token punctuation">(</span><span class="token string">'.wrapper'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- <span class="token comment">// 监听 bs 的 scroll 事件</span>
- bs<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'scroll'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- <span class="token comment">// 监听 bs 的 refresh 事件</span>
- bs<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'refresh'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></li> <li><p><strong>BScrollCore.hooks</strong></p> <p>hooks 也是 EventEmitter 的实例。它派发出来的,我们都称之为『<strong>钩子</strong>』。</p> <div class="language-js extra-class"><pre class="language-js"><code> <span class="token keyword">import</span> BScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
- <span class="token keyword">let</span> bs <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">BScroll</span><span class="token punctuation">(</span><span class="token string">'.wrapper'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- <span class="token comment">// 监听 bs 的 refresh 钩子</span>
- bs<span class="token punctuation">.</span>hooks<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'refresh'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- <span class="token comment">// 监听 bs 的 enable 钩子</span>
- bs<span class="token punctuation">.</span>hooks<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'enable'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></li></ul> <p>相信现在大家对两者有了更好的区分吧,『<strong>事件</strong>』是为了 1.x 的兼容考虑,用户一般关注的是事件的派发,但是如果要编写一款插件,你应该更加关注『<strong>钩子</strong>』。</p> <h2 id="事件"><a href="#事件" class="header-anchor">#</a> 事件</h2> <p>在 2.0 当中,BetterScroll 事件与 1.x 的事件是拉齐的,只有 BetterScroll 会派发『<strong>事件</strong>』,如果你在编写插件的时候需要暴露事件,你也应该通过 BetterScroll 来派发,<a href="/docs/zh-CN/plugins/how-to-write.html">详细的教程看这</a>,目前的事件分为下面几种:</p> <ul><li><p><strong>refresh</strong></p> <ul><li><strong>触发时机</strong>:BetterScroll 重新计算</li></ul> <div class="language-js extra-class"><pre class="language-js"><code> <span class="token keyword">import</span> BetterScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
- <span class="token keyword">const</span> bs <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">BetterScroll</span><span class="token punctuation">(</span><span class="token string">'.wrapper'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- bs<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'refresh'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></li> <li><p><strong>enable</strong></p> <ul><li><strong>触发时机</strong>:BetterScroll 启用,开始响应用户交互</li></ul> <div class="language-js extra-class"><pre class="language-js"><code> bs<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'enable'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></li> <li><p><strong>disable</strong></p> <ul><li><strong>触发时机</strong>:BetterScroll 禁用,不再响应用户交互</li></ul> <div class="language-js extra-class"><pre class="language-js"><code> bs<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'disable'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></li> <li><p><strong>beforeScrollStart</strong></p> <ul><li><strong>触发时机</strong>:用户手指放在滚动区域的时候</li></ul> <div class="language-js extra-class"><pre class="language-js"><code> bs<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'beforeScrollStart'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></li> <li><p><strong>scrollStart</strong></p> <ul><li><strong>触发时机</strong>:content 元素满足滚动条件,即将开始滚动</li></ul> <div class="language-js extra-class"><pre class="language-js"><code> bs<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'scrollStart'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></li> <li><p><strong>scroll</strong></p> <ul><li><strong>触发时机</strong>:正在滚动</li></ul> <div class="language-js extra-class"><pre class="language-js"><code> bs<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'scroll'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token parameter">position</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
- console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>position<span class="token punctuation">.</span>x<span class="token punctuation">,</span> position<span class="token punctuation">.</span>y<span class="token punctuation">)</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></li> <li><p><strong>scrollEnd</strong></p> <ul><li><strong>触发时机</strong>:滚动结束,或者让一个正在滚动的 content 强制停止</li></ul> <div class="language-js extra-class"><pre class="language-js"><code> bs<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'scrollEnd'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></li> <li><p><strong>scrollCancel</strong></p> <ul><li><strong>触发时机</strong>:滚动取消</li></ul> <div class="language-js extra-class"><pre class="language-js"><code> bs<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'scrollCancel'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></li> <li><p><strong>touchEnd</strong></p> <ul><li><strong>触发时机</strong>:用户手指离开滚动区域</li></ul> <div class="language-js extra-class"><pre class="language-js"><code> bs<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'touchEnd'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></li> <li><p><strong>flick</strong></p> <ul><li><strong>触发时机</strong>:用户触发轻拂操作</li></ul> <div class="language-js extra-class"><pre class="language-js"><code> bs<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'flick'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></li> <li><p><strong>destroy</strong></p> <ul><li><strong>触发时机</strong>:BetterScroll 销毁</li></ul> <div class="language-js extra-class"><pre class="language-js"><code> bs<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'destroy'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></li> <li><p><strong>contentChanged</strong> <span class="badge tip" style="vertical-align:top;" data-v-15b7b770>2.0.4</span></p> <ul><li><strong>触发时机</strong>:在调用 <code>bs.refresh()</code>,探测到 content DOM 变成了其他元素的时候</li></ul> <div class="language-typescript extra-class"><pre class="language-typescript"><code> <span class="token comment">// bs 版本 >= 2.0.4</span>
- bs<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'contentChanged'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span>newContent<span class="token operator">:</span> HTMLElement<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></li></ul> <p>以下的事件必须注册括号中的<strong>插件</strong>才会派发:</p> <ul><li><p><strong>alterOptions(<strong>mouse-wheel</strong>)</strong></p> <ul><li><strong>触发时机</strong>:滚轮滚动开始</li></ul> <div class="language-js extra-class"><pre class="language-js"><code> <span class="token keyword">import</span> BetterScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
- <span class="token keyword">import</span> MouseWheel <span class="token keyword">from</span> <span class="token string">'@better-scroll/mouse-wheel'</span>
- BetterScroll<span class="token punctuation">.</span><span class="token function">use</span><span class="token punctuation">(</span>MouseWheel<span class="token punctuation">)</span>
- <span class="token keyword">const</span> bs <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">BetterScroll</span><span class="token punctuation">(</span><span class="token string">'.wrapper'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span>
- <span class="token literal-property property">mouseWheel</span><span class="token operator">:</span> <span class="token boolean">true</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- bs<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'alterOptions'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token parameter">mouseWheelOptions</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
- <span class="token comment">/**
- * mouseWheelOptions.speed:鼠标滚轮滚动的速度
- * mouseWheelOptions.invert:滚轮滚动和 BetterScroll 滚动的方向是否一致
- * mouseWheelOptions.easeTime:滚动动画的缓动时长。
- * mouseWheelOptions.discreteTime:触发 wheelEnd 的间隔时长
- * mouseWheelOptions.throttleTime:滚轮滚动是高频率的动作,因此可以通过 throttleTime 来限制触发频率
- * mouseWheelOptions.dampingFactor:阻尼因子,当超出边界会施加阻力
- **/</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></li> <li><p><strong>mousewheelStart(<strong>mouse-wheel</strong>)</strong></p> <ul><li><strong>触发时机</strong>:滚轮滚动开始</li></ul> <div class="language-js extra-class"><pre class="language-js"><code> <span class="token keyword">import</span> BetterScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
- <span class="token keyword">import</span> MouseWheel <span class="token keyword">from</span> <span class="token string">'@better-scroll/mouse-wheel'</span>
- BetterScroll<span class="token punctuation">.</span><span class="token function">use</span><span class="token punctuation">(</span>MouseWheel<span class="token punctuation">)</span>
- <span class="token keyword">const</span> bs <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">BetterScroll</span><span class="token punctuation">(</span><span class="token string">'.wrapper'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span>
- <span class="token literal-property property">mouseWheel</span><span class="token operator">:</span> <span class="token boolean">true</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- bs<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'mousewheelStart'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></li> <li><p><strong>mousewheelMove(<strong>mouse-wheel</strong>)</strong></p> <ul><li><strong>触发时机</strong>:滚轮滚动中</li></ul> <div class="language-js extra-class"><pre class="language-js"><code> bs<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'mousewheelMove'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></li> <li><p><strong>mousewheelEnd(<strong>mouse-wheel</strong>)</strong></p> <ul><li><strong>触发时机</strong>:滚轮滚动结束</li></ul> <div class="language-js extra-class"><pre class="language-js"><code> bs<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'mousewheelEnd'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></li> <li><p><strong>pullingDown(<strong>pull-down</strong>)</strong></p> <ul><li><strong>触发时机</strong>:当顶部下拉距离超过阈值</li></ul> <div class="language-js extra-class"><pre class="language-js"><code> <span class="token keyword">import</span> BetterScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
- <span class="token keyword">import</span> Pulldown <span class="token keyword">from</span> <span class="token string">'@better-scroll/pull-down'</span>
- BetterScroll<span class="token punctuation">.</span><span class="token function">use</span><span class="token punctuation">(</span>Pulldown<span class="token punctuation">)</span>
- <span class="token keyword">const</span> bs <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">BetterScroll</span><span class="token punctuation">(</span><span class="token string">'.wrapper'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span>
- <span class="token literal-property property">pullDownRefresh</span><span class="token operator">:</span> <span class="token boolean">true</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- bs<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'pullingDown'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
- <span class="token keyword">await</span> <span class="token function">fetchData</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
- bs<span class="token punctuation">.</span><span class="token function">finishPullDown</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></li> <li><p><strong>pullingUp(<strong>pull-up</strong>)</strong></p> <ul><li><strong>触发时机</strong>:当底部下拉距离超过阈值</li></ul> <div class="language-js extra-class"><pre class="language-js"><code> <span class="token keyword">import</span> BetterScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
- <span class="token keyword">import</span> Pullup <span class="token keyword">from</span> <span class="token string">'@better-scroll/pull-up'</span>
- BetterScroll<span class="token punctuation">.</span><span class="token function">use</span><span class="token punctuation">(</span>Pullup<span class="token punctuation">)</span>
- <span class="token keyword">const</span> bs <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">BetterScroll</span><span class="token punctuation">(</span><span class="token string">'.wrapper'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span>
- <span class="token literal-property property">pullUpLoad</span><span class="token operator">:</span> <span class="token boolean">true</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- bs<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'pullingUp'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
- <span class="token keyword">await</span> <span class="token function">fetchData</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
- bs<span class="token punctuation">.</span><span class="token function">finishPullUp</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></li> <li><p><strong>slideWillChange(<strong>slide</strong>)</strong></p> <ul><li><strong>触发时机</strong>:轮播图即将要切换 Page</li></ul> <div class="language-js extra-class"><pre class="language-js"><code> <span class="token keyword">import</span> BetterScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
- <span class="token keyword">import</span> Slide <span class="token keyword">from</span> <span class="token string">'@better-scroll/slide'</span>
- BetterScroll<span class="token punctuation">.</span><span class="token function">use</span><span class="token punctuation">(</span>Slide<span class="token punctuation">)</span>
- <span class="token keyword">const</span> bs <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">BetterScroll</span><span class="token punctuation">(</span><span class="token string">'.wrapper'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span>
- <span class="token literal-property property">slide</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
- <span class="token literal-property property">momentum</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
- <span class="token literal-property property">bounce</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
- <span class="token literal-property property">probeType</span><span class="token operator">:</span> <span class="token number">2</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- bs<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'slideWillChange'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token parameter">page</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
- <span class="token comment">// 即将要切换的页面</span>
- console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>page<span class="token punctuation">.</span>pageX<span class="token punctuation">,</span> page<span class="token punctuation">.</span>pageY<span class="token punctuation">)</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></li> <li><p><strong>beforeZoomStart(<strong>zoom</strong>)</strong></p> <ul><li><strong>触发时机</strong>:双指接触缩放元素时</li></ul> <div class="language-js extra-class"><pre class="language-js"><code> <span class="token keyword">import</span> BetterScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
- <span class="token keyword">import</span> Zoom <span class="token keyword">from</span> <span class="token string">'@better-scroll/zoom'</span>
- BetterScroll<span class="token punctuation">.</span><span class="token function">use</span><span class="token punctuation">(</span>Zoom<span class="token punctuation">)</span>
- <span class="token keyword">const</span> bs <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">BetterScroll</span><span class="token punctuation">(</span><span class="token string">'.wrapper'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span>
- <span class="token literal-property property">zoom</span><span class="token operator">:</span> <span class="token boolean">true</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- bs<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'beforeZoomStart'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></li> <li><p><strong>zoomStart(<strong>zoom</strong>)</strong></p> <ul><li><strong>触发时机</strong>:双指缩放距离超过最小阈值</li></ul> <div class="language-js extra-class"><pre class="language-js"><code> bs<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'zoomStart'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></li> <li><p><strong>zooming(<strong>zoom</strong>)</strong></p> <ul><li><strong>触发时机</strong>:双指缩放行为正在进行时</li></ul> <div class="language-js extra-class"><pre class="language-js"><code> bs<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'zooming'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token parameter"><span class="token punctuation">{</span> scale <span class="token punctuation">}</span></span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
- <span class="token comment">// scale 当前 scale</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></li> <li><p><strong>zoomEnd(<strong>zoom</strong>)</strong></p> <ul><li><strong>触发时机</strong>:双指缩放行为结束后</li></ul> <div class="language-js extra-class"><pre class="language-js"><code> bs<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'zoomEnd'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token parameter"><span class="token punctuation">{</span> scale <span class="token punctuation">}</span></span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></li></ul> <h2 id="钩子"><a href="#钩子" class="header-anchor">#</a> 钩子</h2> <p>钩子是 2.0 版本延伸出来的概念,它的本质与事件相同,都是 EventEmitter 实例,也就是典型的订阅发布模式。BScrollCore 作为一个最小的滚动单元,内部也是存在非常多的功能类,每个功能类都有一个叫 hooks 的属性,它架起了不同类之间沟通的桥梁。如果你要编写一个复杂的插件,钩子是必须需要掌握的内容。</p> <ul><li><p><strong>BScrollCore.hooks</strong></p> <ul><li><p><strong>beforeInitialScrollTo</strong></p> <ul><li><strong>触发时机</strong>:初始化加载完插件,需要滚动到指定位置</li> <li><strong>参数</strong>:position 对象
- <ul><li><code>{ x: number, y: number }</code></li></ul></li> <li><strong>示例</strong></li></ul> <div class="language-js extra-class"><pre class="language-js"><code> <span class="token keyword">import</span> BScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
- <span class="token keyword">const</span> bs <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">BScroll</span><span class="token punctuation">(</span><span class="token string">'.wrapper'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- bs<span class="token punctuation">.</span>hooks<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'beforeInitialScrollTo'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token parameter">postion</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
- postion<span class="token punctuation">.</span>x <span class="token operator">=</span> <span class="token number">0</span>
- position<span class="token punctuation">.</span>y <span class="token operator">=</span> <span class="token operator">-</span><span class="token number">200</span> <span class="token comment">// 初始化滚动至 -200 的位置</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></li> <li><p><strong>refresh</strong></p> <ul><li><strong>触发时机</strong>:重新计算 BetterScroll</li> <li><strong>示例</strong></li></ul> <div class="language-js extra-class"><pre class="language-js"><code> <span class="token keyword">import</span> BScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
- <span class="token keyword">const</span> bs <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">BScroll</span><span class="token punctuation">(</span><span class="token string">'.wrapper'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- bs<span class="token punctuation">.</span>hooks<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'refresh'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span> console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">'refreshed'</span><span class="token punctuation">)</span> <span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></li> <li><p><strong>enable</strong></p> <ul><li><strong>触发时机</strong>:启用 BetterScroll,响应用户行为</li> <li><strong>示例</strong></li></ul> <div class="language-js extra-class"><pre class="language-js"><code> <span class="token keyword">import</span> BScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
- <span class="token keyword">const</span> bs <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">BScroll</span><span class="token punctuation">(</span><span class="token string">'.wrapper'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- bs<span class="token punctuation">.</span>hooks<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'enable'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span> console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">'enabled'</span><span class="token punctuation">)</span> <span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></li> <li><p><strong>disable</strong></p> <ul><li><strong>触发时机</strong>:禁用 BetterScroll,不再响应用户行为</li> <li><strong>示例</strong></li></ul> <div class="language-js extra-class"><pre class="language-js"><code> <span class="token keyword">import</span> BScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
- <span class="token keyword">const</span> bs <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">BScroll</span><span class="token punctuation">(</span><span class="token string">'.wrapper'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- bs<span class="token punctuation">.</span>hooks<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'disable'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span> console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">'disabled'</span><span class="token punctuation">)</span> <span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></li> <li><p><strong>destroy</strong></p> <ul><li><strong>触发时机</strong>:销毁 BetterScroll</li> <li><strong>示例</strong></li></ul> <div class="language-js extra-class"><pre class="language-js"><code> <span class="token keyword">import</span> BScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
- <span class="token keyword">const</span> bs <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">BScroll</span><span class="token punctuation">(</span><span class="token string">'.wrapper'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- bs<span class="token punctuation">.</span>hooks<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'destroy'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span> console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">'destroyed'</span><span class="token punctuation">)</span> <span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></li> <li><p><strong>contentChanged</strong> <span class="badge tip" style="vertical-align:top;" data-v-15b7b770>2.0.4</span></p> <ul><li><strong>触发时机</strong>:在调用 <code>bs.refresh()</code>,探测到 content DOM 变成了其他元素的时候</li> <li><strong>示例</strong></li></ul> <div class="language-typescript extra-class"><pre class="language-typescript"><code> <span class="token keyword">import</span> BScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
- <span class="token keyword">const</span> bs <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">BScroll</span><span class="token punctuation">(</span><span class="token string">'.wrapper'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- <span class="token comment">// bs 版本 >= 2.0.4</span>
- bs<span class="token punctuation">.</span>hooks<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'contentChanged'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span>newContent<span class="token operator">:</span> HTMLElement<span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span> <span class="token builtin">console</span><span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>newContent<span class="token punctuation">)</span> <span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></li></ul></li> <li><p><strong>ActionsHandler.hooks</strong></p> <ul><li><p><strong>beforeStart</strong></p> <ul><li><strong>触发时机</strong>:刚响应 touchstart 事件,还未记录手指在屏幕点击的位置</li> <li><strong>参数</strong>:event 事件对象</li> <li><strong>示例</strong></li></ul> <div class="language-js extra-class"><pre class="language-js"><code> <span class="token keyword">import</span> BScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
- <span class="token keyword">const</span> bs <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">BScroll</span><span class="token punctuation">(</span><span class="token string">'.wrapper'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- <span class="token keyword">const</span> hooks <span class="token operator">=</span> bs<span class="token punctuation">.</span>scroller<span class="token punctuation">.</span>actionsHandler<span class="token punctuation">.</span>hooks
- hooks<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'beforeStart'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token parameter">event</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span> console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>event<span class="token punctuation">.</span>target<span class="token punctuation">)</span> <span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></li> <li><p><strong>start</strong></p> <ul><li><strong>触发时机</strong>:记录完手指在屏幕点击的位置,即将触发 touchmove</li> <li><strong>参数</strong>:event 事件对象</li> <li><strong>示例</strong></li></ul> <div class="language-js extra-class"><pre class="language-js"><code> <span class="token keyword">import</span> BScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
- <span class="token keyword">const</span> bs <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">BScroll</span><span class="token punctuation">(</span><span class="token string">'.wrapper'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- <span class="token keyword">const</span> hooks <span class="token operator">=</span> bs<span class="token punctuation">.</span>scroller<span class="token punctuation">.</span>actionsHandler<span class="token punctuation">.</span>hooks
- hooks<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'start'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token parameter">event</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span> console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>event<span class="token punctuation">.</span>target<span class="token punctuation">)</span> <span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></li> <li><p><strong>move</strong></p> <ul><li><strong>触发时机</strong>:响应 touchmove 事件,记录完手指在屏幕点击的位置</li> <li><strong>参数</strong>:拥有如下属性的对象
- <ul><li><code>{ number } deltaX</code>:x 方向的手指偏移量</li> <li><code>{ number } deltaY</code>:y 方向的手指偏移量</li> <li><code>{ event } e</code>:event 事件对象</li></ul></li> <li><strong>示例</strong></li></ul> <div class="language-js extra-class"><pre class="language-js"><code> <span class="token keyword">import</span> BScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
- <span class="token keyword">const</span> bs <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">BScroll</span><span class="token punctuation">(</span><span class="token string">'.wrapper'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- <span class="token keyword">const</span> hooks <span class="token operator">=</span> bs<span class="token punctuation">.</span>scroller<span class="token punctuation">.</span>actionsHandler<span class="token punctuation">.</span>hooks
- hooks<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'move'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token parameter"><span class="token punctuation">{</span> deltaX<span class="token punctuation">,</span> deltaY<span class="token punctuation">,</span> e <span class="token punctuation">}</span></span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></li> <li><p><strong>end</strong></p> <ul><li><strong>触发时机</strong>:响应 touchend 事件</li> <li><strong>参数</strong>:event 事件对象</li> <li><strong>示例</strong></li></ul> <div class="language-js extra-class"><pre class="language-js"><code> <span class="token keyword">import</span> BScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
- <span class="token keyword">const</span> bs <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">BScroll</span><span class="token punctuation">(</span><span class="token string">'.wrapper'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- <span class="token keyword">const</span> hooks <span class="token operator">=</span> bs<span class="token punctuation">.</span>scroller<span class="token punctuation">.</span>actionsHandler<span class="token punctuation">.</span>hooks
- hooks<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'end'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token parameter">event</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></li> <li><p><strong>click</strong></p> <ul><li><strong>触发时机</strong>:触发 click 事件</li> <li><strong>参数</strong>:event 事件对象</li></ul></li></ul></li> <li><p><strong>ScrollerActions.hooks</strong></p> <ul><li><p><strong>start</strong></p> <ul><li><strong>触发时机</strong>:记录完所有的滚动初始信息</li> <li><strong>参数</strong>:event 事件对象</li> <li><strong>示例</strong></li></ul> <div class="language-js extra-class"><pre class="language-js"><code> <span class="token keyword">import</span> BScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
- <span class="token keyword">const</span> bs <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">BScroll</span><span class="token punctuation">(</span><span class="token string">'.wrapper'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- <span class="token keyword">const</span> hooks <span class="token operator">=</span> bs<span class="token punctuation">.</span>scroller<span class="token punctuation">.</span>actions<span class="token punctuation">.</span>hooks
- hooks<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'start'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token parameter">event</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span> console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>event<span class="token punctuation">.</span>target<span class="token punctuation">)</span> <span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></li> <li><p><strong>beforeMove</strong></p> <ul><li><strong>触发时机</strong>:在检验是否是合法的滚动之前</li> <li><strong>参数</strong>:event 事件对象</li> <li><strong>示例</strong></li></ul> <div class="language-js extra-class"><pre class="language-js"><code> <span class="token keyword">import</span> BScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
- <span class="token keyword">const</span> bs <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">BScroll</span><span class="token punctuation">(</span><span class="token string">'.wrapper'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- <span class="token keyword">const</span> hooks <span class="token operator">=</span> bs<span class="token punctuation">.</span>scroller<span class="token punctuation">.</span>actions<span class="token punctuation">.</span>hooks
- hooks<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'beforeMove'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token parameter">event</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span> console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>event<span class="token punctuation">.</span>target<span class="token punctuation">)</span> <span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></li> <li><p><strong>scrollStart</strong></p> <ul><li><strong>触发时机</strong>:校验是合法的滚动,并且即将开始滚动</li> <li><strong>示例</strong></li></ul> <div class="language-js extra-class"><pre class="language-js"><code> <span class="token keyword">import</span> BScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
- <span class="token keyword">const</span> bs <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">BScroll</span><span class="token punctuation">(</span><span class="token string">'.wrapper'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- <span class="token keyword">const</span> hooks <span class="token operator">=</span> bs<span class="token punctuation">.</span>scroller<span class="token punctuation">.</span>actions<span class="token punctuation">.</span>hooks
- hooks<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'scrollStart'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></li> <li><p><strong>scroll</strong></p> <ul><li><strong>触发时机</strong>:正在滚动</li> <li><strong>示例</strong></li></ul> <div class="language-js extra-class"><pre class="language-js"><code> <span class="token keyword">import</span> BScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
- <span class="token keyword">const</span> bs <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">BScroll</span><span class="token punctuation">(</span><span class="token string">'.wrapper'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- <span class="token keyword">const</span> hooks <span class="token operator">=</span> bs<span class="token punctuation">.</span>scroller<span class="token punctuation">.</span>actions<span class="token punctuation">.</span>hooks
- hooks<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'scroll'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></li> <li><p><strong>beforeEnd</strong></p> <ul><li><strong>触发时机</strong>:刚执行 touchend 事件回调,但是还未更新最终位置</li> <li><strong>参数</strong>:event 事件对象</li> <li><strong>示例</strong></li></ul> <div class="language-js extra-class"><pre class="language-js"><code> <span class="token keyword">import</span> BScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
- <span class="token keyword">const</span> bs <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">BScroll</span><span class="token punctuation">(</span><span class="token string">'.wrapper'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- <span class="token keyword">const</span> hooks <span class="token operator">=</span> bs<span class="token punctuation">.</span>scroller<span class="token punctuation">.</span>actions<span class="token punctuation">.</span>hooks
- hooks<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'beforeEnd'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token parameter">event</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span> console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>event<span class="token punctuation">)</span> <span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></li> <li><p><strong>end</strong></p> <ul><li><strong>触发时机</strong>:刚执行 touchend 事件回调并且更新滚动方向</li> <li><strong>参数</strong>:两个参数,第一个是 event 事件对象,第二个是当前位置
- <ul><li><code>{ event } e</code>:事件对象</li> <li><code>{ x: number, y: number } postion</code>:当前位置</li></ul></li> <li><strong>示例</strong></li></ul> <div class="language-js extra-class"><pre class="language-js"><code> <span class="token keyword">import</span> BScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
- <span class="token keyword">const</span> bs <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">BScroll</span><span class="token punctuation">(</span><span class="token string">'.wrapper'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- <span class="token keyword">const</span> hooks <span class="token operator">=</span> bs<span class="token punctuation">.</span>scroller<span class="token punctuation">.</span>actions<span class="token punctuation">.</span>hooks
- hooks<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'end'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token parameter">e<span class="token punctuation">,</span> postion</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span> console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>e<span class="token punctuation">)</span> <span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></li> <li><p><strong>scrollEnd</strong></p> <ul><li><strong>触发时机</strong>:滚动即将结束,但还需要校验一次滚动行为是否触发了 flick、momentum 行为。</li> <li><strong>参数</strong>:两个参数,第一个是当前位置,第二个是动画时长
- <ul><li><code>{ x: number, y: number } postion</code>:当前位置</li> <li><code>{ number } duration</code>:动画时长</li></ul></li> <li><strong>示例</strong></li></ul> <div class="language-js extra-class"><pre class="language-js"><code> <span class="token keyword">import</span> BScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
- <span class="token keyword">const</span> bs <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">BScroll</span><span class="token punctuation">(</span><span class="token string">'.wrapper'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- <span class="token keyword">const</span> hooks <span class="token operator">=</span> bs<span class="token punctuation">.</span>scroller<span class="token punctuation">.</span>actions<span class="token punctuation">.</span>hooks
- hooks<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'beforeEnd'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token parameter">pos<span class="token punctuation">,</span> duration</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span> console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>pos<span class="token punctuation">)</span> <span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></li> <li><p><strong>coordinateTransformation</strong> <span class="badge tip" style="vertical-align:top;" data-v-15b7b770>2.3.0</span></p> <ul><li><strong>触发时机</strong>:计算完用户手指的偏移量之后,发生滚动之前。</li> <li><strong>参数</strong>:
- <ul><li><code>{ deltaX: number, deltaY: number } transformateDeltaData</code>:偏移量对象</li></ul></li> <li><strong>示例</strong></li></ul> <div class="language-js extra-class"><pre class="language-js"><code> <span class="token keyword">import</span> BScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
- <span class="token keyword">const</span> bs <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">BScroll</span><span class="token punctuation">(</span><span class="token string">'.wrapper'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- <span class="token keyword">const</span> hooks <span class="token operator">=</span> bs<span class="token punctuation">.</span>scroller<span class="token punctuation">.</span>actions<span class="token punctuation">.</span>hooks
- hooks<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'coordinateTransformation'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token parameter">:transformateDeltaData</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
- <span class="token comment">// 获取用户手指移动的距离</span>
- <span class="token keyword">const</span> originDeltaX <span class="token operator">=</span> transformateDeltaData<span class="token punctuation">.</span>deltaX
- <span class="token keyword">const</span> originDeltaY <span class="token operator">=</span> transformateDeltaData<span class="token punctuation">.</span>deltaY
- <span class="token comment">// 变换位移</span>
- transformateDeltaData<span class="token punctuation">.</span>deltaX <span class="token operator">=</span> originDeltaY
- transformateDeltaData<span class="token punctuation">.</span>deltaY <span class="token operator">=</span> originDeltaX
- <span class="token comment">// transformateDeltaData.deltaX 最终作用在 BetterScroll content DOM 的 translateX</span>
- <span class="token comment">// transformateDeltaData.deltaY 最终作用在 BetterScroll content DOM 的 translateY</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div><p>该钩子通常是为了修正当 BetterScroll 的 wrapper DOM 的祖先元素发生旋转的时候,用户自定义位移变换的逻辑,大部分情况下只需要配置 <a href="/docs/zh-CN/guide/base-scroll-options.html#quadrant">quadrant</a> 即可。</p></li></ul></li> <li><p><strong>Behavior.hooks</strong></p> <ul><li><p><strong>beforeComputeBoundary</strong></p> <ul><li><strong>触发时机</strong>:即将计算滚动边界</li> <li><strong>参数</strong>:boundary 对象
- <ul><li><code>{ minScrollPos: number, maxScrollPos: number } boundary</code></li></ul></li> <li><strong>示例</strong></li></ul> <div class="language-js extra-class"><pre class="language-js"><code> <span class="token keyword">import</span> BScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
- <span class="token keyword">const</span> bs <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">BScroll</span><span class="token punctuation">(</span><span class="token string">'.wrapper'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- <span class="token keyword">const</span> hooks <span class="token operator">=</span> bs<span class="token punctuation">.</span>scroller<span class="token punctuation">.</span>scrollBehaviorX<span class="token punctuation">.</span>hooks
- hooks<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'beforeComputeBoundary'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></li> <li><p><strong>computeBoundary</strong></p> <ul><li><strong>触发时机</strong>:计算滚动边界</li> <li><strong>示例</strong></li></ul> <div class="language-js extra-class"><pre class="language-js"><code> <span class="token keyword">import</span> BScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
- <span class="token keyword">const</span> bs <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">BScroll</span><span class="token punctuation">(</span><span class="token string">'.wrapper'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- <span class="token keyword">const</span> hooks <span class="token operator">=</span> bs<span class="token punctuation">.</span>scroller<span class="token punctuation">.</span>scrollBehaviorX<span class="token punctuation">.</span>hooks
- hooks<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'computeBoundary'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token parameter">boundary</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
- console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>boundary<span class="token punctuation">.</span>minScrollPos<span class="token punctuation">)</span> <span class="token comment">// 上边界最大值,正的越多,下拉的幅度越大</span>
- console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>boundary<span class="token punctuation">.</span>maxScrollPos<span class="token punctuation">)</span> <span class="token comment">// 下边界最小值,负的越多,滚的越远</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></li> <li><p><strong>momentum</strong></p> <ul><li><strong>触发时机</strong>:满足触发 momentum 动量动画条件,并且在计算之前</li> <li><strong>参数</strong>:两个参数,第一个是 momentumData 对象,第二个是滚动偏移量
- <ul><li><code>{ destination: number, duration: number, rate: number} momentumData</code>:destination 是目标位置,duration 是缓动时长,rate 是斜率</li> <li><code>{ number } distance</code>:触发 momentum 的滚动偏移量</li></ul></li> <li><strong>示例</strong></li></ul> <div class="language-js extra-class"><pre class="language-js"><code> <span class="token keyword">import</span> BScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
- <span class="token keyword">const</span> bs <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">BScroll</span><span class="token punctuation">(</span><span class="token string">'.wrapper'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- <span class="token keyword">const</span> hooks <span class="token operator">=</span> bs<span class="token punctuation">.</span>scroller<span class="token punctuation">.</span>scrollBehaviorX<span class="token punctuation">.</span>hooks
- hooks<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'momentum'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token parameter">momentumData<span class="token punctuation">,</span> distance</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></li> <li><p><strong>end</strong></p> <ul><li><strong>触发时机</strong>:不满足触发 momentum 动量动画条件</li> <li><strong>参数</strong>:momentumInfo 对象
- <ul><li><code>{ destination: number, duration: number} momentumInfo</code>:destination 是目标位置,duration 是缓动时长</li></ul></li> <li><strong>示例</strong></li></ul> <div class="language-js extra-class"><pre class="language-js"><code> <span class="token keyword">import</span> BScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
- <span class="token keyword">const</span> bs <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">BScroll</span><span class="token punctuation">(</span><span class="token string">'.wrapper'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- <span class="token keyword">const</span> hooks <span class="token operator">=</span> bs<span class="token punctuation">.</span>scroller<span class="token punctuation">.</span>scrollBehaviorX<span class="token punctuation">.</span>hooks
- hooks<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'end'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token parameter">momentumInfo</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
- console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>momentumInfo<span class="token punctuation">.</span>destination<span class="token punctuation">)</span>
- console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>momentumInfo<span class="token punctuation">.</span>duration<span class="token punctuation">)</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></li></ul></li> <li><p><strong>Animation.hooks(useTransition: false)</strong></p> <ul><li><p><strong>forceStop</strong></p> <ul><li><strong>触发时机</strong>:强制让一个滚动的 bs 停止</li> <li><strong>参数</strong>:position 对象
- <ul><li><code>{ x: number, y: number } position</code>:当前坐标值</li></ul></li></ul></li> <li><p><strong>move</strong></p> <ul><li><strong>触发时机</strong>:滚动进行中</li> <li><strong>参数</strong>:position 对象
- <ul><li><code>{ x: number, y: number } position</code>:当前坐标值</li></ul></li></ul></li> <li><p><strong>end</strong></p> <ul><li><strong>触发时机</strong>:滚动结束</li> <li><strong>参数</strong>:position 对象
- <ul><li><code>{ x: number, y: number } position</code>:当前坐标值</li></ul></li></ul></li></ul></li> <li><p><strong>Translater.hooks</strong></p> <ul><li><p><strong>beforeTranslate</strong></p> <ul><li><strong>触发时机</strong>:在修改 content 元素的 transform style 之前,zoom 插件监听了钩子</li> <li><strong>参数</strong>:第一个是 transformStyle 数组,第二个是 point 对象
- <ul><li><code>{ ['translateX(0px)'|'translateY(0px)'] } transformStyle</code>:当前 transform 对应的属性值</li> <li><code>{ x: number, y: number } point</code>:x 对应 translateX 的值,y 对应 translateY 的值</li></ul> <div class="language-js extra-class"><pre class="language-js"><code> <span class="token keyword">import</span> BScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
- <span class="token keyword">const</span> bs <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">BScroll</span><span class="token punctuation">(</span><span class="token string">'.wrapper'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- <span class="token keyword">const</span> hooks <span class="token operator">=</span> bs<span class="token punctuation">.</span>scroller<span class="token punctuation">.</span>translater<span class="token punctuation">.</span>hooks
- hooks<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'beforeTranslate'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token parameter">transformStyle<span class="token punctuation">,</span> point</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
- transformStyle<span class="token punctuation">.</span><span class="token function">push</span><span class="token punctuation">(</span><span class="token string">'scale(1.2)'</span><span class="token punctuation">)</span>
- console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>transformStyle<span class="token punctuation">)</span> <span class="token comment">// ['translateX(0px)', 'translateY(0px)', 'scale(1.2)']</span>
- console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>point<span class="token punctuation">)</span> <span class="token comment">// { x: 0, y: 0 }</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></li></ul></li> <li><p><strong>translate</strong></p> <ul><li><strong>触发时机</strong>:修改 content 元素的 transform style 之后,wheel 插件监听了钩子</li> <li><strong>参数</strong>:point 对象
- <ul><li><code>{ x: number, y: number } point</code>:x 对应 translateX 的值,y 对应 translateY 的值</li></ul> <div class="language-js extra-class"><pre class="language-js"><code> <span class="token keyword">import</span> BScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
- <span class="token keyword">const</span> bs <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">BScroll</span><span class="token punctuation">(</span><span class="token string">'.wrapper'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- <span class="token keyword">const</span> hooks <span class="token operator">=</span> bs<span class="token punctuation">.</span>scroller<span class="token punctuation">.</span>translater<span class="token punctuation">.</span>hooks
- hooks<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'translate'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token parameter">point</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
- console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>point<span class="token punctuation">)</span> <span class="token comment">// { x: 0, y: 0 }</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></li></ul></li></ul></li> <li><p><strong>Transition.hooks(useTransition: true)</strong></p> <ul><li><p><strong>forceStop</strong></p> <ul><li><strong>触发时机</strong>:强制让一个正在做动画的 bs 停止</li> <li><strong>参数</strong>:position 对象
- <ul><li><code>{ x: number, y: number } position</code>:当前坐标值</li></ul></li></ul></li> <li><p><strong>move</strong></p> <ul><li><strong>触发时机</strong>:滚动进行中</li> <li><strong>参数</strong>:position 对象
- <ul><li><code>{ x: number, y: number } position</code>:当前坐标值</li></ul></li></ul></li> <li><p><strong>end</strong></p> <ul><li><strong>触发时机</strong>:滚动结束</li> <li><strong>参数</strong>:position 对象
- <ul><li><code>{ x: number, y: number } position</code>:当前坐标值</li></ul></li></ul></li> <li><p><strong>time</strong></p> <ul><li><strong>触发时机</strong>:CSS3 transition 开始之前,wheel 插件监听了该钩子</li> <li><strong>参数</strong>:CSS3 transition duration<div class="language-js extra-class"><pre class="language-js"><code> <span class="token keyword">import</span> BScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
- <span class="token keyword">const</span> bs <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">BScroll</span><span class="token punctuation">(</span><span class="token string">'.wrapper'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- <span class="token keyword">const</span> hooks <span class="token operator">=</span> bs<span class="token punctuation">.</span>scroller<span class="token punctuation">.</span>animater<span class="token punctuation">.</span>hooks
- hooks<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'time'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token parameter">duration</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
- console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>duration<span class="token punctuation">)</span> <span class="token comment">// 800</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></li></ul></li> <li><p><strong>timeFunction</strong></p> <ul><li><strong>触发时机</strong>:CSS3 transition 开始之前,wheel 插件监听了该钩子</li> <li><strong>参数</strong>:CSS3 transition-timing-function<div class="language-js extra-class"><pre class="language-js"><code> <span class="token keyword">import</span> BScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
- <span class="token keyword">const</span> bs <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">BScroll</span><span class="token punctuation">(</span><span class="token string">'.wrapper'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- <span class="token keyword">const</span> hooks <span class="token operator">=</span> bs<span class="token punctuation">.</span>scroller<span class="token punctuation">.</span>animater<span class="token punctuation">.</span>hooks
- hooks<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'timeFunction'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token parameter">easing</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
- console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>easing<span class="token punctuation">)</span> <span class="token comment">// cubic-bezier(0.1, 0.7, 1.0, 0.1)</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></li></ul></li></ul></li> <li><p><strong>Scroller.hooks</strong></p> <ul><li><p><strong>beforeStart</strong>
- 同 <code>ScrollerActions.hooks.start</code></p></li> <li><p><strong>beforeMove</strong>
- 同 <code>ScrollerActions.hooks.beforeMove</code></p></li> <li><p><strong>beforeScrollStart</strong>
- 同 <code>ScrollerActions.hooks.start</code></p></li> <li><p><strong>scrollStart</strong>
- 同 <code>ScrollerActions.hooks.scrollStart</code></p></li> <li><p><strong>scroll</strong></p> <ul><li><strong>触发时机</strong>:滚动进行中</li> <li><strong>参数</strong>:position 对象
- <ul><li><code>{ x: number, y: number } position</code>:当前坐标值</li></ul></li></ul></li> <li><p><strong>beforeEnd</strong>
- 同 <code>ScrollerActions.hooks.beforeEnd</code></p></li> <li><p><strong>touchEnd</strong></p> <ul><li><strong>触发时机</strong>:用户手指离开滚动区域</li></ul> <div class="language-js extra-class"><pre class="language-js"><code> <span class="token keyword">import</span> BScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
- <span class="token keyword">const</span> bs <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">BScroll</span><span class="token punctuation">(</span><span class="token string">'.wrapper'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- <span class="token keyword">const</span> hooks <span class="token operator">=</span> bs<span class="token punctuation">.</span>scroller<span class="token punctuation">.</span>hooks
- hooks<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'touchEnd'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
- console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">'your finger has leave'</span><span class="token punctuation">)</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></li> <li><p><strong>end</strong></p> <ul><li><strong>触发时机</strong>:touchEnd 之后,校验 click 之前触发,pull-down 插件基于这个钩子实现</li> <li><strong>参数</strong>:position 对象</li> <li><code>{ x: number, y: number } position</code>:当前位置</li></ul> <div class="language-js extra-class"><pre class="language-js"><code> <span class="token keyword">import</span> BScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
- <span class="token keyword">const</span> bs <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">BScroll</span><span class="token punctuation">(</span><span class="token string">'.wrapper'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- <span class="token keyword">const</span> hooks <span class="token operator">=</span> bs<span class="token punctuation">.</span>scroller<span class="token punctuation">.</span>hooks
- hooks<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'end'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token parameter">position</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
- console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>position<span class="token punctuation">.</span>x<span class="token punctuation">)</span>
- console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>position<span class="token punctuation">.</span>y<span class="token punctuation">)</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></li> <li><p><strong>scrollEnd</strong></p> <ul><li><strong>触发时机</strong>:滚动结束</li> <li><strong>参数</strong>:position 对象
- <ul><li><code>{ x: number, y: number } position</code>:当前坐标值</li></ul></li></ul></li> <li><p><strong>resize</strong></p> <ul><li><strong>触发时机</strong>:window 尺寸发生改变</li></ul> <div class="language-js extra-class"><pre class="language-js"><code> <span class="token keyword">import</span> BScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
- <span class="token keyword">const</span> bs <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">BScroll</span><span class="token punctuation">(</span><span class="token string">'.wrapper'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- <span class="token keyword">const</span> hooks <span class="token operator">=</span> bs<span class="token punctuation">.</span>scroller<span class="token punctuation">.</span>hooks
- hooks<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'resize'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
- console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">"window's size has changed"</span><span class="token punctuation">)</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></li> <li><p><strong>flick</strong></p> <ul><li><strong>触发时机</strong>:探测到手指轻拂动作</li></ul> <div class="language-js extra-class"><pre class="language-js"><code> <span class="token keyword">import</span> BScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
- <span class="token keyword">const</span> bs <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">BScroll</span><span class="token punctuation">(</span><span class="token string">'.wrapper'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- <span class="token keyword">const</span> hooks <span class="token operator">=</span> bs<span class="token punctuation">.</span>scroller<span class="token punctuation">.</span>hooks
- hooks<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'flick'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></li> <li><p><strong>scrollCancel</strong></p> <ul><li><strong>触发时机</strong>:滚动取消或者未发生</li></ul></li> <li><p><strong>momentum</strong></p> <ul><li><strong>触发时机</strong>:即将进行 momentum 动量位移,slide 插件监听了该钩子</li> <li><strong>参数</strong>:scrollMetaData 对象
- <ul><li><code>{ time: number, easing: EaseItem, newX: number, newY: number }</code>:time 是动画时长,easing是缓动函数,newX 和 newY 是终点</li></ul></li></ul> <div class="language-js extra-class"><pre class="language-js"><code> <span class="token keyword">import</span> BScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
- <span class="token keyword">const</span> bs <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">BScroll</span><span class="token punctuation">(</span><span class="token string">'.wrapper'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- <span class="token keyword">const</span> hooks <span class="token operator">=</span> bs<span class="token punctuation">.</span>scroller<span class="token punctuation">.</span>hooks
- hooks<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'momentum'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token parameter">scrollMetaData</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
- scrollMetaData<span class="token punctuation">.</span>newX <span class="token operator">=</span> <span class="token number">0</span>
- scrollMetaData<span class="token punctuation">.</span>newY <span class="token operator">=</span> <span class="token operator">-</span><span class="token number">200</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></li> <li><p><strong>scrollTo</strong></p> <ul><li><strong>触发时机</strong>:调用 bs.scrollTo 方法的时候触发</li> <li><strong>参数</strong>:endPoint 对象
- <ul><li><code>{ x: number, y: number } endPoint</code>:终点坐标值</li></ul></li></ul> <div class="language-js extra-class"><pre class="language-js"><code> <span class="token keyword">import</span> BScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
- <span class="token keyword">const</span> bs <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">BScroll</span><span class="token punctuation">(</span><span class="token string">'.wrapper'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- <span class="token keyword">const</span> hooks <span class="token operator">=</span> bs<span class="token punctuation">.</span>scroller<span class="token punctuation">.</span>hooks
- hooks<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'scrollTo'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token parameter">endPoint</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
- console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>endPoint<span class="token punctuation">.</span>x<span class="token punctuation">)</span>
- console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>endPoint<span class="token punctuation">.</span>y<span class="token punctuation">)</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- bs<span class="token punctuation">.</span><span class="token function">scrollTo</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span> <span class="token operator">-</span><span class="token number">200</span><span class="token punctuation">)</span>
- </code></pre></div></li> <li><p><strong>scrollToElement</strong></p> <ul><li><strong>触发时机</strong>:调用 bs.scrollToElement 方法的时候触发,wheel 插件监听了该钩子</li> <li><strong>参数</strong>:第一个是目标 DOM 对象,第二个是终点的坐标
- <ul><li><code>{ HTMLElment } el</code></li> <li><code>{ top: number, left: number } postion</code></li></ul></li></ul> <div class="language-js extra-class"><pre class="language-js"><code> <span class="token keyword">import</span> BScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
- <span class="token keyword">const</span> bs <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">BScroll</span><span class="token punctuation">(</span><span class="token string">'.wrapper'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- <span class="token keyword">const</span> hooks <span class="token operator">=</span> bs<span class="token punctuation">.</span>scroller<span class="token punctuation">.</span>hooks
- hooks<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'scrollToElement'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token parameter">el<span class="token punctuation">,</span> pos</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
- console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>el<span class="token punctuation">)</span>
- console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>pos<span class="token punctuation">.</span>left<span class="token punctuation">)</span>
- console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>pos<span class="token punctuation">.</span>top<span class="token punctuation">)</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- bs<span class="token punctuation">.</span><span class="token function">scrollToElement</span><span class="token punctuation">(</span><span class="token string">'.some-item'</span><span class="token punctuation">,</span> <span class="token number">300</span><span class="token punctuation">,</span> <span class="token boolean">true</span><span class="token punctuation">,</span> <span class="token boolean">true</span><span class="token punctuation">)</span>
- </code></pre></div></li> <li><p><strong>beforeRefresh</strong></p> <ul><li><strong>触发时机</strong>:在 behavior 计算边界之前,slide 插件监听了该钩子</li></ul> <div class="language-js extra-class"><pre class="language-js"><code> <span class="token keyword">import</span> BScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
- <span class="token keyword">const</span> bs <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">BScroll</span><span class="token punctuation">(</span><span class="token string">'.wrapper'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- <span class="token keyword">const</span> hooks <span class="token operator">=</span> bs<span class="token punctuation">.</span>scroller<span class="token punctuation">.</span>hooks
- hooks<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'beforeRefresh'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span><span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></li></ul></li></ul> <div class="custom-block tip"><p class="custom-block-title">提示</p> <p>细心的你会发现,有部分 Scroller.hooks 与 ScrollActions.hooks 的功能一模一样,其实我们内部采用了一种 <a href="https://github.com/ustbhuangyi/better-scroll/blob/dev/packages/core/src/utils/bubbling.ts" target="_blank" rel="noopener noreferrer">钩子冒泡<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a> 的策略,将内层功能类的钩子,通过冒泡的形式一直代理到 BetterScroll Instance 来兼容 1.x 的使用方式。</p></div></div> <footer class="page-edit"><div class="edit-link"><a href="https://github.com/ustbhuangyi/better-scroll/edit/dev/packages/vuepress-docs/docs/zh-CN/guide/base-scroll-api.md" target="_blank" rel="noopener noreferrer">在 GitHub 上编辑此页</a> <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></div> <div class="last-updated"><span class="prefix">上次更新:</span> <span class="time">2022/7/19 11:44:48</span></div></footer> <div class="page-nav"><p class="inner"><span class="prev">
- ←
- <a href="/docs/zh-CN/guide/base-scroll-options.html" class="prev">
- 配置项
- </a></span> <!----></p></div> </main></div><div class="global-ui"><!----></div></div>
- <script src="/docs/assets/js/app.c71b64d3.js" defer></script><script src="/docs/assets/js/5.d6412664.js" defer></script><script src="/docs/assets/js/4.4855b9ef.js" defer></script><script src="/docs/assets/js/3.481632b4.js" defer></script><script src="/docs/assets/js/102.79d86e3d.js" defer></script><script src="/docs/assets/js/7.518ccda7.js" defer></script>
- </body>
- </html>
|