mouse-wheel.html 201 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953
  1. <!DOCTYPE html>
  2. <html lang="en-US">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width,initial-scale=1">
  6. <title>mouse-wheel | BetterScroll 2.0</title>
  7. <meta name="generator" content="VuePress 1.9.10">
  8. <link rel="shortcut icon" href="/docs/assets/bs.ico" type="images/x-icon">
  9. <script src="https://www.googletagmanager.com/gtag/js?id=G-7E85TW7P27"></script>
  10. <script type="text/javascript">
  11. window.dataLayer = window.dataLayer || [];
  12. function gtag(){dataLayer.push(arguments);}
  13. gtag('js', new Date());
  14. gtag('config', 'G-7E85TW7P27');
  15. </script>
  16. <meta name="description" content="Make Scroll Perfect">
  17. <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/87.0db12b1e.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/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/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/7.518ccda7.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/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">
  18. <link rel="stylesheet" href="/docs/assets/css/0.styles.0cd93813.css">
  19. </head>
  20. <body>
  21. <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/en-US/" 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/en-US/guide/" class="nav-link">
  22. Guide
  23. </a></div><div class="nav-item"><a href="/docs/en-US/plugins/" class="nav-link router-link-active">
  24. Plugin
  25. </a></div><div class="nav-item"><a href="/docs/en-US/FAQ/" class="nav-link">
  26. FAQ
  27. </a></div><div class="nav-item"><a href="https://github.com/ustbhuangyi/better-scroll/issues" target="_blank" rel="noopener noreferrer" class="nav-link external">
  28. Discuss
  29. <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">Languages</span> <span class="arrow down"></span></button> <button type="button" aria-label="Select language" class="mobile-dropdown-title"><span class="title">Languages</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/docs/en-US/plugins/mouse-wheel.html" aria-current="page" class="nav-link router-link-exact-active router-link-active">
  30. English
  31. </a></li><li class="dropdown-item"><!----> <a href="/docs/zh-CN/plugins/mouse-wheel.html" class="nav-link">
  32. 简体中文
  33. </a></li></ul></div></div> <a href="https://github.com/ustbhuangyi/better-scroll" target="_blank" rel="noopener noreferrer" class="repo-link">
  34. GitHub
  35. <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/en-US/guide/" class="nav-link">
  36. Guide
  37. </a></div><div class="nav-item"><a href="/docs/en-US/plugins/" class="nav-link router-link-active">
  38. Plugin
  39. </a></div><div class="nav-item"><a href="/docs/en-US/FAQ/" class="nav-link">
  40. FAQ
  41. </a></div><div class="nav-item"><a href="https://github.com/ustbhuangyi/better-scroll/issues" target="_blank" rel="noopener noreferrer" class="nav-link external">
  42. Discuss
  43. <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">Languages</span> <span class="arrow down"></span></button> <button type="button" aria-label="Select language" class="mobile-dropdown-title"><span class="title">Languages</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/docs/en-US/plugins/mouse-wheel.html" aria-current="page" class="nav-link router-link-exact-active router-link-active">
  44. English
  45. </a></li><li class="dropdown-item"><!----> <a href="/docs/zh-CN/plugins/mouse-wheel.html" class="nav-link">
  46. 简体中文
  47. </a></li></ul></div></div> <a href="https://github.com/ustbhuangyi/better-scroll" target="_blank" rel="noopener noreferrer" class="repo-link">
  48. GitHub
  49. <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>Plugins Guide</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/docs/en-US/plugins/" aria-current="page" class="sidebar-link">plugins</a></li><li><a href="/docs/en-US/plugins/how-to-write.html" class="sidebar-link">How to write plugins</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading open"><span>Plugins</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/docs/en-US/plugins/mouse-wheel.html" aria-current="page" class="active sidebar-link">mouse-wheel</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/docs/en-US/plugins/mouse-wheel.html#install" class="sidebar-link">Install</a></li><li class="sidebar-sub-header"><a href="/docs/en-US/plugins/mouse-wheel.html#basic-usage" class="sidebar-link">Basic Usage</a></li><li class="sidebar-sub-header"><a href="/docs/en-US/plugins/mouse-wheel.html#advanced-usage" class="sidebar-link">Advanced Usage</a></li><li class="sidebar-sub-header"><a href="/docs/en-US/plugins/mouse-wheel.html#mousewheel-options" class="sidebar-link">mouseWheel options</a></li><li class="sidebar-sub-header"><a href="/docs/en-US/plugins/mouse-wheel.html#events" class="sidebar-link">Events</a></li></ul></li><li><a href="/docs/en-US/plugins/observe-dom.html" class="sidebar-link">observe-dom</a></li><li><a href="/docs/en-US/plugins/observe-image.html" class="sidebar-link">observe-image</a></li><li><a href="/docs/en-US/plugins/pulldown.html" class="sidebar-link">pulldown</a></li><li><a href="/docs/en-US/plugins/pullup.html" class="sidebar-link">pullup</a></li><li><a href="/docs/en-US/plugins/scroll-bar.html" class="sidebar-link">scrollbar</a></li><li><a href="/docs/en-US/plugins/indicators.html" class="sidebar-link">indicators</a></li><li><a href="/docs/en-US/plugins/slide.html" class="sidebar-link">slide</a></li><li><a href="/docs/en-US/plugins/wheel.html" class="sidebar-link">wheel</a></li><li><a href="/docs/en-US/plugins/zoom.html" class="sidebar-link">zoom</a></li><li><a href="/docs/en-US/plugins/nested-scroll.html" class="sidebar-link">nested-scroll</a></li><li><a href="/docs/en-US/plugins/infinity.html" class="sidebar-link">infinity</a></li><li><a href="/docs/en-US/plugins/movable.html" class="sidebar-link">movable</a></li></ul></section></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="mouse-wheel"><a href="#mouse-wheel" class="header-anchor">#</a> mouse-wheel</h1> <p>mouseWheel extends the capabilities of the BetterScroll mouse wheel.</p> <h2 id="install"><a href="#install" class="header-anchor">#</a> Install</h2> <div class="language-bash extra-class"><pre class="language-bash"><code><span class="token function">npm</span> <span class="token function">install</span> @better-scroll/mouse-wheel <span class="token parameter variable">--save</span>
  50. // or
  51. <span class="token function">yarn</span> <span class="token function">add</span> @better-scroll/mouse-wheel
  52. </code></pre></div><div class="custom-block tip"><p class="custom-block-title">TIP</p> <p>Currently supports mouse wheel: core, slide, wheel, pullup, pulldown plugins.</p></div> <h2 id="basic-usage"><a href="#basic-usage" class="header-anchor">#</a> Basic Usage</h2> <p>In order to enable the mouseWheel plugin, you need to first import it, register the plugin through the static method <code>BScroll.use()</code>, and finally pass in the correct <a href="/docs/en-US/plugins/mouse-wheel.html#mousewheel-options">mouseWheel option</a></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>
  53. <span class="token keyword">import</span> MouseWheel <span class="token keyword">from</span> <span class="token string">'@better-scroll/mouse-wheel'</span>
  54. BScroll<span class="token punctuation">.</span><span class="token function">use</span><span class="token punctuation">(</span>MouseWheel<span class="token punctuation">)</span>
  55. <span class="token keyword">new</span> <span class="token class-name">BScroll</span><span class="token punctuation">(</span><span class="token string">'.bs-wrapper'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span>
  56. <span class="token comment">//...</span>
  57. <span class="token literal-property property">mouseWheel</span><span class="token operator">:</span> <span class="token punctuation">{</span>
  58. <span class="token literal-property property">speed</span><span class="token operator">:</span> <span class="token number">20</span><span class="token punctuation">,</span>
  59. <span class="token literal-property property">invert</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
  60. <span class="token literal-property property">easeTime</span><span class="token operator">:</span> <span class="token number">300</span>
  61. <span class="token punctuation">}</span>
  62. <span class="token punctuation">}</span><span class="token punctuation">)</span>
  63. </code></pre></div><ul><li><strong>VerticalScroll Demo</strong></li></ul> <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="#000"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="3" d="M10 20l4-16m4 4l4 4-4 4M6 16l-4-4 4-4"></path></svg></i> <!----> <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:;"><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">&lt;</span>template</span><span class="token punctuation">&gt;</span></span>
  64. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</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">&quot;</span>mouse-wheel-vertical-scroll<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>
  65. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</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">&quot;</span>mouse-wheel-wrapper<span class="token punctuation">&quot;</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">&quot;</span>scroll<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>
  66. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</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">&quot;</span>mouse-wheel-content<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>
  67. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</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">&quot;</span>mouse-wheel-item<span class="token punctuation">&quot;</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">&quot;</span>n in 100<span class="token punctuation">&quot;</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">&quot;</span>n<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>{{n}}<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
  68. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
  69. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
  70. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
  71. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>template</span><span class="token punctuation">&gt;</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">&lt;</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">&quot;</span>text/ecmascript-6<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span><span class="token script"><span class="token language-javascript">
  72. <span class="token keyword">import</span> BScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
  73. <span class="token keyword">import</span> MouseWheel <span class="token keyword">from</span> <span class="token string">'@better-scroll/mouse-wheel'</span>
  74. BScroll<span class="token punctuation">.</span><span class="token function">use</span><span class="token punctuation">(</span>MouseWheel<span class="token punctuation">)</span>
  75. <span class="token keyword">export</span> <span class="token keyword">default</span> <span class="token punctuation">{</span>
  76. <span class="token function">mounted</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
  77. <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>
  78. <span class="token punctuation">}</span><span class="token punctuation">,</span>
  79. <span class="token literal-property property">methods</span><span class="token operator">:</span> <span class="token punctuation">{</span>
  80. <span class="token function">init</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
  81. <span class="token keyword">this</span><span class="token punctuation">.</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 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>
  82. <span class="token literal-property property">mouseWheel</span><span class="token operator">:</span> <span class="token boolean">true</span>
  83. <span class="token punctuation">}</span><span class="token punctuation">)</span>
  84. <span class="token punctuation">}</span>
  85. <span class="token punctuation">}</span>
  86. <span class="token punctuation">}</span>
  87. </span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>script</span><span class="token punctuation">&gt;</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>&lt;style lang=<span class="token string">&quot;stylus&quot;</span> rel=<span class="token string">&quot;stylesheet/stylus&quot;</span> scoped&gt;
  88. <span class="token selector">.mouse-wheel-vertical-scroll</span>
  89. <span class="token selector">.mouse-wheel-wrapper</span>
  90. <span class="token property-declaration"><span class="token property">height</span> <span class="token number">400</span><span class="token unit">px</span></span>
  91. <span class="token property-declaration"><span class="token property">overflow</span> hidden</span>
  92. <span class="token selector">.mouse-wheel-item</span>
  93. <span class="token property-declaration"><span class="token property">height</span> <span class="token number">50</span><span class="token unit">px</span></span>
  94. <span class="token property-declaration"><span class="token property">line-height</span> <span class="token number">50</span><span class="token unit">px</span></span>
  95. <span class="token property-declaration"><span class="token property">font-size</span> <span class="token number">20</span><span class="token unit">px</span></span>
  96. <span class="token property-declaration"><span class="token property">font-weight</span> bold</span>
  97. <span class="token property-declaration"><span class="token property">text-align</span> center</span>
  98. <span class="token selector">&amp;:nth-child(2n)</span>
  99. <span class="token property-declaration"><span class="token property">background-color</span> <span class="token hexcode">#C3D899</span></span>
  100. <span class="token selector">&amp;:nth-child(2n+1)</span>
  101. <span class="token property-declaration"><span class="token property">background-color</span> <span class="token hexcode">#F2D4A7</span></span>
  102. &lt;/style&gt;</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> <ul><li><p><strong>HorizontalScroll Demo</strong></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> <!----> <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">&lt;</span>template</span><span class="token punctuation">&gt;</span></span>
  103. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</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">&quot;</span>mouse-wheel-horizontal-scroll<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>
  104. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</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">&quot;</span>mouse-wheel-wrapper<span class="token punctuation">&quot;</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">&quot;</span>scroll<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>
  105. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</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">&quot;</span>mouse-wheel-content<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>
  106. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</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">&quot;</span>mouse-wheel-item<span class="token punctuation">&quot;</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">&quot;</span>n in 100<span class="token punctuation">&quot;</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">&quot;</span>n<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>{{n}}<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
  107. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
  108. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
  109. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
  110. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>template</span><span class="token punctuation">&gt;</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">&lt;</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">&quot;</span>text/ecmascript-6<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span><span class="token script"><span class="token language-javascript">
  111. <span class="token keyword">import</span> BScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
  112. <span class="token keyword">import</span> MouseWheel <span class="token keyword">from</span> <span class="token string">'@better-scroll/mouse-wheel'</span>
  113. BScroll<span class="token punctuation">.</span><span class="token function">use</span><span class="token punctuation">(</span>MouseWheel<span class="token punctuation">)</span>
  114. <span class="token keyword">export</span> <span class="token keyword">default</span> <span class="token punctuation">{</span>
  115. <span class="token function">mounted</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
  116. <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>
  117. <span class="token punctuation">}</span><span class="token punctuation">,</span>
  118. <span class="token literal-property property">methods</span><span class="token operator">:</span> <span class="token punctuation">{</span>
  119. <span class="token function">init</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
  120. <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>
  121. <span class="token literal-property property">scrollX</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
  122. <span class="token literal-property property">scrollY</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
  123. <span class="token literal-property property">mouseWheel</span><span class="token operator">:</span> <span class="token boolean">true</span>
  124. <span class="token punctuation">}</span><span class="token punctuation">)</span>
  125. <span class="token punctuation">}</span>
  126. <span class="token punctuation">}</span>
  127. <span class="token punctuation">}</span>
  128. </span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>script</span><span class="token punctuation">&gt;</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>&lt;style lang=<span class="token string">&quot;stylus&quot;</span> scoped&gt;
  129. <span class="token selector">.mouse-wheel-horizontal-scroll</span>
  130. <span class="token selector">.mouse-wheel-wrapper</span>
  131. <span class="token property-declaration"><span class="token property">width</span> <span class="token number">90</span><span class="token unit">%</span></span>
  132. <span class="token property-declaration"><span class="token property">margin</span> <span class="token number">80</span><span class="token unit">px</span> auto</span>
  133. <span class="token property-declaration"><span class="token property">white-space</span> nowrap</span>
  134. <span class="token property-declaration"><span class="token property">border</span> <span class="token number">3</span><span class="token unit">px</span> solid <span class="token hexcode">#42b983</span></span>
  135. <span class="token property-declaration"><span class="token property">border-radius</span> <span class="token number">5</span><span class="token unit">px</span></span>
  136. <span class="token property-declaration"><span class="token property">overflow</span> hidden</span>
  137. <span class="token selector">.mouse-wheel-content</span>
  138. <span class="token property-declaration"><span class="token property">display</span> inline-block</span>
  139. <span class="token selector">.mouse-wheel-item</span>
  140. <span class="token property-declaration"><span class="token property">height</span> <span class="token number">50</span><span class="token unit">px</span></span>
  141. <span class="token property-declaration"><span class="token property">line-height</span> <span class="token number">50</span><span class="token unit">px</span></span>
  142. <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>
  143. <span class="token property-declaration"><span class="token property">display</span> inline-block</span>
  144. <span class="token property-declaration"><span class="token property">text-align</span> center</span>
  145. <span class="token property-declaration"><span class="token property">padding</span> <span class="token number">0</span> <span class="token number">20</span><span class="token unit">px</span></span>
  146. <span class="token selector">&amp;:nth-child(2n)</span>
  147. <span class="token property-declaration"><span class="token property">background-color</span> <span class="token hexcode">#C3D899</span></span>
  148. <span class="token selector">&amp;:nth-child(2n+1)</span>
  149. <span class="token property-declaration"><span class="token property">background-color</span> <span class="token hexcode">#F2D4A7</span></span>
  150. &lt;/style&gt;</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></li></ul> <h2 id="advanced-usage"><a href="#advanced-usage" class="header-anchor">#</a> Advanced Usage</h2> <p>The mouseWheel plugin can also be used with other plugins to increase the operation of the mouse wheel.</p> <ul><li><p><strong>mouseWheel &amp; slide</strong></p> <p>Operate <a href="/docs/en-US/plugins/slide.html">slide</a> with the mouse wheel.</p> <ul><li><p><strong>HorizontalSlide Demo</strong></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> <!----> <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">&lt;</span>template</span><span class="token punctuation">&gt;</span></span>
  151. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</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">&quot;</span>mouse-wheel-horizontal-slide<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>
  152. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</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">&quot;</span>slide-container<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>
  153. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</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">&quot;</span>slide-wrapper<span class="token punctuation">&quot;</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">&quot;</span>slide<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>
  154. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</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">&quot;</span>slide-content<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>
  155. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</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">&quot;</span>slide-page page1<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>page 1<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
  156. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</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">&quot;</span>slide-page page2<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>page 2<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
  157. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</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">&quot;</span>slide-page page3<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>page 3<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
  158. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</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">&quot;</span>slide-page page4<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>page 4<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
  159. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
  160. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
  161. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</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">&quot;</span>dots-wrapper<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>
  162. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>span</span>
  163. <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>dot<span class="token punctuation">&quot;</span></span>
  164. <span class="token attr-name">v-for</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>(item, index) in 4<span class="token punctuation">&quot;</span></span>
  165. <span class="token attr-name">:key</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>index<span class="token punctuation">&quot;</span></span>
  166. <span class="token attr-name">:class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>{'active': currentPageIndex === index}<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>span</span><span class="token punctuation">&gt;</span></span>
  167. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
  168. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
  169. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
  170. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>template</span><span class="token punctuation">&gt;</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">&lt;</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">&quot;</span>text/ecmascript-6<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span><span class="token script"><span class="token language-javascript">
  171. <span class="token keyword">import</span> BScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
  172. <span class="token keyword">import</span> Slide <span class="token keyword">from</span> <span class="token string">'@better-scroll/slide'</span>
  173. <span class="token keyword">import</span> MouseWheel <span class="token keyword">from</span> <span class="token string">'@better-scroll/mouse-wheel'</span>
  174. BScroll<span class="token punctuation">.</span><span class="token function">use</span><span class="token punctuation">(</span>Slide<span class="token punctuation">)</span>
  175. BScroll<span class="token punctuation">.</span><span class="token function">use</span><span class="token punctuation">(</span>MouseWheel<span class="token punctuation">)</span>
  176. <span class="token keyword">export</span> <span class="token keyword">default</span> <span class="token punctuation">{</span>
  177. <span class="token function">data</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
  178. <span class="token keyword">return</span> <span class="token punctuation">{</span>
  179. <span class="token literal-property property">currentPageIndex</span><span class="token operator">:</span> <span class="token number">0</span>
  180. <span class="token punctuation">}</span>
  181. <span class="token punctuation">}</span><span class="token punctuation">,</span>
  182. <span class="token function">mounted</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
  183. <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>
  184. <span class="token punctuation">}</span><span class="token punctuation">,</span>
  185. <span class="token function">beforeDestroy</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
  186. <span class="token keyword">this</span><span class="token punctuation">.</span>slide<span class="token punctuation">.</span><span class="token function">destroy</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
  187. <span class="token punctuation">}</span><span class="token punctuation">,</span>
  188. <span class="token literal-property property">methods</span><span class="token operator">:</span> <span class="token punctuation">{</span>
  189. <span class="token function">init</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
  190. <span class="token keyword">this</span><span class="token punctuation">.</span>slide <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>slide<span class="token punctuation">,</span> <span class="token punctuation">{</span>
  191. <span class="token literal-property property">scrollX</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
  192. <span class="token literal-property property">scrollY</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
  193. <span class="token literal-property property">slide</span><span class="token operator">:</span> <span class="token punctuation">{</span>
  194. <span class="token literal-property property">loop</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
  195. <span class="token literal-property property">threshold</span><span class="token operator">:</span> <span class="token number">100</span>
  196. <span class="token punctuation">}</span><span class="token punctuation">,</span>
  197. <span class="token literal-property property">useTransition</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
  198. <span class="token literal-property property">momentum</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
  199. <span class="token literal-property property">bounce</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
  200. <span class="token literal-property property">stopPropagation</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
  201. <span class="token literal-property property">mouseWheel</span><span class="token operator">:</span> <span class="token punctuation">{</span>
  202. <span class="token literal-property property">speed</span><span class="token operator">:</span> <span class="token number">2</span><span class="token punctuation">,</span>
  203. <span class="token literal-property property">invert</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
  204. <span class="token literal-property property">easeTime</span><span class="token operator">:</span> <span class="token number">300</span>
  205. <span class="token punctuation">}</span>
  206. <span class="token punctuation">}</span><span class="token punctuation">)</span>
  207. <span class="token keyword">this</span><span class="token punctuation">.</span>slide<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 keyword">this</span><span class="token punctuation">.</span>_onScrollEnd<span class="token punctuation">)</span>
  208. <span class="token punctuation">}</span><span class="token punctuation">,</span>
  209. <span class="token function">_onScrollEnd</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
  210. <span class="token keyword">let</span> pageIndex <span class="token operator">=</span> <span class="token keyword">this</span><span class="token punctuation">.</span>slide<span class="token punctuation">.</span><span class="token function">getCurrentPage</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span>pageX
  211. <span class="token keyword">this</span><span class="token punctuation">.</span>currentPageIndex <span class="token operator">=</span> pageIndex
  212. <span class="token punctuation">}</span>
  213. <span class="token punctuation">}</span>
  214. <span class="token punctuation">}</span>
  215. </span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>script</span><span class="token punctuation">&gt;</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>&lt;style lang=<span class="token string">&quot;stylus&quot;</span> rel=<span class="token string">&quot;stylesheet/stylus&quot;</span>&gt;
  216. <span class="token selector">.mouse-wheel-horizontal-slide</span>
  217. <span class="token selector">.slide-container</span>
  218. <span class="token property-declaration"><span class="token property">position</span> relative</span>
  219. <span class="token selector">.slide-wrapper</span>
  220. <span class="token property-declaration"><span class="token property">min-height</span> <span class="token number">1</span><span class="token unit">px</span></span>
  221. <span class="token property-declaration"><span class="token property">overflow</span> hidden</span>
  222. <span class="token selector">.slide-content</span>
  223. <span class="token property-declaration"><span class="token property">height</span> <span class="token number">200</span><span class="token unit">px</span></span>
  224. <span class="token property-declaration"><span class="token property">white-space</span> nowrap</span>
  225. <span class="token property-declaration"><span class="token property">font-size</span> <span class="token number">0</span></span>
  226. <span class="token selector">.slide-page</span>
  227. <span class="token property-declaration"><span class="token property">display</span> inline-block</span>
  228. <span class="token property-declaration"><span class="token property">height</span> <span class="token number">200</span><span class="token unit">px</span></span>
  229. <span class="token property-declaration"><span class="token property">width</span> <span class="token number">100</span><span class="token unit">%</span></span>
  230. <span class="token property-declaration"><span class="token property">line-height</span> <span class="token number">200</span><span class="token unit">px</span></span>
  231. <span class="token property-declaration"><span class="token property">text-align</span> center</span>
  232. <span class="token property-declaration"><span class="token property">font-size</span> <span class="token number">26</span><span class="token unit">px</span></span>
  233. <span class="token selector">&amp;.page1</span>
  234. <span class="token property-declaration"><span class="token property">background-color</span> <span class="token hexcode">#95B8D1</span></span>
  235. <span class="token selector">&amp;.page2</span>
  236. <span class="token property-declaration"><span class="token property">background-color</span> <span class="token hexcode">#DDA789</span></span>
  237. <span class="token selector">&amp;.page3</span>
  238. <span class="token property-declaration"><span class="token property">background-color</span> <span class="token hexcode">#C3D899</span></span>
  239. <span class="token selector">&amp;.page4</span>
  240. <span class="token property-declaration"><span class="token property">background-color</span> <span class="token hexcode">#F2D4A7</span></span>
  241. <span class="token selector">.dots-wrapper</span>
  242. <span class="token property-declaration"><span class="token property">position</span> absolute</span>
  243. <span class="token property-declaration"><span class="token property">bottom</span> <span class="token number">4</span><span class="token unit">px</span></span>
  244. <span class="token property-declaration"><span class="token property">left</span> <span class="token number">50</span><span class="token unit">%</span></span>
  245. <span class="token property-declaration"><span class="token property">transform</span> <span class="token func"><span class="token function">translateX</span><span class="token punctuation">(</span><span class="token number">-50</span><span class="token unit">%</span><span class="token punctuation">)</span></span></span>
  246. <span class="token selector">.dot</span>
  247. <span class="token property-declaration"><span class="token property">display</span> inline-block</span>
  248. <span class="token property-declaration"><span class="token property">margin</span> <span class="token number">0</span> <span class="token number">4</span><span class="token unit">px</span></span>
  249. <span class="token property-declaration"><span class="token property">width</span> <span class="token number">8</span><span class="token unit">px</span></span>
  250. <span class="token property-declaration"><span class="token property">height</span> <span class="token number">8</span><span class="token unit">px</span></span>
  251. <span class="token property-declaration"><span class="token property">border-radius</span> <span class="token number">50</span><span class="token unit">%</span></span>
  252. <span class="token property-declaration"><span class="token property">background</span> <span class="token hexcode">#eee</span></span>
  253. <span class="token selector">&amp;.active</span>
  254. <span class="token property-declaration"><span class="token property">width</span> <span class="token number">20</span><span class="token unit">px</span></span>
  255. <span class="token property-declaration"><span class="token property">border-radius</span> <span class="token number">5</span><span class="token unit">px</span></span>
  256. &lt;/style&gt;</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></li> <li><p><strong>VerticalSlide Demo</strong></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> <!----> <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">&lt;</span>template</span><span class="token punctuation">&gt;</span></span>
  257. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</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">&quot;</span>mouse-wheel-slide-vertical<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>
  258. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</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">&quot;</span>slide-container<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>
  259. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</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">&quot;</span>slide-wrapper<span class="token punctuation">&quot;</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">&quot;</span>slide<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>
  260. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</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">&quot;</span>slide-content<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>
  261. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</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">&quot;</span>slide-page page1<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>page 1<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
  262. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</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">&quot;</span>slide-page page2<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>page 2<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
  263. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</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">&quot;</span>slide-page page3<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>page 3<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
  264. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</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">&quot;</span>slide-page page4<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>page 4<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
  265. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
  266. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
  267. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</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">&quot;</span>dots-wrapper<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>
  268. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>span</span>
  269. <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>dot<span class="token punctuation">&quot;</span></span>
  270. <span class="token attr-name">v-for</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>(item, index) in 4<span class="token punctuation">&quot;</span></span>
  271. <span class="token attr-name">:key</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>index<span class="token punctuation">&quot;</span></span>
  272. <span class="token attr-name">:class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>{'active': currentPageIndex === index}<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>span</span><span class="token punctuation">&gt;</span></span>
  273. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
  274. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
  275. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
  276. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>template</span><span class="token punctuation">&gt;</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">&lt;</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">&quot;</span>text/ecmascript-6<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span><span class="token script"><span class="token language-javascript">
  277. <span class="token keyword">import</span> BScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
  278. <span class="token keyword">import</span> Slide <span class="token keyword">from</span> <span class="token string">'@better-scroll/slide'</span>
  279. <span class="token keyword">import</span> MouseWheel <span class="token keyword">from</span> <span class="token string">'@better-scroll/mouse-wheel'</span>
  280. BScroll<span class="token punctuation">.</span><span class="token function">use</span><span class="token punctuation">(</span>MouseWheel<span class="token punctuation">)</span>
  281. BScroll<span class="token punctuation">.</span><span class="token function">use</span><span class="token punctuation">(</span>Slide<span class="token punctuation">)</span>
  282. <span class="token keyword">export</span> <span class="token keyword">default</span> <span class="token punctuation">{</span>
  283. <span class="token function">data</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
  284. <span class="token keyword">return</span> <span class="token punctuation">{</span>
  285. <span class="token literal-property property">currentPageIndex</span><span class="token operator">:</span> <span class="token number">0</span>
  286. <span class="token punctuation">}</span>
  287. <span class="token punctuation">}</span><span class="token punctuation">,</span>
  288. <span class="token function">mounted</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
  289. <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>
  290. <span class="token punctuation">}</span><span class="token punctuation">,</span>
  291. <span class="token function">beforeDestroy</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
  292. <span class="token keyword">this</span><span class="token punctuation">.</span>slide<span class="token punctuation">.</span><span class="token function">destroy</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
  293. <span class="token punctuation">}</span><span class="token punctuation">,</span>
  294. <span class="token literal-property property">methods</span><span class="token operator">:</span> <span class="token punctuation">{</span>
  295. <span class="token function">init</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
  296. <span class="token keyword">this</span><span class="token punctuation">.</span>slide <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>slide<span class="token punctuation">,</span> <span class="token punctuation">{</span>
  297. <span class="token literal-property property">scrollX</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
  298. <span class="token literal-property property">scrollY</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
  299. <span class="token literal-property property">slide</span><span class="token operator">:</span> <span class="token punctuation">{</span>
  300. <span class="token literal-property property">loop</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
  301. <span class="token literal-property property">threshold</span><span class="token operator">:</span> <span class="token number">100</span>
  302. <span class="token punctuation">}</span><span class="token punctuation">,</span>
  303. <span class="token literal-property property">mouseWheel</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
  304. <span class="token literal-property property">momentum</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
  305. <span class="token literal-property property">bounce</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
  306. <span class="token literal-property property">stopPropagation</span><span class="token operator">:</span> <span class="token boolean">true</span>
  307. <span class="token punctuation">}</span><span class="token punctuation">)</span>
  308. <span class="token keyword">this</span><span class="token punctuation">.</span>slide<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 keyword">this</span><span class="token punctuation">.</span>_onScrollEnd<span class="token punctuation">)</span>
  309. <span class="token punctuation">}</span><span class="token punctuation">,</span>
  310. <span class="token function">_onScrollEnd</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
  311. <span class="token keyword">let</span> pageIndex <span class="token operator">=</span> <span class="token keyword">this</span><span class="token punctuation">.</span>slide<span class="token punctuation">.</span><span class="token function">getCurrentPage</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span>pageY
  312. <span class="token keyword">this</span><span class="token punctuation">.</span>currentPageIndex <span class="token operator">=</span> pageIndex
  313. <span class="token punctuation">}</span>
  314. <span class="token punctuation">}</span>
  315. <span class="token punctuation">}</span>
  316. </span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>script</span><span class="token punctuation">&gt;</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>&lt;style lang=<span class="token string">&quot;stylus&quot;</span> rel=<span class="token string">&quot;stylesheet/stylus&quot;</span>&gt;
  317. <span class="token selector">.mouse-wheel-slide-vertical</span>
  318. <span class="token property-declaration"><span class="token property">height</span> <span class="token number">100</span><span class="token unit">%</span></span>
  319. <span class="token selector">&amp;.view</span>
  320. <span class="token property-declaration"><span class="token property">padding</span> <span class="token number">0</span></span>
  321. <span class="token property-declaration"><span class="token property">height</span> <span class="token number">100</span><span class="token unit">%</span></span>
  322. <span class="token selector">.slide-container</span>
  323. <span class="token property-declaration"><span class="token property">position</span> relative</span>
  324. <span class="token property-declaration"><span class="token property">height</span> <span class="token number">100</span><span class="token unit">%</span></span>
  325. <span class="token property-declaration"><span class="token property">font-size</span> <span class="token number">0</span></span>
  326. <span class="token selector">.slide-wrapper</span>
  327. <span class="token property-declaration"><span class="token property">height</span> <span class="token number">100</span><span class="token unit">%</span></span>
  328. <span class="token property-declaration"><span class="token property">overflow</span> hidden</span>
  329. <span class="token selector">.slide-page</span>
  330. <span class="token property-declaration"><span class="token property">display</span> inline-block</span>
  331. <span class="token property-declaration"><span class="token property">width</span> <span class="token number">100</span><span class="token unit">%</span></span>
  332. <span class="token property-declaration"><span class="token property">line-height</span> <span class="token number">200</span><span class="token unit">px</span></span>
  333. <span class="token property-declaration"><span class="token property">text-align</span> center</span>
  334. <span class="token property-declaration"><span class="token property">font-size</span> <span class="token number">26</span><span class="token unit">px</span></span>
  335. <span class="token property-declaration"><span class="token property">transform</span> <span class="token func"><span class="token function">translate3d</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">)</span></span></span>
  336. <span class="token property-declaration"><span class="token property">backface-visibility</span> hidden</span>
  337. <span class="token selector">&amp;.page1</span>
  338. <span class="token property-declaration"><span class="token property">background-color</span> <span class="token hexcode">#D6EADF</span></span>
  339. <span class="token selector">&amp;.page2</span>
  340. <span class="token property-declaration"><span class="token property">background-color</span> <span class="token hexcode">#DDA789</span></span>
  341. <span class="token selector">&amp;.page3</span>
  342. <span class="token property-declaration"><span class="token property">background-color</span> <span class="token hexcode">#C3D899</span></span>
  343. <span class="token selector">&amp;.page4</span>
  344. <span class="token property-declaration"><span class="token property">background-color</span> <span class="token hexcode">#F2D4A7</span></span>
  345. <span class="token selector">.dots-wrapper</span>
  346. <span class="token property-declaration"><span class="token property">position</span> absolute</span>
  347. <span class="token property-declaration"><span class="token property">right</span> <span class="token number">4</span><span class="token unit">px</span></span>
  348. <span class="token property-declaration"><span class="token property">top</span> <span class="token number">50</span><span class="token unit">%</span></span>
  349. <span class="token property-declaration"><span class="token property">transform</span> <span class="token func"><span class="token function">translateY</span><span class="token punctuation">(</span><span class="token number">-50</span><span class="token unit">%</span><span class="token punctuation">)</span></span></span>
  350. <span class="token selector">.dot</span>
  351. <span class="token property-declaration"><span class="token property">display</span> block</span>
  352. <span class="token property-declaration"><span class="token property">margin</span> <span class="token number">4</span><span class="token unit">px</span> <span class="token number">0</span></span>
  353. <span class="token property-declaration"><span class="token property">width</span> <span class="token number">8</span><span class="token unit">px</span></span>
  354. <span class="token property-declaration"><span class="token property">height</span> <span class="token number">8</span><span class="token unit">px</span></span>
  355. <span class="token property-declaration"><span class="token property">border-radius</span> <span class="token number">50</span><span class="token unit">%</span></span>
  356. <span class="token property-declaration"><span class="token property">background</span> <span class="token hexcode">#eee</span></span>
  357. <span class="token selector">&amp;.active</span>
  358. <span class="token property-declaration"><span class="token property">height</span> <span class="token number">20</span><span class="token unit">px</span></span>
  359. <span class="token property-declaration"><span class="token property">border-radius</span> <span class="token number">5</span><span class="token unit">px</span></span>
  360. &lt;/style&gt;</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></li></ul></li> <li><p><strong>mouseWheel &amp; pullup</strong></p> <p>use mousewheel do <a href="/docs/en-US/plugins/pullup.html">pullup</a> operation.</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> <!----> <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">&lt;</span>template</span><span class="token punctuation">&gt;</span></span>
  361. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</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">&quot;</span>mouse-wheel-pullup<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>
  362. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>div</span> <span class="token attr-name">ref</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>scroll<span class="token punctuation">&quot;</span></span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>pullup-wrapper<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>
  363. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</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">&quot;</span>pullup-content<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>
  364. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>ul</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>pullup-list<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>
  365. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>li</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">&quot;</span>i of data<span class="token punctuation">&quot;</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">&quot;</span>i<span class="token punctuation">&quot;</span></span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>pullup-list-item<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>
  366. {{ i % 5 === 0 ? 'use your mousewheel please 👆🏻' : `I am item ${i} `}}
  367. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>li</span><span class="token punctuation">&gt;</span></span>
  368. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>ul</span><span class="token punctuation">&gt;</span></span>
  369. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</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">&quot;</span>pullup-tips<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>
  370. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>div</span> <span class="token attr-name">v-if</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>!isPullUpLoad<span class="token punctuation">&quot;</span></span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>before-trigger<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>
  371. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>span</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>pullup-txt<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>mousewheel trigger pullingup and load more<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>span</span><span class="token punctuation">&gt;</span></span>
  372. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
  373. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>div</span> <span class="token attr-name">v-else</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>after-trigger<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>
  374. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>span</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>pullup-txt<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>Loading...<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>span</span><span class="token punctuation">&gt;</span></span>
  375. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
  376. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
  377. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
  378. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
  379. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
  380. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>template</span><span class="token punctuation">&gt;</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">&lt;</span>script</span><span class="token punctuation">&gt;</span></span><span class="token script"><span class="token language-javascript">
  381. <span class="token keyword">import</span> BScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
  382. <span class="token keyword">import</span> Pullup <span class="token keyword">from</span> <span class="token string">'@better-scroll/pull-up'</span>
  383. <span class="token keyword">import</span> MouseWheel <span class="token keyword">from</span> <span class="token string">'@better-scroll/mouse-wheel'</span>
  384. BScroll<span class="token punctuation">.</span><span class="token function">use</span><span class="token punctuation">(</span>Pullup<span class="token punctuation">)</span>
  385. BScroll<span class="token punctuation">.</span><span class="token function">use</span><span class="token punctuation">(</span>MouseWheel<span class="token punctuation">)</span>
  386. <span class="token keyword">export</span> <span class="token keyword">default</span> <span class="token punctuation">{</span>
  387. <span class="token function">data</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
  388. <span class="token keyword">return</span> <span class="token punctuation">{</span>
  389. <span class="token literal-property property">isPullUpLoad</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
  390. <span class="token literal-property property">data</span><span class="token operator">:</span> <span class="token number">30</span>
  391. <span class="token punctuation">}</span>
  392. <span class="token punctuation">}</span><span class="token punctuation">,</span>
  393. <span class="token function">mounted</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
  394. <span class="token keyword">this</span><span class="token punctuation">.</span><span class="token function">initBscroll</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
  395. <span class="token punctuation">}</span><span class="token punctuation">,</span>
  396. <span class="token literal-property property">methods</span><span class="token operator">:</span> <span class="token punctuation">{</span>
  397. <span class="token function">initBscroll</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
  398. <span class="token keyword">this</span><span class="token punctuation">.</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 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>
  399. <span class="token literal-property property">probeType</span><span class="token operator">:</span> <span class="token number">3</span><span class="token punctuation">,</span>
  400. <span class="token literal-property property">pullUpLoad</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
  401. <span class="token literal-property property">mouseWheel</span><span class="token operator">:</span> <span class="token boolean">true</span>
  402. <span class="token punctuation">}</span><span class="token punctuation">)</span>
  403. <span class="token keyword">this</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">'pullingUp'</span><span class="token punctuation">,</span> <span class="token keyword">this</span><span class="token punctuation">.</span>pullingUpHandler<span class="token punctuation">)</span>
  404. <span class="token punctuation">}</span><span class="token punctuation">,</span>
  405. <span class="token keyword">async</span> <span class="token function">pullingUpHandler</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
  406. <span class="token keyword">this</span><span class="token punctuation">.</span>isPullUpLoad <span class="token operator">=</span> <span class="token boolean">true</span>
  407. <span class="token keyword">await</span> <span class="token keyword">this</span><span class="token punctuation">.</span><span class="token function">requestData</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
  408. <span class="token keyword">this</span><span class="token punctuation">.</span>scroll<span class="token punctuation">.</span><span class="token function">finishPullUp</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
  409. <span class="token keyword">this</span><span class="token punctuation">.</span>scroll<span class="token punctuation">.</span><span class="token function">refresh</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
  410. <span class="token keyword">this</span><span class="token punctuation">.</span>isPullUpLoad <span class="token operator">=</span> <span class="token boolean">false</span>
  411. <span class="token punctuation">}</span><span class="token punctuation">,</span>
  412. <span class="token keyword">async</span> <span class="token function">requestData</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
  413. <span class="token keyword">try</span> <span class="token punctuation">{</span>
  414. <span class="token keyword">const</span> newData <span class="token operator">=</span> <span class="token keyword">await</span> <span class="token keyword">this</span><span class="token punctuation">.</span><span class="token function">ajaxGet</span><span class="token punctuation">(</span><span class="token comment">/* url */</span><span class="token punctuation">)</span>
  415. <span class="token keyword">this</span><span class="token punctuation">.</span>data <span class="token operator">+=</span> newData
  416. <span class="token punctuation">}</span> <span class="token keyword">catch</span> <span class="token punctuation">(</span>err<span class="token punctuation">)</span> <span class="token punctuation">{</span>
  417. <span class="token comment">// handle err</span>
  418. console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>err<span class="token punctuation">)</span>
  419. <span class="token punctuation">}</span>
  420. <span class="token punctuation">}</span><span class="token punctuation">,</span>
  421. <span class="token function">ajaxGet</span><span class="token punctuation">(</span><span class="token comment">/* url */</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
  422. <span class="token keyword">return</span> <span class="token keyword">new</span> <span class="token class-name">Promise</span><span class="token punctuation">(</span><span class="token parameter">resolve</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
  423. <span class="token function">setTimeout</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
  424. <span class="token function">resolve</span><span class="token punctuation">(</span><span class="token number">20</span><span class="token punctuation">)</span>
  425. <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token number">1000</span><span class="token punctuation">)</span>
  426. <span class="token punctuation">}</span><span class="token punctuation">)</span>
  427. <span class="token punctuation">}</span>
  428. <span class="token punctuation">}</span>
  429. <span class="token punctuation">}</span>
  430. </span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>script</span><span class="token punctuation">&gt;</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><span class="token selector">&lt;style lang=&quot;stylus&quot; scoped&gt;
  431. .mouse-wheel-pullup</span>
  432. <span class="token property-declaration"><span class="token property">height</span><span class="token punctuation">:</span> <span class="token number">100</span><span class="token unit">%</span></span>
  433. <span class="token selector">.pullup-wrapper</span>
  434. <span class="token property-declaration"><span class="token property">height</span><span class="token punctuation">:</span> <span class="token number">100</span><span class="token unit">%</span></span>
  435. <span class="token property-declaration"><span class="token property">padding</span><span class="token punctuation">:</span> <span class="token number">0</span> <span class="token number">10</span><span class="token unit">px</span></span>
  436. <span class="token property-declaration"><span class="token property">border</span><span class="token punctuation">:</span> <span class="token number">1</span><span class="token unit">px</span> solid <span class="token hexcode">#ccc</span></span>
  437. <span class="token property-declaration"><span class="token property">overflow</span><span class="token punctuation">:</span> hidden</span>
  438. <span class="token selector">.pullup-list</span>
  439. <span class="token property-declaration"><span class="token property">padding</span><span class="token punctuation">:</span> <span class="token number">0</span></span>
  440. <span class="token selector">.pullup-list-item</span>
  441. <span class="token property-declaration"><span class="token property">padding</span><span class="token punctuation">:</span> <span class="token number">10</span><span class="token unit">px</span> <span class="token number">0</span></span>
  442. <span class="token property-declaration"><span class="token property">list-style</span><span class="token punctuation">:</span> none</span>
  443. <span class="token property-declaration"><span class="token property">border-bottom</span><span class="token punctuation">:</span> <span class="token number">1</span><span class="token unit">px</span> solid <span class="token hexcode">#ccc</span></span>
  444. <span class="token selector">.pullup-tips</span>
  445. <span class="token property-declaration"><span class="token property">padding</span><span class="token punctuation">:</span> <span class="token number">20</span><span class="token unit">px</span></span>
  446. <span class="token property-declaration"><span class="token property">text-align</span><span class="token punctuation">:</span> center</span>
  447. <span class="token property-declaration"><span class="token property">color</span><span class="token punctuation">:</span> <span class="token hexcode">#999</span></span>
  448. &lt;/style&gt;</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></li> <li><p><strong>mouseWheel &amp; pulldown</strong></p> <p>use mousewheel do <a href="/docs/en-US/plugins/pulldown.html">pulldown</a> operation.</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> <!----> <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">&lt;</span>template</span><span class="token punctuation">&gt;</span></span>
  449. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</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">&quot;</span>mouse-wheel-pulldown<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>
  450. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>div</span> <span class="token attr-name">ref</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>scroll<span class="token punctuation">&quot;</span></span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>pulldown-wrapper<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>
  451. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</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">&quot;</span>pulldown-content<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>
  452. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</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">&quot;</span>pulldown-tips<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>
  453. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>div</span> <span class="token attr-name">v-show</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>beforePullDown<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>
  454. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>span</span><span class="token punctuation">&gt;</span></span>Pull Down and refresh<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>span</span><span class="token punctuation">&gt;</span></span>
  455. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
  456. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>div</span> <span class="token attr-name">v-show</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>!beforePullDown<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>
  457. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>div</span> <span class="token attr-name">v-show</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>isPullingDown<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>
  458. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>span</span><span class="token punctuation">&gt;</span></span>Loading...<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>span</span><span class="token punctuation">&gt;</span></span>
  459. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
  460. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>div</span> <span class="token attr-name">v-show</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>!isPullingDown<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>span</span><span class="token punctuation">&gt;</span></span>Refresh success<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>span</span><span class="token punctuation">&gt;</span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
  461. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
  462. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
  463. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>ul</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>pulldown-list<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>
  464. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>li</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">&quot;</span>i of dataList<span class="token punctuation">&quot;</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">&quot;</span>i<span class="token punctuation">&quot;</span></span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>pulldown-list-item<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>
  465. {{ `I am item ${i} ` }}
  466. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>li</span><span class="token punctuation">&gt;</span></span>
  467. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>ul</span><span class="token punctuation">&gt;</span></span>
  468. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
  469. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
  470. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
  471. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>template</span><span class="token punctuation">&gt;</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">&lt;</span>script</span><span class="token punctuation">&gt;</span></span><span class="token script"><span class="token language-javascript">
  472. <span class="token keyword">import</span> BScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
  473. <span class="token keyword">import</span> PullDown <span class="token keyword">from</span> <span class="token string">'@better-scroll/pull-down'</span>
  474. <span class="token keyword">import</span> MouseWheel <span class="token keyword">from</span> <span class="token string">'@better-scroll/mouse-wheel'</span>
  475. BScroll<span class="token punctuation">.</span><span class="token function">use</span><span class="token punctuation">(</span>PullDown<span class="token punctuation">)</span>
  476. BScroll<span class="token punctuation">.</span><span class="token function">use</span><span class="token punctuation">(</span>MouseWheel<span class="token punctuation">)</span>
  477. <span class="token keyword">function</span> <span class="token function">generateData</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
  478. <span class="token keyword">const</span> <span class="token constant">BASE</span> <span class="token operator">=</span> <span class="token number">30</span>
  479. <span class="token keyword">const</span> begin <span class="token operator">=</span> <span class="token constant">BASE</span> <span class="token operator">*</span> <span class="token constant">STEP</span>
  480. <span class="token keyword">const</span> end <span class="token operator">=</span> <span class="token constant">BASE</span> <span class="token operator">*</span> <span class="token punctuation">(</span><span class="token constant">STEP</span> <span class="token operator">+</span> <span class="token number">1</span><span class="token punctuation">)</span>
  481. <span class="token keyword">let</span> ret <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token punctuation">]</span>
  482. <span class="token keyword">for</span><span class="token punctuation">(</span><span class="token keyword">let</span> i <span class="token operator">=</span> end<span class="token punctuation">;</span> i <span class="token operator">&gt;</span> begin<span class="token punctuation">;</span> i<span class="token operator">--</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
  483. ret<span class="token punctuation">.</span><span class="token function">push</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span>
  484. <span class="token punctuation">}</span>
  485. <span class="token keyword">return</span> ret
  486. <span class="token punctuation">}</span>
  487. <span class="token keyword">const</span> <span class="token constant">TIME_BOUNCE</span> <span class="token operator">=</span> <span class="token number">800</span>
  488. <span class="token keyword">const</span> <span class="token constant">TIME_STOP</span> <span class="token operator">=</span> <span class="token number">600</span>
  489. <span class="token keyword">const</span> <span class="token constant">REQUEST_TIME</span> <span class="token operator">=</span> <span class="token number">1000</span>
  490. <span class="token keyword">const</span> <span class="token constant">THRESHOLD</span> <span class="token operator">=</span> <span class="token number">70</span>
  491. <span class="token keyword">const</span> <span class="token constant">STOP</span> <span class="token operator">=</span> <span class="token number">56</span>
  492. <span class="token keyword">let</span> <span class="token constant">STEP</span> <span class="token operator">=</span> <span class="token number">0</span>
  493. <span class="token keyword">export</span> <span class="token keyword">default</span> <span class="token punctuation">{</span>
  494. <span class="token function">data</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
  495. <span class="token keyword">return</span> <span class="token punctuation">{</span>
  496. <span class="token literal-property property">beforePullDown</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
  497. <span class="token literal-property property">isPullingDown</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
  498. <span class="token literal-property property">dataList</span><span class="token operator">:</span> <span class="token function">generateData</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
  499. <span class="token punctuation">}</span>
  500. <span class="token punctuation">}</span><span class="token punctuation">,</span>
  501. <span class="token function">mounted</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
  502. <span class="token keyword">this</span><span class="token punctuation">.</span><span class="token function">initBscroll</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
  503. <span class="token punctuation">}</span><span class="token punctuation">,</span>
  504. <span class="token literal-property property">methods</span><span class="token operator">:</span> <span class="token punctuation">{</span>
  505. <span class="token function">initBscroll</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
  506. <span class="token keyword">this</span><span class="token punctuation">.</span>bscroll <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>
  507. <span class="token literal-property property">scrollY</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
  508. <span class="token literal-property property">bounceTime</span><span class="token operator">:</span> <span class="token constant">TIME_BOUNCE</span><span class="token punctuation">,</span>
  509. <span class="token literal-property property">mouseWheel</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
  510. <span class="token literal-property property">pullDownRefresh</span><span class="token operator">:</span> <span class="token punctuation">{</span>
  511. <span class="token literal-property property">threshold</span><span class="token operator">:</span> <span class="token constant">THRESHOLD</span><span class="token punctuation">,</span>
  512. <span class="token literal-property property">stop</span><span class="token operator">:</span> <span class="token constant">STOP</span>
  513. <span class="token punctuation">}</span>
  514. <span class="token punctuation">}</span><span class="token punctuation">)</span>
  515. <span class="token keyword">this</span><span class="token punctuation">.</span>bscroll<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 keyword">this</span><span class="token punctuation">.</span>pullingDownHandler<span class="token punctuation">)</span>
  516. <span class="token keyword">this</span><span class="token punctuation">.</span>bscroll<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 keyword">this</span><span class="token punctuation">.</span>scrollHandler<span class="token punctuation">)</span>
  517. <span class="token keyword">this</span><span class="token punctuation">.</span>bscroll<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 parameter">e</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
  518. console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">'scrollEnd'</span><span class="token punctuation">)</span>
  519. <span class="token punctuation">}</span><span class="token punctuation">)</span>
  520. <span class="token punctuation">}</span><span class="token punctuation">,</span>
  521. <span class="token function">scrollHandler</span><span class="token punctuation">(</span><span class="token parameter">pos</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
  522. console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>pos<span class="token punctuation">.</span>y<span class="token punctuation">)</span>
  523. <span class="token punctuation">}</span><span class="token punctuation">,</span>
  524. <span class="token keyword">async</span> <span class="token function">pullingDownHandler</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
  525. console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">'trigger pullDown'</span><span class="token punctuation">)</span>
  526. <span class="token keyword">this</span><span class="token punctuation">.</span>beforePullDown <span class="token operator">=</span> <span class="token boolean">false</span>
  527. <span class="token keyword">this</span><span class="token punctuation">.</span>isPullingDown <span class="token operator">=</span> <span class="token boolean">true</span>
  528. <span class="token constant">STEP</span> <span class="token operator">+=</span> <span class="token number">1</span>
  529. <span class="token keyword">await</span> <span class="token keyword">this</span><span class="token punctuation">.</span><span class="token function">requestData</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
  530. <span class="token keyword">this</span><span class="token punctuation">.</span>isPullingDown <span class="token operator">=</span> <span class="token boolean">false</span>
  531. <span class="token keyword">this</span><span class="token punctuation">.</span><span class="token function">finishPullDown</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
  532. <span class="token punctuation">}</span><span class="token punctuation">,</span>
  533. <span class="token keyword">async</span> <span class="token function">finishPullDown</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
  534. <span class="token keyword">const</span> stopTime <span class="token operator">=</span> <span class="token constant">TIME_STOP</span>
  535. <span class="token keyword">await</span> <span class="token keyword">new</span> <span class="token class-name">Promise</span><span class="token punctuation">(</span><span class="token parameter">resolve</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
  536. <span class="token function">setTimeout</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
  537. <span class="token keyword">this</span><span class="token punctuation">.</span>bscroll<span class="token punctuation">.</span><span class="token function">finishPullDown</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
  538. <span class="token function">resolve</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
  539. <span class="token punctuation">}</span><span class="token punctuation">,</span> stopTime<span class="token punctuation">)</span>
  540. <span class="token punctuation">}</span><span class="token punctuation">)</span>
  541. <span class="token function">setTimeout</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
  542. <span class="token keyword">this</span><span class="token punctuation">.</span>beforePullDown <span class="token operator">=</span> <span class="token boolean">true</span>
  543. <span class="token keyword">this</span><span class="token punctuation">.</span>bscroll<span class="token punctuation">.</span><span class="token function">refresh</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
  544. <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token constant">TIME_BOUNCE</span><span class="token punctuation">)</span>
  545. <span class="token punctuation">}</span><span class="token punctuation">,</span>
  546. <span class="token keyword">async</span> <span class="token function">requestData</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
  547. <span class="token keyword">try</span> <span class="token punctuation">{</span>
  548. <span class="token keyword">const</span> newData <span class="token operator">=</span> <span class="token keyword">await</span> <span class="token keyword">this</span><span class="token punctuation">.</span><span class="token function">ajaxGet</span><span class="token punctuation">(</span><span class="token comment">/* url */</span><span class="token punctuation">)</span>
  549. <span class="token keyword">this</span><span class="token punctuation">.</span>dataList <span class="token operator">=</span> newData<span class="token punctuation">.</span><span class="token function">concat</span><span class="token punctuation">(</span><span class="token keyword">this</span><span class="token punctuation">.</span>dataList<span class="token punctuation">)</span>
  550. <span class="token punctuation">}</span> <span class="token keyword">catch</span> <span class="token punctuation">(</span>err<span class="token punctuation">)</span> <span class="token punctuation">{</span>
  551. <span class="token comment">// handle err</span>
  552. console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>err<span class="token punctuation">)</span>
  553. <span class="token punctuation">}</span>
  554. <span class="token punctuation">}</span><span class="token punctuation">,</span>
  555. <span class="token function">ajaxGet</span><span class="token punctuation">(</span><span class="token comment">/* url */</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
  556. <span class="token keyword">return</span> <span class="token keyword">new</span> <span class="token class-name">Promise</span><span class="token punctuation">(</span><span class="token parameter">resolve</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
  557. <span class="token function">setTimeout</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
  558. <span class="token keyword">const</span> dataList <span class="token operator">=</span> <span class="token function">generateData</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
  559. <span class="token function">resolve</span><span class="token punctuation">(</span>dataList<span class="token punctuation">)</span>
  560. <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token constant">REQUEST_TIME</span><span class="token punctuation">)</span>
  561. <span class="token punctuation">}</span><span class="token punctuation">)</span>
  562. <span class="token punctuation">}</span>
  563. <span class="token punctuation">}</span>
  564. <span class="token punctuation">}</span>
  565. </span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>script</span><span class="token punctuation">&gt;</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><span class="token selector">&lt;style lang=&quot;stylus&quot; scoped&gt;
  566. .mouse-wheel-pulldown</span>
  567. <span class="token property-declaration"><span class="token property">height</span><span class="token punctuation">:</span> <span class="token number">100</span><span class="token unit">%</span></span>
  568. <span class="token selector">.pulldown-wrapper</span>
  569. <span class="token property-declaration"><span class="token property">position</span><span class="token punctuation">:</span> relative</span>
  570. <span class="token property-declaration"><span class="token property">height</span><span class="token punctuation">:</span> <span class="token number">100</span><span class="token unit">%</span></span>
  571. <span class="token property-declaration"><span class="token property">padding</span><span class="token punctuation">:</span> <span class="token number">0</span> <span class="token number">10</span><span class="token unit">px</span></span>
  572. <span class="token property-declaration"><span class="token property">border</span><span class="token punctuation">:</span> <span class="token number">1</span><span class="token unit">px</span> solid <span class="token hexcode">#ccc</span></span>
  573. <span class="token property-declaration"><span class="token property">overflow</span><span class="token punctuation">:</span> hidden</span>
  574. <span class="token selector">.pulldown-list</span>
  575. <span class="token property-declaration"><span class="token property">padding</span><span class="token punctuation">:</span> <span class="token number">0</span></span>
  576. <span class="token selector">.pulldown-list-item</span>
  577. <span class="token property-declaration"><span class="token property">padding</span><span class="token punctuation">:</span> <span class="token number">10</span><span class="token unit">px</span> <span class="token number">0</span></span>
  578. <span class="token property-declaration"><span class="token property">list-style</span><span class="token punctuation">:</span> none</span>
  579. <span class="token property-declaration"><span class="token property">border-bottom</span><span class="token punctuation">:</span> <span class="token number">1</span><span class="token unit">px</span> solid <span class="token hexcode">#ccc</span></span>
  580. <span class="token selector">.pulldown-tips</span>
  581. <span class="token property-declaration"><span class="token property">position</span><span class="token punctuation">:</span> absolute</span>
  582. <span class="token property-declaration"><span class="token property">width</span><span class="token punctuation">:</span> <span class="token number">100</span><span class="token unit">%</span></span>
  583. <span class="token property-declaration"><span class="token property">padding</span><span class="token punctuation">:</span> <span class="token number">20</span><span class="token unit">px</span></span>
  584. <span class="token property-declaration"><span class="token property">box-sizing</span><span class="token punctuation">:</span> border-box</span>
  585. <span class="token property-declaration"><span class="token property">transform</span><span class="token punctuation">:</span> <span class="token func"><span class="token function">translateY</span><span class="token punctuation">(</span><span class="token number">-100</span><span class="token unit">%</span><span class="token punctuation">)</span> <span class="token func"><span class="token function">translateZ</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">)</span></span></span></span>
  586. <span class="token property-declaration"><span class="token property">text-align</span><span class="token punctuation">:</span> center</span>
  587. <span class="token property-declaration"><span class="token property">color</span><span class="token punctuation">:</span> <span class="token hexcode">#999</span></span>
  588. &lt;/style&gt;</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></li> <li><p><strong>mouseWheel &amp; wheel</strong></p> <p>use mousewheel do <a href="/docs/en-US/plugins/wheel.html">wheel</a> operation.</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> <!----> <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">&lt;</span>template</span><span class="token punctuation">&gt;</span></span>
  589. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</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">&quot;</span>mouse-wheel-picker<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>
  590. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>ul</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>example-list<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>
  591. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>li</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>example-item<span class="token punctuation">&quot;</span></span> <span class="token attr-name">@click</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>show<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>
  592. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>span</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>open<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>{{selectedText}}<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>span</span><span class="token punctuation">&gt;</span></span>
  593. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>li</span><span class="token punctuation">&gt;</span></span>
  594. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>ul</span><span class="token punctuation">&gt;</span></span>
  595. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>transition</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>picker-fade<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>
  596. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</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">&quot;</span>picker<span class="token punctuation">&quot;</span></span> <span class="token attr-name">v-show</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>state===1<span class="token punctuation">&quot;</span></span> <span class="token attr-name">@touchmove.prevent</span> <span class="token attr-name">@click</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>_cancel<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>
  597. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>transition</span> <span class="token attr-name">name</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>picker-move<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>
  598. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</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">&quot;</span>picker-panel<span class="token punctuation">&quot;</span></span> <span class="token attr-name">v-show</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>state===1<span class="token punctuation">&quot;</span></span> <span class="token attr-name">@click.stop</span><span class="token punctuation">&gt;</span></span>
  599. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</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">&quot;</span>picker-choose border-bottom-1px<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>
  600. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>span</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>cancel<span class="token punctuation">&quot;</span></span> <span class="token attr-name">@click</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>_cancel<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>Cancel<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>span</span><span class="token punctuation">&gt;</span></span>
  601. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>span</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>confirm<span class="token punctuation">&quot;</span></span> <span class="token attr-name">@click</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>_confirm<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>Confirm<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>span</span><span class="token punctuation">&gt;</span></span>
  602. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>h1</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>picker-title<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>Title<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>h1</span><span class="token punctuation">&gt;</span></span>
  603. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
  604. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</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">&quot;</span>picker-content<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>
  605. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</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">&quot;</span>mask-top border-bottom-1px<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
  606. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</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">&quot;</span>mask-bottom border-top-1px<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
  607. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</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">&quot;</span>wheel-wrapper<span class="token punctuation">&quot;</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">&quot;</span>wheelWrapper<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>
  608. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</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">&quot;</span>wheel<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>
  609. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>ul</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>wheel-scroll<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>
  610. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>li</span>
  611. <span class="token attr-name">v-for</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>(item, index) in pickerData<span class="token punctuation">&quot;</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">&quot;</span>index<span class="token punctuation">&quot;</span></span>
  612. <span class="token attr-name">:class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>{'wheel-disabled-item':item.disabled}<span class="token punctuation">&quot;</span></span>
  613. <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span>wheel-item<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>{{item.text}}<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>li</span><span class="token punctuation">&gt;</span></span>
  614. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>ul</span><span class="token punctuation">&gt;</span></span>
  615. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
  616. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
  617. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
  618. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</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">&quot;</span>picker-footer<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
  619. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
  620. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>transition</span><span class="token punctuation">&gt;</span></span>
  621. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
  622. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>transition</span><span class="token punctuation">&gt;</span></span>
  623. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>div</span><span class="token punctuation">&gt;</span></span>
  624. <span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>template</span><span class="token punctuation">&gt;</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">&lt;</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">&quot;</span>text/ecmascript-6<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span><span class="token script"><span class="token language-javascript">
  625. <span class="token keyword">import</span> BScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
  626. <span class="token keyword">import</span> Wheel <span class="token keyword">from</span> <span class="token string">'@better-scroll/wheel'</span>
  627. <span class="token keyword">import</span> MouseWheel <span class="token keyword">from</span> <span class="token string">'@better-scroll/mouse-wheel'</span>
  628. BScroll<span class="token punctuation">.</span><span class="token function">use</span><span class="token punctuation">(</span>Wheel<span class="token punctuation">)</span>
  629. BScroll<span class="token punctuation">.</span><span class="token function">use</span><span class="token punctuation">(</span>MouseWheel<span class="token punctuation">)</span>
  630. <span class="token keyword">const</span> <span class="token constant">STATE_HIDE</span> <span class="token operator">=</span> <span class="token number">0</span>
  631. <span class="token keyword">const</span> <span class="token constant">STATE_SHOW</span> <span class="token operator">=</span> <span class="token number">1</span>
  632. <span class="token keyword">const</span> <span class="token constant">COMPONENT_NAME</span> <span class="token operator">=</span> <span class="token string">'picker'</span>
  633. <span class="token keyword">const</span> <span class="token constant">EVENT_SELECT</span> <span class="token operator">=</span> <span class="token string">'select'</span>
  634. <span class="token keyword">const</span> <span class="token constant">EVENT_CANCEL</span> <span class="token operator">=</span> <span class="token string">'cancel'</span>
  635. <span class="token keyword">const</span> <span class="token constant">EVENT_CHANGE</span> <span class="token operator">=</span> <span class="token string">'change'</span>
  636. <span class="token keyword">const</span> <span class="token constant">DATA</span> <span class="token operator">=</span> <span class="token punctuation">[</span>
  637. <span class="token punctuation">{</span>
  638. <span class="token literal-property property">text</span><span class="token operator">:</span> <span class="token string">'Venomancer'</span><span class="token punctuation">,</span>
  639. <span class="token literal-property property">value</span><span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">,</span>
  640. <span class="token literal-property property">disabled</span><span class="token operator">:</span> <span class="token string">'wheel-disabled-item'</span>
  641. <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">{</span>
  642. <span class="token literal-property property">text</span><span class="token operator">:</span> <span class="token string">'Nerubian Weaver'</span><span class="token punctuation">,</span>
  643. <span class="token literal-property property">value</span><span class="token operator">:</span> <span class="token number">2</span>
  644. <span class="token punctuation">}</span><span class="token punctuation">,</span>
  645. <span class="token punctuation">{</span>
  646. <span class="token literal-property property">text</span><span class="token operator">:</span> <span class="token string">'Spectre'</span><span class="token punctuation">,</span>
  647. <span class="token literal-property property">value</span><span class="token operator">:</span> <span class="token number">3</span>
  648. <span class="token punctuation">}</span><span class="token punctuation">,</span>
  649. <span class="token punctuation">{</span>
  650. <span class="token literal-property property">text</span><span class="token operator">:</span> <span class="token string">'Juggernaut'</span><span class="token punctuation">,</span>
  651. <span class="token literal-property property">value</span><span class="token operator">:</span> <span class="token number">4</span>
  652. <span class="token punctuation">}</span><span class="token punctuation">,</span>
  653. <span class="token punctuation">{</span>
  654. <span class="token literal-property property">text</span><span class="token operator">:</span> <span class="token string">'Karl'</span><span class="token punctuation">,</span>
  655. <span class="token literal-property property">value</span><span class="token operator">:</span> <span class="token number">5</span>
  656. <span class="token punctuation">}</span><span class="token punctuation">,</span>
  657. <span class="token punctuation">{</span>
  658. <span class="token literal-property property">text</span><span class="token operator">:</span> <span class="token string">'Zeus'</span><span class="token punctuation">,</span>
  659. <span class="token literal-property property">value</span><span class="token operator">:</span> <span class="token number">6</span>
  660. <span class="token punctuation">}</span><span class="token punctuation">,</span>
  661. <span class="token punctuation">{</span>
  662. <span class="token literal-property property">text</span><span class="token operator">:</span> <span class="token string">'Witch Doctor'</span><span class="token punctuation">,</span>
  663. <span class="token literal-property property">value</span><span class="token operator">:</span> <span class="token number">7</span>
  664. <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">{</span>
  665. <span class="token literal-property property">text</span><span class="token operator">:</span> <span class="token string">'Lich'</span><span class="token punctuation">,</span>
  666. <span class="token literal-property property">value</span><span class="token operator">:</span> <span class="token number">8</span>
  667. <span class="token punctuation">}</span><span class="token punctuation">,</span>
  668. <span class="token punctuation">{</span>
  669. <span class="token literal-property property">text</span><span class="token operator">:</span> <span class="token string">'Oracle'</span><span class="token punctuation">,</span>
  670. <span class="token literal-property property">value</span><span class="token operator">:</span> <span class="token number">9</span>
  671. <span class="token punctuation">}</span><span class="token punctuation">,</span>
  672. <span class="token punctuation">{</span>
  673. <span class="token literal-property property">text</span><span class="token operator">:</span> <span class="token string">'Earthshaker'</span><span class="token punctuation">,</span>
  674. <span class="token literal-property property">value</span><span class="token operator">:</span> <span class="token number">10</span>
  675. <span class="token punctuation">}</span>
  676. <span class="token punctuation">]</span>
  677. <span class="token keyword">export</span> <span class="token keyword">default</span> <span class="token punctuation">{</span>
  678. <span class="token literal-property property">name</span><span class="token operator">:</span> <span class="token constant">COMPONENT_NAME</span><span class="token punctuation">,</span>
  679. <span class="token function">data</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
  680. <span class="token keyword">return</span> <span class="token punctuation">{</span>
  681. <span class="token literal-property property">state</span><span class="token operator">:</span> <span class="token constant">STATE_HIDE</span><span class="token punctuation">,</span>
  682. <span class="token literal-property property">selectedIndex</span><span class="token operator">:</span> <span class="token number">2</span><span class="token punctuation">,</span>
  683. <span class="token literal-property property">selectedText</span><span class="token operator">:</span> <span class="token string">'open'</span><span class="token punctuation">,</span>
  684. <span class="token literal-property property">pickerData</span><span class="token operator">:</span> <span class="token constant">DATA</span>
  685. <span class="token punctuation">}</span>
  686. <span class="token punctuation">}</span><span class="token punctuation">,</span>
  687. <span class="token literal-property property">methods</span><span class="token operator">:</span> <span class="token punctuation">{</span>
  688. <span class="token function">_confirm</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
  689. <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token keyword">this</span><span class="token punctuation">.</span><span class="token function">_isMoving</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
  690. <span class="token keyword">return</span>
  691. <span class="token punctuation">}</span>
  692. <span class="token keyword">this</span><span class="token punctuation">.</span><span class="token function">hide</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
  693. <span class="token keyword">const</span> currentSelectedIndex <span class="token operator">=</span> <span class="token keyword">this</span><span class="token punctuation">.</span>wheel<span class="token punctuation">.</span><span class="token function">getSelectedIndex</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
  694. <span class="token keyword">this</span><span class="token punctuation">.</span>selectedIndex <span class="token operator">=</span> currentSelectedIndex
  695. <span class="token keyword">this</span><span class="token punctuation">.</span>selectedText <span class="token operator">=</span> <span class="token keyword">this</span><span class="token punctuation">.</span>pickerData<span class="token punctuation">[</span><span class="token keyword">this</span><span class="token punctuation">.</span>selectedIndex<span class="token punctuation">]</span><span class="token punctuation">.</span>text
  696. <span class="token keyword">this</span><span class="token punctuation">.</span><span class="token function">$emit</span><span class="token punctuation">(</span><span class="token constant">EVENT_SELECT</span><span class="token punctuation">,</span> currentSelectedIndex<span class="token punctuation">)</span>
  697. <span class="token punctuation">}</span><span class="token punctuation">,</span>
  698. <span class="token function">_cancel</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
  699. <span class="token keyword">this</span><span class="token punctuation">.</span><span class="token function">hide</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
  700. <span class="token keyword">this</span><span class="token punctuation">.</span><span class="token function">$emit</span><span class="token punctuation">(</span><span class="token constant">EVENT_CANCEL</span><span class="token punctuation">)</span>
  701. <span class="token punctuation">}</span><span class="token punctuation">,</span>
  702. <span class="token function">_isMoving</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
  703. <span class="token keyword">return</span> <span class="token keyword">this</span><span class="token punctuation">.</span>wheel<span class="token punctuation">.</span>pending
  704. <span class="token punctuation">}</span><span class="token punctuation">,</span>
  705. <span class="token function">show</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
  706. <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token keyword">this</span><span class="token punctuation">.</span>state <span class="token operator">===</span> <span class="token constant">STATE_SHOW</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
  707. <span class="token keyword">return</span>
  708. <span class="token punctuation">}</span>
  709. <span class="token keyword">this</span><span class="token punctuation">.</span>state <span class="token operator">=</span> <span class="token constant">STATE_SHOW</span>
  710. <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token operator">!</span><span class="token keyword">this</span><span class="token punctuation">.</span>wheel<span class="token punctuation">)</span> <span class="token punctuation">{</span>
  711. <span class="token comment">// waiting for DOM rendered</span>
  712. <span class="token keyword">this</span><span class="token punctuation">.</span><span class="token function">$nextTick</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
  713. <span class="token keyword">const</span> wrapper <span class="token operator">=</span> <span class="token keyword">this</span><span class="token punctuation">.</span>$refs<span class="token punctuation">.</span>wheelWrapper<span class="token punctuation">.</span>children<span class="token punctuation">[</span><span class="token number">0</span><span class="token punctuation">]</span>
  714. <span class="token keyword">this</span><span class="token punctuation">.</span><span class="token function">_createWheel</span><span class="token punctuation">(</span>wrapper<span class="token punctuation">)</span>
  715. <span class="token punctuation">}</span><span class="token punctuation">)</span>
  716. <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span>
  717. <span class="token keyword">this</span><span class="token punctuation">.</span>wheel<span class="token punctuation">.</span><span class="token function">enable</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
  718. <span class="token keyword">this</span><span class="token punctuation">.</span>wheel<span class="token punctuation">.</span><span class="token function">wheelTo</span><span class="token punctuation">(</span><span class="token keyword">this</span><span class="token punctuation">.</span>selectedIndex<span class="token punctuation">)</span>
  719. <span class="token punctuation">}</span>
  720. <span class="token punctuation">}</span><span class="token punctuation">,</span>
  721. <span class="token function">hide</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
  722. <span class="token keyword">this</span><span class="token punctuation">.</span>state <span class="token operator">=</span> <span class="token constant">STATE_HIDE</span>
  723. <span class="token comment">// if wheel is in animation, clear timer in it</span>
  724. <span class="token keyword">this</span><span class="token punctuation">.</span>wheel<span class="token punctuation">.</span><span class="token function">disable</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
  725. <span class="token punctuation">}</span><span class="token punctuation">,</span>
  726. <span class="token function">refresh</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
  727. <span class="token keyword">this</span><span class="token punctuation">.</span><span class="token function">$nextTick</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
  728. <span class="token keyword">this</span><span class="token punctuation">.</span>wheel<span class="token punctuation">.</span><span class="token function">refresh</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
  729. <span class="token punctuation">}</span><span class="token punctuation">)</span>
  730. <span class="token punctuation">}</span><span class="token punctuation">,</span>
  731. <span class="token function">_createWheel</span><span class="token punctuation">(</span><span class="token parameter">wheelWrapper</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
  732. <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token operator">!</span><span class="token keyword">this</span><span class="token punctuation">.</span>wheel<span class="token punctuation">)</span> <span class="token punctuation">{</span>
  733. <span class="token keyword">this</span><span class="token punctuation">.</span>wheel <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">BScroll</span><span class="token punctuation">(</span>wheelWrapper<span class="token punctuation">,</span> <span class="token punctuation">{</span>
  734. <span class="token literal-property property">mouseWheel</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
  735. <span class="token literal-property property">wheel</span><span class="token operator">:</span> <span class="token punctuation">{</span>
  736. <span class="token literal-property property">selectedIndex</span><span class="token operator">:</span> <span class="token keyword">this</span><span class="token punctuation">.</span>selectedIndex<span class="token punctuation">,</span>
  737. <span class="token literal-property property">wheelWrapperClass</span><span class="token operator">:</span> <span class="token string">'wheel-scroll'</span><span class="token punctuation">,</span>
  738. <span class="token literal-property property">wheelItemClass</span><span class="token operator">:</span> <span class="token string">'wheel-item'</span><span class="token punctuation">,</span>
  739. <span class="token literal-property property">wheelDisabledItemClass</span><span class="token operator">:</span> <span class="token string">'wheel-disabled-item'</span>
  740. <span class="token punctuation">}</span><span class="token punctuation">,</span>
  741. <span class="token literal-property property">probeType</span><span class="token operator">:</span> <span class="token number">3</span><span class="token punctuation">,</span>
  742. <span class="token literal-property property">useTransition</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
  743. <span class="token punctuation">}</span><span class="token punctuation">)</span>
  744. <span class="token keyword">this</span><span class="token punctuation">.</span>wheel<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">=&gt;</span> <span class="token punctuation">{</span>
  745. <span class="token keyword">this</span><span class="token punctuation">.</span><span class="token function">$emit</span><span class="token punctuation">(</span><span class="token constant">EVENT_CHANGE</span><span class="token punctuation">,</span> <span class="token keyword">this</span><span class="token punctuation">.</span>wheel<span class="token punctuation">.</span><span class="token function">getSelectedIndex</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
  746. <span class="token punctuation">}</span><span class="token punctuation">)</span>
  747. <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span>
  748. <span class="token keyword">this</span><span class="token punctuation">.</span>wheel<span class="token punctuation">.</span><span class="token function">refresh</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
  749. <span class="token punctuation">}</span>
  750. <span class="token keyword">return</span> <span class="token keyword">this</span><span class="token punctuation">.</span>wheel
  751. <span class="token punctuation">}</span>
  752. <span class="token punctuation">}</span>
  753. <span class="token punctuation">}</span>
  754. </span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>script</span><span class="token punctuation">&gt;</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>&lt;style scoped lang=<span class="token string">&quot;stylus&quot;</span> rel=<span class="token string">&quot;stylesheet/stylus&quot;</span>&gt;
  755. <span class="token selector"><span class="token comment">/* reset */</span>
  756. ul</span>
  757. <span class="token property-declaration"><span class="token property">list-style</span> none</span>
  758. <span class="token property-declaration"><span class="token property">padding</span> <span class="token number">0</span></span>
  759. <span class="token selector">.example-list</span>
  760. <span class="token property-declaration"><span class="token property">display</span><span class="token punctuation">:</span> flex</span>
  761. <span class="token property-declaration"><span class="token property">justify-content</span><span class="token punctuation">:</span> space-between</span>
  762. <span class="token property-declaration"><span class="token property">flex-wrap</span><span class="token punctuation">:</span> wrap</span>
  763. <span class="token property-declaration"><span class="token property">margin</span><span class="token punctuation">:</span> <span class="token number">2</span><span class="token unit">rem</span></span>
  764. <span class="token selector">.example-item</span>
  765. <span class="token property-declaration"><span class="token property">background-color</span> <span class="token color">white</span></span>
  766. <span class="token property-declaration"><span class="token property">padding</span><span class="token punctuation">:</span> <span class="token number">0.8</span><span class="token unit">rem</span></span>
  767. <span class="token property-declaration"><span class="token property">border</span><span class="token punctuation">:</span> <span class="token number">1</span><span class="token unit">px</span> solid <span class="token func"><span class="token function">rgba</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">.1</span><span class="token punctuation">)</span></span></span>
  768. <span class="token property-declaration"><span class="token property">box-shadow</span><span class="token punctuation">:</span> <span class="token number">0</span> <span class="token number">1</span><span class="token unit">px</span> <span class="token number">2</span><span class="token unit">px</span> <span class="token number">0</span> <span class="token func"><span class="token function">rgba</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token number">0.1</span><span class="token punctuation">)</span></span></span>
  769. <span class="token property-declaration"><span class="token property">text-align</span><span class="token punctuation">:</span> center</span>
  770. <span class="token property-declaration"><span class="token property">margin-bottom</span><span class="token punctuation">:</span> <span class="token number">1</span><span class="token unit">rem</span></span>
  771. <span class="token property-declaration"><span class="token property">flex</span><span class="token punctuation">:</span> <span class="token number">1</span></span>
  772. <span class="token selector">&amp;.placeholder</span>
  773. <span class="token property-declaration"><span class="token property">visibility</span><span class="token punctuation">:</span> hidden</span>
  774. <span class="token property-declaration"><span class="token property">height</span><span class="token punctuation">:</span> <span class="token number">0</span></span>
  775. <span class="token property-declaration"><span class="token property">margin</span><span class="token punctuation">:</span> <span class="token number">0</span></span>
  776. <span class="token property-declaration"><span class="token property">padding</span><span class="token punctuation">:</span> <span class="token number">0</span></span>
  777. <span class="token selector">.picker</span>
  778. <span class="token property-declaration"><span class="token property">position</span><span class="token punctuation">:</span> fixed</span>
  779. <span class="token property-declaration"><span class="token property">left</span><span class="token punctuation">:</span> <span class="token number">0</span></span>
  780. <span class="token property-declaration"><span class="token property">top</span><span class="token punctuation">:</span> <span class="token number">0</span></span>
  781. <span class="token property-declaration"><span class="token property">z-index</span><span class="token punctuation">:</span> <span class="token number">100</span></span>
  782. <span class="token property-declaration"><span class="token property">width</span><span class="token punctuation">:</span> <span class="token number">100</span><span class="token unit">%</span></span>
  783. <span class="token property-declaration"><span class="token property">height</span><span class="token punctuation">:</span> <span class="token number">100</span><span class="token unit">%</span></span>
  784. <span class="token property-declaration"><span class="token property">overflow</span><span class="token punctuation">:</span> hidden</span>
  785. <span class="token property-declaration"><span class="token property">text-align</span><span class="token punctuation">:</span> center</span>
  786. <span class="token property-declaration"><span class="token property">font-size</span><span class="token punctuation">:</span> <span class="token number">14</span><span class="token unit">px</span></span>
  787. <span class="token property-declaration"><span class="token property">background-color</span><span class="token punctuation">:</span> <span class="token func"><span class="token function">rgba</span><span class="token punctuation">(</span><span class="token number">37</span><span class="token punctuation">,</span> <span class="token number">38</span><span class="token punctuation">,</span> <span class="token number">45</span><span class="token punctuation">,</span> <span class="token number">.4</span><span class="token punctuation">)</span></span></span>
  788. <span class="token selector">&amp;.picker-fade-enter<span class="token punctuation">,</span> &amp;.picker-fade-leave-active</span>
  789. <span class="token property-declaration"><span class="token property">opacity</span><span class="token punctuation">:</span> <span class="token number">0</span></span>
  790. <span class="token selector">&amp;.picker-fade-enter-active<span class="token punctuation">,</span> &amp;.picker-fade-leave-active</span>
  791. <span class="token property-declaration"><span class="token property">transition</span><span class="token punctuation">:</span> all <span class="token number">.3</span><span class="token unit">s</span> ease-<span class="token operator">in</span>-out</span>
  792. <span class="token selector">.picker-panel</span>
  793. <span class="token property-declaration"><span class="token property">position</span><span class="token punctuation">:</span> absolute</span>
  794. <span class="token property-declaration"><span class="token property">z-index</span><span class="token punctuation">:</span> <span class="token number">600</span></span>
  795. <span class="token property-declaration"><span class="token property">bottom</span><span class="token punctuation">:</span> <span class="token number">0</span></span>
  796. <span class="token property-declaration"><span class="token property">width</span><span class="token punctuation">:</span> <span class="token number">100</span><span class="token unit">%</span></span>
  797. <span class="token property-declaration"><span class="token property">height</span><span class="token punctuation">:</span> <span class="token number">273</span><span class="token unit">px</span></span>
  798. <span class="token property-declaration"><span class="token property">background</span><span class="token punctuation">:</span> <span class="token color">white</span></span>
  799. <span class="token selector">&amp;.picker-move-enter<span class="token punctuation">,</span> &amp;.picker-move-leave-active</span>
  800. <span class="token property-declaration"><span class="token property">transform</span><span class="token punctuation">:</span> <span class="token func"><span class="token function">translate3d</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span> <span class="token number">273</span><span class="token unit">px</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">)</span></span></span>
  801. <span class="token selector">&amp;.picker-move-enter-active<span class="token punctuation">,</span> &amp;.picker-move-leave-active</span>
  802. <span class="token property-declaration"><span class="token property">transition</span><span class="token punctuation">:</span> all <span class="token number">.3</span><span class="token unit">s</span> ease-<span class="token operator">in</span>-out</span>
  803. <span class="token selector">.picker-choose</span>
  804. <span class="token property-declaration"><span class="token property">position</span><span class="token punctuation">:</span> relative</span>
  805. <span class="token property-declaration"><span class="token property">height</span><span class="token punctuation">:</span> <span class="token number">60</span><span class="token unit">px</span></span>
  806. <span class="token property-declaration"><span class="token property">color</span><span class="token punctuation">:</span> <span class="token hexcode">#999</span></span>
  807. <span class="token selector">.picker-title</span>
  808. <span class="token property-declaration"><span class="token property">margin</span><span class="token punctuation">:</span> <span class="token number">0</span></span>
  809. <span class="token property-declaration"><span class="token property">line-height</span><span class="token punctuation">:</span> <span class="token number">60</span><span class="token unit">px</span></span>
  810. <span class="token property-declaration"><span class="token property">font-weight</span><span class="token punctuation">:</span> normal</span>
  811. <span class="token property-declaration"><span class="token property">text-align</span><span class="token punctuation">:</span> center</span>
  812. <span class="token property-declaration"><span class="token property">font-size</span><span class="token punctuation">:</span> <span class="token number">18</span><span class="token unit">px</span></span>
  813. <span class="token property-declaration"><span class="token property">color</span><span class="token punctuation">:</span> <span class="token hexcode">#333</span></span>
  814. <span class="token selector">.confirm<span class="token punctuation">,</span> .cancel</span>
  815. <span class="token property-declaration"><span class="token property">position</span><span class="token punctuation">:</span> absolute</span>
  816. <span class="token property-declaration"><span class="token property">top</span><span class="token punctuation">:</span> <span class="token number">6</span><span class="token unit">px</span></span>
  817. <span class="token property-declaration"><span class="token property">padding</span><span class="token punctuation">:</span> <span class="token number">16</span><span class="token unit">px</span></span>
  818. <span class="token property-declaration"><span class="token property">font-size</span><span class="token punctuation">:</span> <span class="token number">14</span><span class="token unit">px</span></span>
  819. <span class="token selector">.confirm</span>
  820. <span class="token property-declaration"><span class="token property">right</span><span class="token punctuation">:</span> <span class="token number">0</span></span>
  821. <span class="token property-declaration"><span class="token property">color</span><span class="token punctuation">:</span> <span class="token hexcode">#007bff</span></span>
  822. <span class="token selector">&amp;:active</span>
  823. <span class="token property-declaration"><span class="token property">color</span><span class="token punctuation">:</span> <span class="token hexcode">#5aaaff</span></span>
  824. <span class="token selector">.cancel</span>
  825. <span class="token property-declaration"><span class="token property">left</span><span class="token punctuation">:</span> <span class="token number">0</span></span>
  826. <span class="token selector">&amp;:active</span>
  827. <span class="token property-declaration"><span class="token property">color</span><span class="token punctuation">:</span> <span class="token hexcode">#c2c2c2</span></span>
  828. <span class="token selector">.picker-content</span>
  829. <span class="token property-declaration"><span class="token property">position</span><span class="token punctuation">:</span> relative</span>
  830. <span class="token property-declaration"><span class="token property">top</span><span class="token punctuation">:</span> <span class="token number">20</span><span class="token unit">px</span></span>
  831. <span class="token selector">.mask-top<span class="token punctuation">,</span> .mask-bottom</span>
  832. <span class="token property-declaration"><span class="token property">z-index</span><span class="token punctuation">:</span> <span class="token number">10</span></span>
  833. <span class="token property-declaration"><span class="token property">width</span><span class="token punctuation">:</span> <span class="token number">100</span><span class="token unit">%</span></span>
  834. <span class="token property-declaration"><span class="token property">height</span><span class="token punctuation">:</span> <span class="token number">68</span><span class="token unit">px</span></span>
  835. <span class="token property-declaration"><span class="token property">pointer-events</span><span class="token punctuation">:</span> none</span>
  836. <span class="token property-declaration"><span class="token property">transform</span><span class="token punctuation">:</span> <span class="token func"><span class="token function">translateZ</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">)</span></span></span>
  837. <span class="token selector">.mask-top</span>
  838. <span class="token property-declaration"><span class="token property">position</span><span class="token punctuation">:</span> absolute</span>
  839. <span class="token property-declaration"><span class="token property">top</span><span class="token punctuation">:</span> <span class="token number">0</span></span>
  840. <span class="token property-declaration"><span class="token property">background</span><span class="token punctuation">:</span> <span class="token func"><span class="token function">linear-gradient</span><span class="token punctuation">(</span>to top<span class="token punctuation">,</span> <span class="token func"><span class="token function">rgba</span><span class="token punctuation">(</span><span class="token number">255</span><span class="token punctuation">,</span> <span class="token number">255</span><span class="token punctuation">,</span> <span class="token number">255</span><span class="token punctuation">,</span> <span class="token number">0.4</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token func"><span class="token function">rgba</span><span class="token punctuation">(</span><span class="token number">255</span><span class="token punctuation">,</span> <span class="token number">255</span><span class="token punctuation">,</span> <span class="token number">255</span><span class="token punctuation">,</span> <span class="token number">0.8</span><span class="token punctuation">)</span><span class="token punctuation">)</span></span></span></span></span>
  841. <span class="token selector">.mask-bottom</span>
  842. <span class="token property-declaration"><span class="token property">position</span><span class="token punctuation">:</span> absolute</span>
  843. <span class="token property-declaration"><span class="token property">bottom</span><span class="token punctuation">:</span> <span class="token number">1</span><span class="token unit">px</span></span>
  844. <span class="token property-declaration"><span class="token property">background</span><span class="token punctuation">:</span> <span class="token func"><span class="token function">linear-gradient</span><span class="token punctuation">(</span>to bottom<span class="token punctuation">,</span> <span class="token func"><span class="token function">rgba</span><span class="token punctuation">(</span><span class="token number">255</span><span class="token punctuation">,</span> <span class="token number">255</span><span class="token punctuation">,</span> <span class="token number">255</span><span class="token punctuation">,</span> <span class="token number">0.4</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token func"><span class="token function">rgba</span><span class="token punctuation">(</span><span class="token number">255</span><span class="token punctuation">,</span> <span class="token number">255</span><span class="token punctuation">,</span> <span class="token number">255</span><span class="token punctuation">,</span> <span class="token number">0.8</span><span class="token punctuation">)</span><span class="token punctuation">)</span></span></span></span></span>
  845. <span class="token selector">.wheel-wrapper</span>
  846. <span class="token property-declaration"><span class="token property">display</span><span class="token punctuation">:</span> flex</span>
  847. <span class="token property-declaration"><span class="token property">padding</span><span class="token punctuation">:</span> <span class="token number">0</span> <span class="token number">16</span><span class="token unit">px</span></span>
  848. <span class="token selector">.wheel</span>
  849. <span class="token property-declaration"><span class="token property">-ms-flex</span><span class="token punctuation">:</span> <span class="token number">1</span> <span class="token number">1</span> <span class="token number">0.000000001</span><span class="token unit">px</span></span>
  850. <span class="token property-declaration"><span class="token property">-webkit-box-flex</span><span class="token punctuation">:</span> <span class="token number">1</span></span>
  851. <span class="token property-declaration"><span class="token property">-webkit-flex</span><span class="token punctuation">:</span> <span class="token number">1</span></span>
  852. <span class="token property-declaration"><span class="token property">flex</span><span class="token punctuation">:</span> <span class="token number">1</span></span>
  853. <span class="token property-declaration"><span class="token property">-webkit-flex-basis</span><span class="token punctuation">:</span> <span class="token number">0.000000001</span><span class="token unit">px</span></span>
  854. <span class="token property-declaration"><span class="token property">flex-basis</span><span class="token punctuation">:</span> <span class="token number">0.000000001</span><span class="token unit">px</span></span>
  855. <span class="token property-declaration"><span class="token property">width</span><span class="token punctuation">:</span> <span class="token number">1</span><span class="token unit">%</span></span>
  856. <span class="token property-declaration"><span class="token property">height</span><span class="token punctuation">:</span> <span class="token number">173</span><span class="token unit">px</span></span>
  857. <span class="token property-declaration"><span class="token property">overflow</span><span class="token punctuation">:</span> hidden</span>
  858. <span class="token property-declaration"><span class="token property">font-size</span><span class="token punctuation">:</span> <span class="token number">18</span><span class="token unit">px</span></span>
  859. <span class="token selector">.wheel-scroll</span>
  860. <span class="token property-declaration"><span class="token property">padding</span><span class="token punctuation">:</span> <span class="token number">0</span></span>
  861. <span class="token property-declaration"><span class="token property">margin-top</span><span class="token punctuation">:</span> <span class="token number">68</span><span class="token unit">px</span></span>
  862. <span class="token property-declaration"><span class="token property">line-height</span><span class="token punctuation">:</span> <span class="token number">36</span><span class="token unit">px</span></span>
  863. <span class="token property-declaration"><span class="token property">list-style</span><span class="token punctuation">:</span> none</span>
  864. <span class="token selector">.wheel-item</span>
  865. <span class="token property-declaration"><span class="token property">list-style</span><span class="token punctuation">:</span> none</span>
  866. <span class="token property-declaration"><span class="token property">height</span><span class="token punctuation">:</span> <span class="token number">36</span><span class="token unit">px</span></span>
  867. <span class="token property-declaration"><span class="token property">overflow</span><span class="token punctuation">:</span> hidden</span>
  868. <span class="token property-declaration"><span class="token property">white-space</span><span class="token punctuation">:</span> nowrap</span>
  869. <span class="token property-declaration"><span class="token property">color</span><span class="token punctuation">:</span> <span class="token hexcode">#333</span></span>
  870. <span class="token selector">&amp;.wheel-disabled-item</span>
  871. <span class="token property-declaration"><span class="token property">opacity</span><span class="token punctuation">:</span> <span class="token number">.2</span><span class="token punctuation">;</span></span>
  872. <span class="token selector">.picker-footer</span>
  873. <span class="token property-declaration"><span class="token property">height</span><span class="token punctuation">:</span> <span class="token number">20</span><span class="token unit">px</span></span>
  874. &lt;/style&gt;</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></li></ul> <h2 id="mousewheel-options"><a href="#mousewheel-options" class="header-anchor">#</a> mouseWheel options</h2> <h3 id="speed"><a href="#speed" class="header-anchor">#</a> speed</h3> <ul><li><strong>Type</strong>: <code>number</code></li> <li><strong>Default</strong>: <code>20</code></li></ul> <p>The speed at which the mouse wheel scrolls.</p> <h3 id="invert"><a href="#invert" class="header-anchor">#</a> invert</h3> <ul><li><strong>Type</strong>: <code>boolean</code></li> <li><strong>Default</strong>: <code>false</code></li></ul> <p>When the value is true, it means that the scrolling direction of the wheel is opposite to that of BetterScroll.</p> <h3 id="easetime"><a href="#easetime" class="header-anchor">#</a> easeTime</h3> <ul><li><strong>Type</strong>: <code>number</code></li> <li><strong>Default</strong>: <code>300</code>(ms)</li></ul> <p>The duration of the scroll animation.</p> <h3 id="discretetime"><a href="#discretetime" class="header-anchor">#</a> discreteTime</h3> <ul><li><strong>Type</strong>: <code>number</code></li> <li><strong>Default</strong>: <code>400</code>(ms)</li></ul> <p>Because the mouse wheel is a discrete movement, there is no event type of <strong>start</strong>, <strong>move</strong>, <strong>end</strong>, so as long as no scroll is detected within <code>discreteTime</code>, then one scroll wheel action ends.</p> <div class="custom-block warning"><p class="custom-block-title">WARNING</p> <p>When integrated with <a href="/docs/en-US/plugins/pulldown.html">pulldown</a> plugin, <code>easeTime</code> and <code>discreteTime</code> will be <strong>internally</strong> modified to <strong>reasonable fixed value</strong> to trigger the <code>pullingDown</code> hook</p></div> <h3 id="throttletime"><a href="#throttletime" class="header-anchor">#</a> throttleTime</h3> <ul><li><strong>Type</strong>: <code>number</code></li> <li><strong>Default</strong>: <code>0</code>(ms)</li></ul> <p>Since the scroll wheel is a high-frequency action, the trigger frequency can be limited by <code>throttleTime</code>. MouseWheel will cache the scrolling distance, and calculate the cached distance and scroll every throttleTime.</p> <blockquote><p>Modifying throttleTime may cause discontinuous scrolling animation, please adjust it according to the actual scene.</p></blockquote> <h3 id="dampingfactor"><a href="#dampingfactor" class="header-anchor">#</a> dampingFactor</h3> <ul><li><strong>Type</strong>: <code>number</code></li> <li><strong>Default</strong>: <code>0.1</code></li></ul> <p>Damping factor, the value range is [0, 1]. When BetterScroll rolls out of the boundary, resistance needs to be applied to prevent the rolling range from being too large. The smaller the value, the greater the resistance.</p> <div class="custom-block tip"><p class="custom-block-title">TIP</p> <p>When <code>mouseWheel</code> is configured as <code>true</code>, the plugin uses the default plugin option.</p> <div class="language-js extra-class"><pre class="language-js"><code><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>
  875. <span class="token literal-property property">mouseWheel</span><span class="token operator">:</span> <span class="token boolean">true</span>
  876. <span class="token punctuation">}</span><span class="token punctuation">)</span>
  877. <span class="token comment">// equals</span>
  878. <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>
  879. <span class="token literal-property property">mouseWheel</span><span class="token operator">:</span> <span class="token punctuation">{</span>
  880. <span class="token literal-property property">speed</span><span class="token operator">:</span> <span class="token number">20</span><span class="token punctuation">,</span>
  881. <span class="token literal-property property">invert</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
  882. <span class="token literal-property property">easeTime</span><span class="token operator">:</span> <span class="token number">300</span><span class="token punctuation">,</span>
  883. <span class="token literal-property property">discreteTime</span><span class="token operator">:</span> <span class="token number">400</span><span class="token punctuation">,</span>
  884. <span class="token literal-property property">throttleTime</span><span class="token operator">:</span> <span class="token number">0</span><span class="token punctuation">,</span>
  885. <span class="token literal-property property">dampingFactor</span><span class="token operator">:</span> <span class="token number">0.1</span>
  886. <span class="token punctuation">}</span>
  887. <span class="token punctuation">}</span><span class="token punctuation">)</span>
  888. </code></pre></div></div> <h2 id="events"><a href="#events" class="header-anchor">#</a> Events</h2> <h3 id="alteroptions"><a href="#alteroptions" class="header-anchor">#</a> alterOptions</h3> <ul><li><strong>Arguments</strong>: <code>MouseWheelConfig</code><div class="language-typescript extra-class"><pre class="language-typescript"><code> <span class="token keyword">export</span> <span class="token keyword">interface</span> <span class="token class-name">MouseWheelConfig</span> <span class="token punctuation">{</span>
  889. speed<span class="token operator">:</span> <span class="token builtin">number</span>
  890. invert<span class="token operator">:</span> <span class="token builtin">boolean</span>
  891. easeTime<span class="token operator">:</span> <span class="token builtin">number</span>
  892. discreteTime<span class="token operator">:</span> <span class="token builtin">number</span>
  893. throttleTime<span class="token operator">:</span> <span class="token builtin">number</span><span class="token punctuation">,</span>
  894. dampingFactor<span class="token operator">:</span> <span class="token builtin">number</span>
  895. <span class="token punctuation">}</span>
  896. </code></pre></div></li> <li><strong>Triggered Timing</strong>: The mousewheel begins to scroll, allowing to modify options to control certain behaviors during scrolling.</li></ul> <h3 id="mousewheelstart"><a href="#mousewheelstart" class="header-anchor">#</a> mousewheelStart</h3> <ul><li><strong>Arguments</strong>: none</li> <li><strong>Triggered Timing</strong>: The mousewheel starts.</li></ul> <h3 id="mousewheelmove"><a href="#mousewheelmove" class="header-anchor">#</a> mousewheelMove</h3> <ul><li><strong>Arguments</strong>: <code>{ x, y }</code></li> <li><code>{ number } x</code>: The current x of BetterScroll</li> <li><code>{ number } y</code>: The current y of BetterScroll</li> <li><strong>Type</strong>: <code>{ x: number, y: number }</code></li> <li><strong>Triggered Timing</strong>: Mousewheel is scrolling</li></ul> <h3 id="mousewheelend"><a href="#mousewheelend" class="header-anchor">#</a> mousewheelEnd</h3> <ul><li><strong>Arguments</strong>:<code>delta</code></li> <li><strong>Type</strong>: <code>WheelDelta</code></li></ul> <div class="language-typescript extra-class"><pre class="language-typescript"><code> <span class="token keyword">interface</span> <span class="token class-name">WheelDelta</span> <span class="token punctuation">{</span>
  897. x<span class="token operator">:</span> <span class="token builtin">number</span>
  898. y<span class="token operator">:</span> <span class="token builtin">number</span>
  899. directionX<span class="token operator">:</span> Direction
  900. directionY<span class="token operator">:</span> Direction
  901. <span class="token punctuation">}</span>
  902. </code></pre></div><ul><li><strong>Triggered Timing</strong>: If the mousewheel hook has not been triggered after <code>discreteTime</code>, a mousewheel action will be settled.</li></ul> <div class="custom-block danger"><p class="custom-block-title">Note</p> <p>Due to the particularity of the mousewheel hook, the dispatch of mousewheelEnd does not mean the end of the scroll animation.</p></div> <div class="custom-block tip"><p class="custom-block-title">TIP</p> <p>In most scenarios, if you want to know the current scroll position of BetterScroll accurately, please listen to the scroll and scrollEnd hooks instead of the <code>mouseXXX</code> hooks.</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/en-US/plugins/mouse-wheel.md" target="_blank" rel="noopener noreferrer">Edit this page on 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">Last Updated:</span> <span class="time">7/20/2021, 8:43:04 PM</span></div></footer> <div class="page-nav"><p class="inner"><span class="prev">
  903. <a href="/docs/en-US/plugins/how-to-write.html" class="prev">
  904. How to write plugins
  905. </a></span> <span class="next"><a href="/docs/en-US/plugins/observe-dom.html">
  906. observe-dom
  907. </a>
  908. </span></p></div> </main></div><div class="global-ui"><!----></div></div>
  909. <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/87.0db12b1e.js" defer></script><script src="/docs/assets/js/56.cd04bae9.js" defer></script>
  910. </body>
  911. </html>