123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212 |
- <!DOCTYPE html>
- <html lang="zh-CN">
- <head>
- <meta charset="utf-8">
- <meta name="viewport" content="width=device-width,initial-scale=1">
- <title>配置项 | 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/103.7a3ae3b5.js" as="script"><link rel="preload" href="/docs/assets/js/7.518ccda7.js" as="script"><link rel="preload" href="/docs/assets/js/56.cd04bae9.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/102.79d86e3d.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/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-options.html" class="nav-link">
- English
- </a></li><li class="dropdown-item"><!----> <a href="/docs/zh-CN/guide/base-scroll-options.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-options.html" class="nav-link">
- English
- </a></li><li class="dropdown-item"><!----> <a href="/docs/zh-CN/guide/base-scroll-options.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" aria-current="page" class="active sidebar-link">配置项</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/docs/zh-CN/guide/base-scroll-options.html#startx" class="sidebar-link">startX</a></li><li class="sidebar-sub-header"><a href="/docs/zh-CN/guide/base-scroll-options.html#starty" class="sidebar-link">startY</a></li><li class="sidebar-sub-header"><a href="/docs/zh-CN/guide/base-scroll-options.html#scrollx" class="sidebar-link">scrollX</a></li><li class="sidebar-sub-header"><a href="/docs/zh-CN/guide/base-scroll-options.html#scrolly" class="sidebar-link">scrollY</a></li><li class="sidebar-sub-header"><a href="/docs/zh-CN/guide/base-scroll-options.html#freescroll" class="sidebar-link">freeScroll</a></li><li class="sidebar-sub-header"><a href="/docs/zh-CN/guide/base-scroll-options.html#directionlockthreshold" class="sidebar-link">directionLockThreshold</a></li><li class="sidebar-sub-header"><a href="/docs/zh-CN/guide/base-scroll-options.html#eventpassthrough" class="sidebar-link">eventPassthrough</a></li><li class="sidebar-sub-header"><a href="/docs/zh-CN/guide/base-scroll-options.html#click" class="sidebar-link">click</a></li><li class="sidebar-sub-header"><a href="/docs/zh-CN/guide/base-scroll-options.html#dblclick" class="sidebar-link">dblclick</a></li><li class="sidebar-sub-header"><a href="/docs/zh-CN/guide/base-scroll-options.html#tap" class="sidebar-link">tap</a></li><li class="sidebar-sub-header"><a href="/docs/zh-CN/guide/base-scroll-options.html#bounce" class="sidebar-link">bounce</a></li><li class="sidebar-sub-header"><a href="/docs/zh-CN/guide/base-scroll-options.html#bouncetime" class="sidebar-link">bounceTime</a></li><li class="sidebar-sub-header"><a href="/docs/zh-CN/guide/base-scroll-options.html#momentum" class="sidebar-link">momentum</a></li><li class="sidebar-sub-header"><a href="/docs/zh-CN/guide/base-scroll-options.html#momentumlimittime" class="sidebar-link">momentumLimitTime</a></li><li class="sidebar-sub-header"><a href="/docs/zh-CN/guide/base-scroll-options.html#momentumlimitdistance" class="sidebar-link">momentumLimitDistance</a></li><li class="sidebar-sub-header"><a href="/docs/zh-CN/guide/base-scroll-options.html#swipetime" class="sidebar-link">swipeTime</a></li><li class="sidebar-sub-header"><a href="/docs/zh-CN/guide/base-scroll-options.html#swipebouncetime" class="sidebar-link">swipeBounceTime</a></li><li class="sidebar-sub-header"><a href="/docs/zh-CN/guide/base-scroll-options.html#deceleration" class="sidebar-link">deceleration</a></li><li class="sidebar-sub-header"><a href="/docs/zh-CN/guide/base-scroll-options.html#flicklimittime" class="sidebar-link">flickLimitTime</a></li><li class="sidebar-sub-header"><a href="/docs/zh-CN/guide/base-scroll-options.html#flicklimitdistance" class="sidebar-link">flickLimitDistance</a></li><li class="sidebar-sub-header"><a href="/docs/zh-CN/guide/base-scroll-options.html#resizepolling" class="sidebar-link">resizePolling</a></li><li class="sidebar-sub-header"><a href="/docs/zh-CN/guide/base-scroll-options.html#probetype" class="sidebar-link">probeType</a></li><li class="sidebar-sub-header"><a href="/docs/zh-CN/guide/base-scroll-options.html#preventdefault" class="sidebar-link">preventDefault</a></li><li class="sidebar-sub-header"><a href="/docs/zh-CN/guide/base-scroll-options.html#preventdefaultexception" class="sidebar-link">preventDefaultException</a></li><li class="sidebar-sub-header"><a href="/docs/zh-CN/guide/base-scroll-options.html#tagexception" class="sidebar-link">tagException</a></li><li class="sidebar-sub-header"><a href="/docs/zh-CN/guide/base-scroll-options.html#hwcompositing" class="sidebar-link">HWCompositing</a></li><li class="sidebar-sub-header"><a href="/docs/zh-CN/guide/base-scroll-options.html#usetransition" class="sidebar-link">useTransition</a></li><li class="sidebar-sub-header"><a href="/docs/zh-CN/guide/base-scroll-options.html#bindtowrapper" class="sidebar-link">bindToWrapper</a></li><li class="sidebar-sub-header"><a href="/docs/zh-CN/guide/base-scroll-options.html#disablemouse" class="sidebar-link">disableMouse</a></li><li class="sidebar-sub-header"><a href="/docs/zh-CN/guide/base-scroll-options.html#disabletouch" class="sidebar-link">disableTouch</a></li><li class="sidebar-sub-header"><a href="/docs/zh-CN/guide/base-scroll-options.html#autoblur" class="sidebar-link">autoBlur</a></li><li class="sidebar-sub-header"><a href="/docs/zh-CN/guide/base-scroll-options.html#stoppropagation" class="sidebar-link">stopPropagation</a></li><li class="sidebar-sub-header"><a href="/docs/zh-CN/guide/base-scroll-options.html#bindtotarget" class="sidebar-link">bindToTarget</a></li><li class="sidebar-sub-header"><a href="/docs/zh-CN/guide/base-scroll-options.html#autoenddistance" class="sidebar-link">autoEndDistance</a></li><li class="sidebar-sub-header"><a href="/docs/zh-CN/guide/base-scroll-options.html#outofboundarydampingfactor" class="sidebar-link">outOfBoundaryDampingFactor</a></li><li class="sidebar-sub-header"><a href="/docs/zh-CN/guide/base-scroll-options.html#specifiedindexascontent" class="sidebar-link">specifiedIndexAsContent</a></li><li class="sidebar-sub-header"><a href="/docs/zh-CN/guide/base-scroll-options.html#quadrant" class="sidebar-link">quadrant</a></li></ul></li><li><a href="/docs/zh-CN/guide/base-scroll-api.html" class="sidebar-link">API</a></li></ul></section></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="配置项"><a href="#配置项" class="header-anchor">#</a> 配置项</h1> <p>BetterScroll 支持很多参数配置,可以在初始化的时候传入第二个参数,比如:</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> 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">scrollY</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
- <span class="token literal-property property">click</span><span class="token operator">:</span> <span class="token boolean">true</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div><p>这样就实现了一个具有纵向可点击的滚动效果的列表。BetterScroll 支持的参数非常多,接下来我们来列举 BetterScroll 支持的参数。</p> <h2 id="startx"><a href="#startx" class="header-anchor">#</a> startX</h2> <ul><li><strong>类型</strong>:<code>number</code></li> <li><strong>默认值</strong>:<code>0</code></li> <li><strong>作用</strong>:横轴方向初始化位置。</li></ul> <h2 id="starty"><a href="#starty" class="header-anchor">#</a> startY</h2> <ul><li><strong>类型</strong>:<code>number</code></li> <li><strong>默认值</strong>:<code>0</code></li> <li><strong>作用</strong>:纵轴方向初始化位置。</li></ul> <h2 id="scrollx"><a href="#scrollx" class="header-anchor">#</a> scrollX</h2> <ul><li><strong>类型</strong>:<code>boolean</code></li> <li><strong>默认值</strong>: <code>false</code></li> <li><strong>作用</strong>:当设置为 true 的时候,可以开启横向滚动。</li> <li><strong>备注</strong>:当设置 <a href="/docs/zh-CN/guide/base-scroll-options.html#eventpassthrough">eventPassthrough</a> 为 'horizontal' 的时候,该配置无效。</li></ul> <h2 id="scrolly"><a href="#scrolly" class="header-anchor">#</a> scrollY</h2> <ul><li><strong>类型</strong>:<code>boolean</code></li> <li><strong>默认值</strong>:<code>true</code></li> <li><strong>作用</strong>:当设置为 true 的时候,可以开启纵向滚动。</li> <li><strong>备注</strong>:当设置 <a href="/docs/zh-CN/guide/base-scroll-options.html#eventpassthrough">eventPassthrough</a> 为 'vertical' 的时候,该配置无效。</li></ul> <h2 id="freescroll"><a href="#freescroll" class="header-anchor">#</a> freeScroll</h2> <ul><li><strong>类型</strong>:<code>boolean</code></li> <li><strong>默认值</strong>:<code>false</code></li> <li><strong>作用</strong>:在默认情况下,由于人的手指无法做到绝对垂直或者水平的运动,因此在一次手指操作的过程中,都会存在横向以及纵向的偏移量,内部默认会摒弃偏移量较小的一个方向,保留另一个方向的滚动。但是在某些场景我们需要同时计算横向以及纵向的手指偏移距离,而不是只计算偏移量较大的一个方向,这个时候我们只要设置 <code>freeScroll</code> 为 true 即可。</li> <li><strong>备注</strong>:当设置 <a href="/docs/zh-CN/guide/base-scroll-options.html#eventpassthrough">eventPassthrough</a> 不为空的时候,该配置无效。</li> <li><strong>示例</strong>:</li></ul> <div class="language-js extra-class"><pre class="language-js"><code><span class="token comment">// 手指起点的坐标 e1: { pageX: 120, pageY: 120 }</span>
- <span class="token comment">// 手指终点的坐标 e2: { pageX: 121, pageY: 140 }</span>
- <span class="token comment">// offsetX: e2.pageX - e1.pageX = 1</span>
- <span class="token comment">// offsetY: e2.pageY - e1.pageY = 20</span>
- <span class="token comment">// 如果 freeScroll 为 false, 由于 offsetY > offsetX + directionLockThreshold</span>
- <span class="token comment">// offsetX 被重置为 0, 只保留 offsetY 的偏移量,因此只做一次纵向滚动</span>
- </code></pre></div><h2 id="directionlockthreshold"><a href="#directionlockthreshold" class="header-anchor">#</a> directionLockThreshold</h2> <ul><li><strong>类型</strong>:<code>number</code></li> <li><strong>默认值</strong>:<code>5</code></li> <li><strong>作用</strong>:当 <code>freeScroll</code> 为 false 的情况,我们需要锁定只滚动一个方向的时候,我们在<strong>初始滚动</strong>的时候根据横轴和纵轴滚动的绝对值做差,当差值大于 <code>directionLockThreshold</code> 的时候来决定滚动锁定的方向。</li> <li><strong>备注</strong>:当设置 <a href="/docs/zh-CN/guide/base-scroll-options.html#eventpassthrough">eventPassthrough</a> 的时候,<code>directionLockThreshold</code> 设置无效,始终为 0。</li></ul> <h2 id="eventpassthrough"><a href="#eventpassthrough" class="header-anchor">#</a> eventPassthrough</h2> <ul><li><strong>类型</strong>: <code>string</code></li> <li><strong>默认值</strong>:<code>''</code></li> <li><strong>可选值</strong>:<code>'vertical' | 'horizontal'</code></li> <li><strong>作用</strong>:有时候我们使用 BetterScroll 在某个方向模拟滚动的时候,希望在另一个方向保留原生的滚动(比如轮播图,我们希望横向模拟横向滚动,而纵向的滚动还是保留原生滚动,我们可以设置 <code>eventPassthrough</code> 为 vertical;相应的,如果我们希望保留横向的原生滚动,可以设置<code>eventPassthrough</code>为 horizontal)。</li> <li><strong>备注</strong>:<code>eventPassthrough</code> 的设置会导致其它一些选项配置无效,需要小心使用它。</li></ul> <h2 id="click"><a href="#click" class="header-anchor">#</a> click</h2> <ul><li><strong>类型</strong>:<code>boolean</code></li> <li><strong>默认值</strong>:<code>false</code></li> <li><strong>作用</strong>:BetterScroll 默认会阻止浏览器的原生 click 事件。当设置为 true,BetterScroll 会派发一个 click 事件,我们会给派发的 event 参数加一个私有属性 <code>_constructed</code>,值为 true。</li></ul> <h2 id="dblclick"><a href="#dblclick" class="header-anchor">#</a> dblclick</h2> <ul><li><strong>类型</strong>:<code>boolean | Object</code></li> <li><strong>默认值</strong>:<code>false</code></li> <li><strong>作用</strong>:派发双击点击事件。当配置成 true 的时候,默认 2 次点击的延时为 300 ms,如果配置成对象可以修改 <code>delay</code>。</li></ul> <div class="language-js extra-class"><pre class="language-js"><code> <span class="token literal-property property">dblclick</span><span class="token operator">:</span> <span class="token punctuation">{</span>
- <span class="token literal-property property">delay</span><span class="token operator">:</span> <span class="token number">300</span>
- <span class="token punctuation">}</span>
- </code></pre></div><h2 id="tap"><a href="#tap" class="header-anchor">#</a> tap</h2> <ul><li><strong>类型</strong>:<code>string</code></li> <li><strong>默认值</strong>:<code>''</code></li> <li><strong>作用</strong>:因为 BetterScroll 会阻止原生的 click 事件,我们可以设置 tap 为 'tap',它会在区域被点击的时候派发一个 tap 事件,你可以像监听原生事件那样去监听它。</li></ul> <h2 id="bounce"><a href="#bounce" class="header-anchor">#</a> bounce</h2> <ul><li><strong>类型</strong>:<code>boolean | Object</code></li> <li><strong>默认值</strong>:<code>true</code></li> <li><strong>作用</strong>:当滚动超过边缘的时候会有一小段回弹动画。设置为 true 则开启动画。</li></ul> <div class="language-js extra-class"><pre class="language-js"><code> <span class="token literal-property property">bounce</span><span class="token operator">:</span> <span class="token punctuation">{</span>
- <span class="token literal-property property">top</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
- <span class="token literal-property property">bottom</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
- <span class="token literal-property property">left</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
- <span class="token literal-property property">right</span><span class="token operator">:</span> <span class="token boolean">true</span>
- <span class="token punctuation">}</span>
- </code></pre></div><p><code>bounce</code> 可以支持关闭某些边的回弹效果,可以设置对应边的 <code>key</code> 为 <code>false</code> 即可。</p> <div class="custom-block tip"><p class="custom-block-title">TIP</p> <p>如果想要便捷的设置所有边为 true 或者 false,只需要设置 <code>bounce</code> 为 true 或 false 即可。</p></div> <h2 id="bouncetime"><a href="#bouncetime" class="header-anchor">#</a> bounceTime</h2> <ul><li><strong>类型</strong>:<code>number</code></li> <li><strong>默认值</strong>:<code>800</code>(单位ms)</li> <li><strong>作用</strong>:设置回弹动画的动画时长。</li></ul> <h2 id="momentum"><a href="#momentum" class="header-anchor">#</a> momentum</h2> <ul><li><strong>类型</strong>:<code>boolean</code></li> <li><strong>默认值</strong>:<code>true</code></li> <li><strong>作用</strong>:当快速在屏幕上滑动一段距离的时候,会根据滑动的距离和时间计算出动量,并生成滚动动画。设置为 true 则开启动画。</li></ul> <h2 id="momentumlimittime"><a href="#momentumlimittime" class="header-anchor">#</a> momentumLimitTime</h2> <ul><li><strong>类型</strong>:<code>number</code></li> <li><strong>默认值</strong>:<code>300</code>(单位ms)</li> <li><strong>作用</strong>:只有在屏幕上快速滑动的时间小于 <code>momentumLimitTime</code>,才能开启 momentum 动画。</li></ul> <h2 id="momentumlimitdistance"><a href="#momentumlimitdistance" class="header-anchor">#</a> momentumLimitDistance</h2> <ul><li><strong>类型</strong>:<code>number</code></li> <li><strong>默认值</strong>:<code>15</code>(单位px)</li> <li><strong>作用</strong>:只有在屏幕上快速滑动的距离大于 <code>momentumLimitDistance</code>,才能开启 momentum 动画。</li></ul> <h2 id="swipetime"><a href="#swipetime" class="header-anchor">#</a> swipeTime</h2> <ul><li><strong>类型</strong>:<code>number</code></li> <li><strong>默认值</strong>:<code>2500</code>(单位ms)</li> <li><strong>作用</strong>:设置 momentum 动画的动画时长。</li></ul> <h2 id="swipebouncetime"><a href="#swipebouncetime" class="header-anchor">#</a> swipeBounceTime</h2> <ul><li><strong>类型</strong>:<code>number</code></li> <li><strong>默认值</strong>:<code>500</code>(单位ms)</li> <li><strong>作用</strong>:设置当运行 momentum 动画时,超过边缘后的回弹整个动画时间。</li></ul> <h2 id="deceleration"><a href="#deceleration" class="header-anchor">#</a> deceleration</h2> <ul><li><strong>类型</strong>:<code>number</code></li> <li><strong>默认值</strong>:<code>0.0015</code></li> <li><strong>作用</strong>:表示 momentum 动画的减速度。</li></ul> <h2 id="flicklimittime"><a href="#flicklimittime" class="header-anchor">#</a> flickLimitTime</h2> <ul><li><strong>类型</strong>:<code>number</code></li> <li><strong>默认值</strong>:<code>200</code>(单位ms)</li> <li><strong>作用</strong>:有的时候我们要捕获用户的轻拂动作(短时间滑动一个较短的距离)。只有用户在屏幕上滑动的时间小于 <code>flickLimitTime</code> ,才算一次轻拂。</li></ul> <h2 id="flicklimitdistance"><a href="#flicklimitdistance" class="header-anchor">#</a> flickLimitDistance</h2> <ul><li><strong>类型</strong>:<code>number</code></li> <li><strong>默认值</strong>:<code>100</code>(单位px)</li> <li><strong>作用</strong>:只有用户在屏幕上滑动的距离小于 <code>flickLimitDistance</code> ,才算一次轻拂。</li></ul> <h2 id="resizepolling"><a href="#resizepolling" class="header-anchor">#</a> resizePolling</h2> <ul><li><strong>类型</strong>:<code>number</code></li> <li><strong>默认值</strong>:<code>60</code>(单位ms)</li> <li><strong>作用</strong>:当窗口的尺寸改变的时候,需要对 BetterScroll 做重新计算,为了优化性能,我们对重新计算做了延时。60ms 是一个比较合理的值。</li></ul> <h2 id="probetype"><a href="#probetype" class="header-anchor">#</a> probeType</h2> <ul><li><strong>类型</strong>:<code>number</code></li> <li><strong>默认值</strong>:<code>0</code></li> <li><strong>可选值</strong>:<code>1|2|3</code></li> <li><strong>作用</strong>:决定是否派发 scroll 事件,对页面的性能有影响,尤其是在 <code>useTransition</code> 为 true 的模式下。</li></ul> <div class="language-js extra-class"><pre class="language-js"><code><span class="token comment">// 派发 scroll 的场景分为两种:</span>
- <span class="token comment">// 1. 手指作用在滚动区域(content DOM)上;</span>
- <span class="token comment">// 2. 调用 scrollTo 方法或者触发 momentum 滚动动画(其实底层还是调用 scrollTo 方法)</span>
- <span class="token comment">// 对于 v2.1.0 版本,对 probeType 做了一次统一</span>
- <span class="token comment">// 1. probeType 为 0,在任何时候都不派发 scroll 事件,</span>
- <span class="token comment">// 2. probeType 为 1,仅仅当手指按在滚动区域上,每隔 momentumLimitTime 毫秒派发一次 scroll 事件,</span>
- <span class="token comment">// 3. probeType 为 2,仅仅当手指按在滚动区域上,一直派发 scroll 事件,</span>
- <span class="token comment">// 4. probeType 为 3,任何时候都派发 scroll 事件,包括调用 scrollTo 或者触发 momentum 滚动动画</span>
- </code></pre></div><h2 id="preventdefault"><a href="#preventdefault" class="header-anchor">#</a> preventDefault</h2> <ul><li><strong>类型</strong>:<code>boolean</code></li> <li><strong>默认值</strong>:<code>true</code></li> <li><strong>作用</strong>:当事件派发后是否阻止浏览器默认行为。这个值应该设为 true,除非你真的知道你在做什么,通常你可能用到的是 <code>preventDefaultException</code>。</li></ul> <h2 id="preventdefaultexception"><a href="#preventdefaultexception" class="header-anchor">#</a> preventDefaultException</h2> <ul><li><strong>类型</strong>:<code>Object</code></li> <li><strong>默认值</strong>:<code>{ tagName: /^(INPUT|TEXTAREA|BUTTON|SELECT|AUDIO)$/}</code></li> <li><strong>作用</strong>:BetterScroll 会阻止原生的滚动,这样也同时阻止了一些原生组件的默认行为。这个时候我们不能对这些元素做 preventDefault,所以我们可以配置 preventDefaultException。默认值 <code>{tagName: /^(INPUT|TEXTAREA|BUTTON|SELECT|AUDIO)$/}</code>表示标签名为 input、textarea、button、select、audio 这些元素的默认行为都不会被阻止。</li> <li><strong>备注</strong>:这是一个非常有用的配置,它的 key 是 DOM 元素的属性值,value 可以是一个正则表达式。比如我们想配一个 class 名称为 test 的元素,那么配置规则为 <code>{className:/(^|\s)test(\s|$)/}</code>。</li></ul> <h2 id="tagexception"><a href="#tagexception" class="header-anchor">#</a> tagException</h2> <ul><li><strong>类型</strong>:<code>Object</code></li> <li><strong>默认值</strong>:<code>{ tagName: /^TEXTAREA$/ }</code></li> <li><strong>作用</strong>:如果 BetterScroll 嵌套了 textarea 等表单元素,往往用户的预期应该是滑动 textarea 不应该引起 bs 滚动,也就是如果操纵的 DOM(eg:textarea 标签) 命中了配置的规则,bs 不会滚动。</li> <li><strong>备注</strong>:这是一个非常有用的配置,它的 key 是 DOM 元素的属性值,value 可以是一个正则表达式。比如我们想配一个 classname 含有 test 类名的元素,那么配置规则为 <code>{className:/(^|\s)test(\s|$)/}</code>。</li></ul> <h2 id="hwcompositing"><a href="#hwcompositing" class="header-anchor">#</a> HWCompositing</h2> <ul><li><strong>类型</strong>:<code>boolean</code></li> <li><strong>默认值</strong>:<code>true</code></li> <li><strong>作用</strong>:是否开启硬件加速,开启它会在 content 元素上添加 <code>translateZ(1px)</code> 来开启硬件加速从而提升动画性能,有很好的滚动效果。</li> <li><strong>备注</strong>:只有支持硬件加速的浏览器开启才有效果。</li></ul> <h2 id="usetransition"><a href="#usetransition" class="header-anchor">#</a> useTransition</h2> <ul><li><strong>类型</strong>:<code>boolean</code></li> <li><strong>默认值</strong>:<code>true</code></li> <li><strong>作用</strong>:是否使用 CSS3 transition 动画。如果设置为 false,则使用 requestAnimationFrame 做动画。</li></ul> <h2 id="bindtowrapper"><a href="#bindtowrapper" class="header-anchor">#</a> bindToWrapper</h2> <ul><li><strong>类型</strong>:<code>boolean</code></li> <li><strong>默认值</strong>:<code>false</code></li> <li><strong>作用</strong>:touchmove 事件通常会绑定到 document 上而不是滚动的容器(wrapper)上,当移动的过程中光标(通常对于 PC 场景)离开滚动的容器滚动仍然会继续,这通常是期望的。当然你也可以把 move 事件绑定到滚动的容器上,<code>bindToWrapper</code> 设置为 true 即可,这样一旦移动的过程中光标离开滚动的容器,滚动会立刻停止。</li> <li><strong>注意</strong>:对于移动端来说,就算 touchmove 事件绑定在 wrapper 上,手指离开 wrapper,依然能移动 wrapper。</li></ul> <h2 id="disablemouse"><a href="#disablemouse" class="header-anchor">#</a> disableMouse</h2> <ul><li><strong>类型</strong>:<code>boolean</code></li> <li><strong>默认值</strong>:根据当前浏览器环境计算而来</li> <li><strong>作用</strong>:当在移动端环境(支持 touch 事件),disableMouse 会计算为 true,这样就不会监听鼠标相关的事件,而在 PC 环境,disableMouse 会计算为 false,就会监听鼠标相关事件。</li></ul> <h2 id="disabletouch"><a href="#disabletouch" class="header-anchor">#</a> disableTouch</h2> <ul><li><strong>类型</strong>:<code>boolean</code></li> <li><strong>默认值</strong>:根据当前浏览器环境计算而来</li> <li><strong>作用</strong>:当在移动端环境(支持 touch 事件),disableTouch 会计算为 false,监听 touch 相关的事件,而在 PC 环境,disableTouch 会计算为 true,不会监听 touch 相关事件。</li></ul> <div class="custom-block warning"><p class="custom-block-title">WARNING</p> <p>考虑到用户的一些特定场景,比如在<strong>平板电脑需要支持 touch 事件,平板电脑接入鼠标又得支持 mouse 事件</strong>,那么实例化 BetterScroll 需要如下配置:</p> <div class="language-js extra-class"><pre class="language-js"><code><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 literal-property property">disableMouse</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
- <span class="token literal-property property">disableTouch</span><span class="token operator">:</span> <span class="token boolean">false</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div><p>由于不同设备、不同浏览器环境的底层实现逻辑不同,BetterScroll 内部计算是否监听 touch 还是 mouse 事件可能会有判断失误,因此你可以根据以上的选项配置来解决这类问题。</p></div> <h2 id="autoblur"><a href="#autoblur" class="header-anchor">#</a> autoBlur</h2> <ul><li><strong>类型</strong>:<code>boolean</code></li> <li><strong>默认值</strong>:<code>true</code></li> <li><strong>作用</strong>:在滚动之前会让当前激活的元素(input、textarea)自动失去焦点。</li></ul> <h2 id="stoppropagation"><a href="#stoppropagation" class="header-anchor">#</a> stopPropagation</h2> <ul><li><strong>类型</strong>:<code>boolean</code></li> <li><strong>默认值</strong>:<code>false</code></li> <li><strong>作用</strong>:是否阻止事件冒泡。多用在嵌套 scroll 的场景。</li></ul> <h2 id="bindtotarget"><a href="#bindtotarget" class="header-anchor">#</a> bindToTarget</h2> <ul><li><strong>类型</strong>:<code>boolean</code></li> <li><strong>默认值</strong>:<code>false</code></li> <li><strong>作用</strong>:将 touch 或者 mouse 事件绑定在 <code>content</code> 元素而不是容器 <code>wrapper</code>上,多用于 <a href="/docs/zh-CN/plugins/movable.html">movable 场景</a>。</li></ul> <h2 id="autoenddistance"><a href="#autoenddistance" class="header-anchor">#</a> autoEndDistance</h2> <ul><li><strong>类型</strong>:<code>number</code></li> <li><strong>默认值</strong>:<code>5</code></li> <li><strong>作用</strong>:当手指操作幅度过大,滑出视口导致可能没有触发 touchend 事件,因此 autoEndDistance 的作用就是当手指即将脱离当前视口的时候,自动调用 touchend 事件。默认距离边界 5px 的时候,结束滚动。</li></ul> <h2 id="outofboundarydampingfactor"><a href="#outofboundarydampingfactor" class="header-anchor">#</a> outOfBoundaryDampingFactor</h2> <ul><li><strong>类型</strong>:<code>number</code></li> <li><strong>默认值</strong>:<code>1 / 3</code></li> <li><strong>作用</strong>:当超过边界的时候,进行阻尼行为,阻尼因子越小,阻力越大,取值范围:[0, 1]。</li></ul> <h2 id="specifiedindexascontent"><a href="#specifiedindexascontent" class="header-anchor">#</a> specifiedIndexAsContent <span class="badge tip" style="vertical-align:top;" data-v-15b7b770>2.0.4</span></h2> <ul><li><strong>类型</strong>:<code>number</code></li> <li><strong>默认值</strong>:<code>0</code></li> <li><strong>作用</strong>:指定 <code>wrapper</code> 对应索引的子元素作为 <code>content</code>,默认情况下 BetterScroll 采用的是 <code>wrapper</code> 的第一个子元素作为 content。</li></ul> <div class="language-html extra-class"><pre class="language-html"><code><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>wrapper<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>content1<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>conten1-item<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>1.1<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>conten1-item<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>1.2<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>content2<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>conten2-item<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>2.1<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>conten2-item<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>2.2<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
- </code></pre></div><div class="language-js extra-class"><pre class="language-js"><code><span class="token comment">// 针对以上 DOM 结构,在 BetterScroll 版本 <= 2.0.3,内部只会使用 wrapper.children[0],也就是 div.content1 作为 content</span>
- <span class="token comment">// 当 版本 >= 2.0.4 的时候,可以通过 specifiedIndexAsContent 配置项来指定 content</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 literal-property property">specifiedIndexAsContent</span><span class="token operator">:</span> <span class="token number">1</span> <span class="token comment">// 使用 div.content2 作为 BetterScroll 的 content</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div><h2 id="quadrant"><a href="#quadrant" class="header-anchor">#</a> quadrant <span class="badge tip" style="vertical-align:top;" data-v-15b7b770>2.3.0</span></h2> <ul><li><strong>类型</strong>:<code>1 | 2 | 3 | 4</code></li> <li><strong>默认值</strong>:<code>1</code></li> <li><strong>作用</strong>:当 BetterScroll 的 wrapper DOM 的祖先元素被 CSS 强制旋转之后,原先的 x 以及 y 方向的位移需要发生一定的变换才能保证交互合理</li></ul> <div class="language-html extra-class"><pre class="language-html"><code><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>style</span><span class="token punctuation">></span></span><span class="token style"><span class="token language-css">
- <span class="token comment">/* wrapper 的父元素强制旋转 */</span>
- <span class="token selector">.container</span> <span class="token punctuation">{</span>
- <span class="token property">transform</span><span class="token punctuation">:</span> <span class="token function">rotate</span><span class="token punctuation">(</span>90deg<span class="token punctuation">)</span><span class="token punctuation">;</span>
- <span class="token punctuation">}</span>
- </span></span><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>style</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>container<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>wrapper<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>content<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>content-item<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>1.1<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>content-item<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>1.2<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
- </code></pre></div><div class="language-js extra-class"><pre class="language-js"><code><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 literal-property property">quadrant</span><span class="token operator">:</span> <span class="token number">2</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div><ol><li>当 wrapper 的父元素或者祖先元素旋转的角度为 (315, 45],quadrant 保持默认值即可;</li> <li>当 wrapper 的父元素或者祖先元素旋转的角度为 (45, 135],quadrant <strong>建议</strong>为 <code>2</code>,尤其是 90 度,quadrant <strong>必须</strong>为 <code>2</code>;</li> <li>当 wrapper 的父元素或者祖先元素旋转的角度为 (135, 225],quadrant <strong>建议</strong>为 <code>3</code>,尤其是 180 度,quadrant <strong>必须</strong>为 <code>3</code>;</li> <li>当 wrapper 的父元素或者祖先元素旋转的角度为 (225, 315],quadrant <strong>建议</strong>为 <code>4</code>,尤其是 270 度,quadrant <strong>必须</strong>为 <code>4</code>;</li> <li>当旋转角度比较特殊的时候,比如 30 度,200 度,你可能不满意内置的变换逻辑,你可以通过 <code>coordinateTransformation</code> hook 来自定义你自己的变换逻辑。</li></ol> <div class="language-js extra-class"><pre class="language-js"><code><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 literal-property property">quadrant</span><span class="token operator">:</span> <span class="token number">1</span> <span class="token comment">// 保持默认即可</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- bs<span class="token punctuation">.</span>scroller<span class="token punctuation">.</span>actions<span class="token punctuation">.</span>hooks<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span>
- bs<span class="token punctuation">.</span>scroller<span class="token punctuation">.</span>actions<span class="token punctuation">.</span>hooks<span class="token punctuation">.</span>eventTypes<span class="token punctuation">.</span>coordinateTransformation<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>例如:使用 CSS 将横向滚动的 BetterScroll 翻转。</p> <div class="demo-wrap"><div class="demo-nav"><i class="demo-nav-btn icon-code"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="#666"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 20l4-16m4 4l4 4-4 4M6 16l-4-4 4-4"></path></svg></i> <div class="v-popover"><div class="trigger" style="display:inline-block;"><i class="demo-nav-btn icon-qrcode"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="#666"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 4v1m6 11h2m-6 0h-2v4m0-11v3m0 0h.01M12 12h4.01M16 20h4M4 12h4m12 0h.01M5 8h2a1 1 0 001-1V5a1 1 0 00-1-1H5a1 1 0 00-1 1v2a1 1 0 001 1zm12 0h2a1 1 0 001-1V5a1 1 0 00-1-1h-2a1 1 0 00-1 1v2a1 1 0 001 1zM5 20h2a1 1 0 001-1v-2a1 1 0 00-1-1H5a1 1 0 00-1 1v2a1 1 0 001 1z"></path></svg></i> </div> <div id="popover_kow9kcwkm9" aria-hidden="true" tabindex="0" class="tooltip popover vue-popover-theme" style="visibility:hidden;"><div class="wrapper"><div class="tooltip-inner popover-inner" style="position:relative;"><div><div></div></div> <div tabindex="-1" class="resize-observer" data-v-8859cc6c></div></div> <div class="tooltip-arrow popover-arrow"></div></div></div></div> <i class="demo-nav-btn icon-preview"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="#666"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"></path></svg></i></div> <div class="demo-code" style="display:none;"><div class="demo-code-nav"><button class="demo-code-btn active">Template</button><button class="demo-code-btn">Script</button><button class="demo-code-btn">Style</button></div> <div class="demo-code-content"><div class="demo-code-item" style="display:;"><div class="language-vue extra-class"><pre class="language-vue"><code><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>template</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>horizontal-rotated-container<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>description<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>Flipping layout via CSS<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>scroll-wrapper<span class="token punctuation">"</span></span> <span class="token attr-name">ref</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>scroll<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>scroll-content<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>scroll-item<span class="token punctuation">"</span></span> <span class="token attr-name">v-for</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>num in nums<span class="token punctuation">"</span></span> <span class="token attr-name">:key</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>num<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>{{num}}<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>template</span><span class="token punctuation">></span></span></code></pre></div></div><div class="demo-code-item" style="display:none;"><div class="language-vue extra-class"><pre class="language-vue"><code><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>script</span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>text/ecmascript-6<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><span class="token script"><span class="token language-javascript">
- <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">export</span> <span class="token keyword">default</span> <span class="token punctuation">{</span>
- <span class="token function">data</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">return</span> <span class="token punctuation">{</span>
- <span class="token literal-property property">nums</span><span class="token operator">:</span> <span class="token number">8</span>
- <span class="token punctuation">}</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token function">mounted</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span><span class="token function">init</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token function">beforeDestroy</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>bs<span class="token punctuation">.</span><span class="token function">destroy</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token literal-property property">methods</span><span class="token operator">:</span> <span class="token punctuation">{</span>
- <span class="token function">init</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">this</span><span class="token punctuation">.</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 keyword">this</span><span class="token punctuation">.</span>$refs<span class="token punctuation">.</span>scroll<span class="token punctuation">,</span> <span class="token punctuation">{</span>
- <span class="token literal-property property">scrollX</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
- <span class="token literal-property property">scrollY</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
- <span class="token comment">// v2.3.0</span>
- <span class="token literal-property property">quadrant</span><span class="token operator">:</span> <span class="token number">3</span> <span class="token comment">// rotate180</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- <span class="token punctuation">}</span>
- <span class="token punctuation">}</span>
- <span class="token punctuation">}</span>
- </span></span><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>script</span><span class="token punctuation">></span></span></code></pre></div></div><div class="demo-code-item" style="display:none;"><div class="language-styl extra-class"><pre class="language-styl"><code><style lang=<span class="token string">"stylus"</span> rel=<span class="token string">"stylesheet/stylus"</span> scoped>
- <span class="token selector"><span class="token comment">/* flipping by CSS */</span>
- .scroll-wrapper</span>
- <span class="token property-declaration"><span class="token property">transform</span> <span class="token func"><span class="token function">rotate</span><span class="token punctuation">(</span><span class="token number">180</span><span class="token unit">deg</span><span class="token punctuation">)</span></span></span>
- <span class="token selector">.horizontal-rotated-container</span>
- <span class="token selector">.description</span>
- <span class="token property-declaration"><span class="token property">margin-bottom</span> <span class="token number">40</span><span class="token unit">px</span></span>
- <span class="token property-declaration"><span class="token property">text-align</span> center</span>
- <span class="token selector">.scroll-wrapper</span>
- <span class="token property-declaration"><span class="token property">height</span> <span class="token number">100</span><span class="token unit">px</span></span>
- <span class="token property-declaration"><span class="token property">width</span> <span class="token number">250</span><span class="token unit">px</span></span>
- <span class="token property-declaration"><span class="token property">position</span> relative</span>
- <span class="token property-declaration"><span class="token property">overflow</span> hidden</span>
- <span class="token property-declaration"><span class="token property">white-space</span> nowrap</span>
- <span class="token property-declaration"><span class="token property">margin</span> <span class="token number">0</span> auto</span>
- <span class="token property-declaration"><span class="token property">border</span> <span class="token number">1</span><span class="token unit">px</span> solid <span class="token hexcode">#ccc</span></span>
- <span class="token selector">.scroll-content</span>
- <span class="token property-declaration"><span class="token property">display</span> inline-block</span>
- <span class="token selector">.scroll-item</span>
- <span class="token property-declaration"><span class="token property">height</span> <span class="token number">100</span><span class="token unit">px</span></span>
- <span class="token property-declaration"><span class="token property">width</span> <span class="token number">100</span><span class="token unit">px</span></span>
- <span class="token property-declaration"><span class="token property">line-height</span> <span class="token number">100</span><span class="token unit">px</span></span>
- <span class="token property-declaration"><span class="token property">font-size</span> <span class="token number">24</span><span class="token unit">px</span></span>
- <span class="token property-declaration"><span class="token property">font-weight</span> bold</span>
- <span class="token property-declaration"><span class="token property">text-align</span> center</span>
- <span class="token property-declaration"><span class="token property">display</span> inline-block</span>
- <span class="token selector">&:nth-child(2n)</span>
- <span class="token property-declaration"><span class="token property">background-color</span> <span class="token hexcode">#f3f5f7</span></span>
- <span class="token selector">&:nth-child(2n+1)</span>
- <span class="token property-declaration"><span class="token property">background-color</span> <span class="token hexcode">#42b983</span></span>
- </style></code></pre></div></div> <i class="demo-code-content-copy"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="#ccc"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 5H6a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2v-1M8 5a2 2 0 002 2h2a2 2 0 002-2M8 5a2 2 0 012-2h2a2 2 0 012 2m0 0h2a2 2 0 012 2v3m2 4H10m0 0l3-3m-3 3l3 3"></path></svg></i> <!----></div></div> <div class="demo-main"><div class="demo-component-wrap"></div></div></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-options.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">2021/4/19 20:15:26</span></div></footer> <div class="page-nav"><p class="inner"><span class="prev">
- ←
- <a href="/docs/zh-CN/guide/base-scroll.html" class="prev">
- 核心滚动
- </a></span> <span class="next"><a href="/docs/zh-CN/guide/base-scroll-api.html">
- API
- </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/103.7a3ae3b5.js" defer></script><script src="/docs/assets/js/7.518ccda7.js" defer></script><script src="/docs/assets/js/56.cd04bae9.js" defer></script>
- </body>
- </html>
|