123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765 |
- <!DOCTYPE html>
- <html lang="zh-CN">
- <head>
- <meta charset="utf-8">
- <meta name="viewport" content="width=device-width,initial-scale=1">
- <title>slide | BetterScroll 2.0</title>
- <meta name="generator" content="VuePress 1.9.10">
- <link rel="shortcut icon" href="/docs/assets/bs.ico" type="images/x-icon">
- <script src="https://www.googletagmanager.com/gtag/js?id=G-7E85TW7P27"></script>
- <script type="text/javascript">
- window.dataLayer = window.dataLayer || [];
- function gtag(){dataLayer.push(arguments);}
- gtag('js', new Date());
- gtag('config', 'G-7E85TW7P27');
- </script>
- <meta name="description" content="Make Scroll Perfect">
-
- <link rel="preload" href="/docs/assets/css/0.styles.0cd93813.css" as="style"><link rel="preload" href="/docs/assets/js/app.c71b64d3.js" as="script"><link rel="preload" href="/docs/assets/js/5.d6412664.js" as="script"><link rel="preload" href="/docs/assets/js/4.4855b9ef.js" as="script"><link rel="preload" href="/docs/assets/js/3.481632b4.js" as="script"><link rel="preload" href="/docs/assets/js/120.12cd2e0e.js" as="script"><link rel="preload" href="/docs/assets/js/56.cd04bae9.js" as="script"><link rel="preload" href="/docs/assets/js/7.518ccda7.js" as="script"><link rel="prefetch" href="/docs/assets/js/1.8644db92.js"><link rel="prefetch" href="/docs/assets/js/10.6f8c38eb.js"><link rel="prefetch" href="/docs/assets/js/100.ee08226e.js"><link rel="prefetch" href="/docs/assets/js/101.fd2f3d9f.js"><link rel="prefetch" href="/docs/assets/js/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/121.e41f8100.js"><link rel="prefetch" href="/docs/assets/js/122.9ebe2f53.js"><link rel="prefetch" href="/docs/assets/js/123.f90c91f9.js"><link rel="prefetch" href="/docs/assets/js/13.b0c40cd7.js"><link rel="prefetch" href="/docs/assets/js/14.28bec126.js"><link rel="prefetch" href="/docs/assets/js/15.87b22af4.js"><link rel="prefetch" href="/docs/assets/js/16.c10e14e7.js"><link rel="prefetch" href="/docs/assets/js/17.5c921c77.js"><link rel="prefetch" href="/docs/assets/js/18.dc23b7e3.js"><link rel="prefetch" href="/docs/assets/js/19.a4034f95.js"><link rel="prefetch" href="/docs/assets/js/2.03f0f2c8.js"><link rel="prefetch" href="/docs/assets/js/20.8633fd45.js"><link rel="prefetch" href="/docs/assets/js/21.1fbf8d7e.js"><link rel="prefetch" href="/docs/assets/js/22.2888cfc5.js"><link rel="prefetch" href="/docs/assets/js/23.f951d302.js"><link rel="prefetch" href="/docs/assets/js/24.12842718.js"><link rel="prefetch" href="/docs/assets/js/25.5a5a3137.js"><link rel="prefetch" href="/docs/assets/js/26.88e81f0b.js"><link rel="prefetch" href="/docs/assets/js/27.152b8fda.js"><link rel="prefetch" href="/docs/assets/js/28.22550ea8.js"><link rel="prefetch" href="/docs/assets/js/29.f43fa807.js"><link rel="prefetch" href="/docs/assets/js/30.4ed38f67.js"><link rel="prefetch" href="/docs/assets/js/31.af4018f6.js"><link rel="prefetch" href="/docs/assets/js/32.930ee0b7.js"><link rel="prefetch" href="/docs/assets/js/33.c6a68c75.js"><link rel="prefetch" href="/docs/assets/js/34.6d10da1e.js"><link rel="prefetch" href="/docs/assets/js/35.11ba7b51.js"><link rel="prefetch" href="/docs/assets/js/36.8a54712b.js"><link rel="prefetch" href="/docs/assets/js/37.b26eb85d.js"><link rel="prefetch" href="/docs/assets/js/38.d6569a11.js"><link rel="prefetch" href="/docs/assets/js/39.1d22cfba.js"><link rel="prefetch" href="/docs/assets/js/40.577a94d7.js"><link rel="prefetch" href="/docs/assets/js/41.155e01e0.js"><link rel="prefetch" href="/docs/assets/js/42.3c26eaba.js"><link rel="prefetch" href="/docs/assets/js/43.d90991e2.js"><link rel="prefetch" href="/docs/assets/js/44.5437344c.js"><link rel="prefetch" href="/docs/assets/js/45.0d2eca0a.js"><link rel="prefetch" href="/docs/assets/js/46.11455b40.js"><link rel="prefetch" href="/docs/assets/js/47.1ee1a8f0.js"><link rel="prefetch" href="/docs/assets/js/48.c82450ab.js"><link rel="prefetch" href="/docs/assets/js/49.8016ee5f.js"><link rel="prefetch" href="/docs/assets/js/50.ab73e091.js"><link rel="prefetch" href="/docs/assets/js/51.bce6eb99.js"><link rel="prefetch" href="/docs/assets/js/52.c9b1992f.js"><link rel="prefetch" href="/docs/assets/js/53.7057f0f5.js"><link rel="prefetch" href="/docs/assets/js/54.cbb0a6b5.js"><link rel="prefetch" href="/docs/assets/js/55.89176a68.js"><link rel="prefetch" href="/docs/assets/js/57.c7a42e07.js"><link rel="prefetch" href="/docs/assets/js/58.09d6cb1b.js"><link rel="prefetch" href="/docs/assets/js/59.8445a09f.js"><link rel="prefetch" href="/docs/assets/js/6.5737c458.js"><link rel="prefetch" href="/docs/assets/js/60.86b1f417.js"><link rel="prefetch" href="/docs/assets/js/61.fa371ad1.js"><link rel="prefetch" href="/docs/assets/js/62.dbc75ddc.js"><link rel="prefetch" href="/docs/assets/js/63.a4465c93.js"><link rel="prefetch" href="/docs/assets/js/64.a39c3193.js"><link rel="prefetch" href="/docs/assets/js/65.a7275f82.js"><link rel="prefetch" href="/docs/assets/js/66.afd0af7d.js"><link rel="prefetch" href="/docs/assets/js/67.8009e00e.js"><link rel="prefetch" href="/docs/assets/js/68.de3c51dd.js"><link rel="prefetch" href="/docs/assets/js/69.41a50235.js"><link rel="prefetch" href="/docs/assets/js/70.938e9532.js"><link rel="prefetch" href="/docs/assets/js/71.af7fca59.js"><link rel="prefetch" href="/docs/assets/js/72.25df569a.js"><link rel="prefetch" href="/docs/assets/js/73.f16b7dc3.js"><link rel="prefetch" href="/docs/assets/js/74.d2184ed7.js"><link rel="prefetch" href="/docs/assets/js/75.9497b6fa.js"><link rel="prefetch" href="/docs/assets/js/76.2081d35e.js"><link rel="prefetch" href="/docs/assets/js/77.e5a8b470.js"><link rel="prefetch" href="/docs/assets/js/78.6d3ef23b.js"><link rel="prefetch" href="/docs/assets/js/79.025583e1.js"><link rel="prefetch" href="/docs/assets/js/8.8547d4ad.js"><link rel="prefetch" href="/docs/assets/js/80.e7e3ef35.js"><link rel="prefetch" href="/docs/assets/js/81.569d569f.js"><link rel="prefetch" href="/docs/assets/js/82.ac3ed0f7.js"><link rel="prefetch" href="/docs/assets/js/83.3393dfc3.js"><link rel="prefetch" href="/docs/assets/js/84.e5352ac1.js"><link rel="prefetch" href="/docs/assets/js/85.c7cdb129.js"><link rel="prefetch" href="/docs/assets/js/86.0aa0af94.js"><link rel="prefetch" href="/docs/assets/js/87.0db12b1e.js"><link rel="prefetch" href="/docs/assets/js/88.e8651cfa.js"><link rel="prefetch" href="/docs/assets/js/89.1b58abde.js"><link rel="prefetch" href="/docs/assets/js/9.0a882dfc.js"><link rel="prefetch" href="/docs/assets/js/90.d65d2d13.js"><link rel="prefetch" href="/docs/assets/js/91.32b2ad41.js"><link rel="prefetch" href="/docs/assets/js/92.795675a1.js"><link rel="prefetch" href="/docs/assets/js/93.818e5569.js"><link rel="prefetch" href="/docs/assets/js/94.79c2b16e.js"><link rel="prefetch" href="/docs/assets/js/95.4810ee5e.js"><link rel="prefetch" href="/docs/assets/js/96.6e382fd5.js"><link rel="prefetch" href="/docs/assets/js/97.e270d7b5.js"><link rel="prefetch" href="/docs/assets/js/98.728ef6c2.js"><link rel="prefetch" href="/docs/assets/js/99.c75096e0.js"><link rel="prefetch" href="/docs/assets/js/vendors~docsearch.2091e099.js">
- <link rel="stylesheet" href="/docs/assets/css/0.styles.0cd93813.css">
- </head>
- <body>
- <div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/docs/zh-CN/" class="home-link router-link-active"><img src="https://dpubstatic.udache.com/static/dpubimg/t_L6vAgQ-E/logo.svg" alt="BetterScroll 2.0" class="logo"> <span class="site-name can-hide">BetterScroll 2.0</span></a> <div class="links"><form id="search-form" role="search" class="algolia-search-wrapper search-box"><input id="algolia-search-input" class="search-query"></form> <nav class="nav-links can-hide"><div class="nav-item"><a href="/docs/zh-CN/guide/" class="nav-link">
- 指南
- </a></div><div class="nav-item"><a href="/docs/zh-CN/plugins/" class="nav-link router-link-active">
- 插件
- </a></div><div class="nav-item"><a href="/docs/zh-CN/FAQ/" class="nav-link">
- 常见问题
- </a></div><div class="nav-item"><a href="https://github.com/ustbhuangyi/better-scroll/issues" target="_blank" rel="noopener noreferrer" class="nav-link external">
- 讨论
- <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Select language" class="dropdown-title"><span class="title">选择语言</span> <span class="arrow down"></span></button> <button type="button" aria-label="Select language" class="mobile-dropdown-title"><span class="title">选择语言</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/docs/en-US/plugins/slide.html" class="nav-link">
- English
- </a></li><li class="dropdown-item"><!----> <a href="/docs/zh-CN/plugins/slide.html" aria-current="page" class="nav-link router-link-exact-active router-link-active">
- 简体中文
- </a></li></ul></div></div> <a href="https://github.com/ustbhuangyi/better-scroll" target="_blank" rel="noopener noreferrer" class="repo-link">
- GitHub
- <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/docs/zh-CN/guide/" class="nav-link">
- 指南
- </a></div><div class="nav-item"><a href="/docs/zh-CN/plugins/" class="nav-link router-link-active">
- 插件
- </a></div><div class="nav-item"><a href="/docs/zh-CN/FAQ/" class="nav-link">
- 常见问题
- </a></div><div class="nav-item"><a href="https://github.com/ustbhuangyi/better-scroll/issues" target="_blank" rel="noopener noreferrer" class="nav-link external">
- 讨论
- <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Select language" class="dropdown-title"><span class="title">选择语言</span> <span class="arrow down"></span></button> <button type="button" aria-label="Select language" class="mobile-dropdown-title"><span class="title">选择语言</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="/docs/en-US/plugins/slide.html" class="nav-link">
- English
- </a></li><li class="dropdown-item"><!----> <a href="/docs/zh-CN/plugins/slide.html" aria-current="page" class="nav-link router-link-exact-active router-link-active">
- 简体中文
- </a></li></ul></div></div> <a href="https://github.com/ustbhuangyi/better-scroll" target="_blank" rel="noopener noreferrer" class="repo-link">
- GitHub
- <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></nav> <ul class="sidebar-links"><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span></span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/docs/zh-CN/plugins/" aria-current="page" class="sidebar-link">插件</a></li><li><a href="/docs/zh-CN/plugins/how-to-write.html" class="sidebar-link">如何写一个插件</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading open"><span></span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/docs/zh-CN/plugins/mouse-wheel.html" class="sidebar-link">mouse-wheel</a></li><li><a href="/docs/zh-CN/plugins/observe-dom.html" class="sidebar-link">observe-dom</a></li><li><a href="/docs/zh-CN/plugins/observe-image.html" class="sidebar-link">observe-image</a></li><li><a href="/docs/zh-CN/plugins/pulldown.html" class="sidebar-link">pulldown</a></li><li><a href="/docs/zh-CN/plugins/pullup.html" class="sidebar-link">pullup</a></li><li><a href="/docs/zh-CN/plugins/scroll-bar.html" class="sidebar-link">scrollbar</a></li><li><a href="/docs/zh-CN/plugins/indicators.html" class="sidebar-link">indicators</a></li><li><a href="/docs/zh-CN/plugins/slide.html" aria-current="page" class="active sidebar-link">slide</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/docs/zh-CN/plugins/slide.html#介绍" class="sidebar-link">介绍</a></li><li class="sidebar-sub-header"><a href="/docs/zh-CN/plugins/slide.html#安装" class="sidebar-link">安装</a></li><li class="sidebar-sub-header"><a href="/docs/zh-CN/plugins/slide.html#使用" class="sidebar-link">使用</a></li><li class="sidebar-sub-header"><a href="/docs/zh-CN/plugins/slide.html#关于-slide-的术语" class="sidebar-link">关于 slide 的术语</a></li><li class="sidebar-sub-header"><a href="/docs/zh-CN/plugins/slide.html#示例" class="sidebar-link">示例</a></li><li class="sidebar-sub-header"><a href="/docs/zh-CN/plugins/slide.html#slide-选项对象" class="sidebar-link">slide 选项对象</a></li><li class="sidebar-sub-header"><a href="/docs/zh-CN/plugins/slide.html#实例方法" class="sidebar-link">实例方法</a></li><li class="sidebar-sub-header"><a href="/docs/zh-CN/plugins/slide.html#事件" class="sidebar-link">事件</a></li></ul></li><li><a href="/docs/zh-CN/plugins/wheel.html" class="sidebar-link">wheel</a></li><li><a href="/docs/zh-CN/plugins/zoom.html" class="sidebar-link">zoom</a></li><li><a href="/docs/zh-CN/plugins/nested-scroll.html" class="sidebar-link">nested-scroll</a></li><li><a href="/docs/zh-CN/plugins/infinity.html" class="sidebar-link">infinity</a></li><li><a href="/docs/zh-CN/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="slide"><a href="#slide" class="header-anchor">#</a> slide</h1> <h2 id="介绍"><a href="#介绍" class="header-anchor">#</a> 介绍</h2> <p>slide 为 BetterScroll 扩展了轮播焦点图的能力。</p> <h2 id="安装"><a href="#安装" class="header-anchor">#</a> 安装</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/slide <span class="token parameter variable">--save</span>
- // or
- <span class="token function">yarn</span> <span class="token function">add</span> @better-scroll/slide
- </code></pre></div><h2 id="使用"><a href="#使用" class="header-anchor">#</a> 使用</h2> <p>你需要首先引入 slide 插件,并通过静态方法 <code>BScroll.use()</code> 使用</p> <div class="language-js extra-class"><pre class="language-js"><code> <span class="token keyword">import</span> BScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
- <span class="token keyword">import</span> Slide <span class="token keyword">from</span> <span class="token string">'@better-scroll/slide'</span>
- BScroll<span class="token punctuation">.</span><span class="token function">use</span><span class="token punctuation">(</span>Slide<span class="token punctuation">)</span>
- </code></pre></div><p>上面步骤完成后,BScroll 的 <code>options</code> 中传入 slide 相关的配置。</p> <div class="language-js extra-class"><pre class="language-js"><code> <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>
- <span class="token literal-property property">scrollX</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
- <span class="token literal-property property">scrollY</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
- <span class="token literal-property property">slide</span><span class="token operator">:</span> <span class="token punctuation">{</span>
- <span class="token literal-property property">threshold</span><span class="token operator">:</span> <span class="token number">100</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token literal-property property">momentum</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
- <span class="token literal-property property">bounce</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
- <span class="token literal-property property">stopPropagation</span><span class="token operator">:</span> <span class="token boolean">true</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div><p>以下是 slide 插件专属以及<a href="/docs/zh-CN/guide/base-scroll-options.html"> BetterScroll 的配置</a>:</p> <ul><li><p><strong>slide<插件专属></strong></p> <p>开启 slide 功能。若没有该项,则插件不会生效。该配置同时也是用来设置 slide 特性的相关配置,具体请参考<a href="/docs/zh-CN/plugins/slide.html#slide-选项对象"> slide 选项对象</a>。</p></li> <li><p><strong>scrollX</strong></p> <p>当值为 true 时,设置 slide 的方向为<strong>横向</strong>。</p></li> <li><p><strong>scrollY</strong></p> <p>当值为 true 时,设置 slide 的方向为<strong>纵向</strong>。 <strong>注意: scrollX 和 scrollY 不能同时设置为 true</strong></p></li> <li><p><strong>momentum</strong></p> <p>当使用 slide 时,这个值需要设置为 false,用来避免惯性动画带来的快速滚动时的闪烁的问题和快速滑动时一次滚动多页的问题。</p></li> <li><p><strong>bounce</strong></p> <p>bounce 值需要设置为 false,否则会在循环衔接的时候出现闪烁。</p></li> <li><p><strong>probeType</strong></p> <p>如果你想通过监听 <code>slideWillChange</code> 事件,在用户拖动 slide 时,实时获取到 slide 的 PageIndex 的改变,需要设置 probeType 值为 2 或者 3。</p></li></ul> <h2 id="关于-slide-的术语"><a href="#关于-slide-的术语" class="header-anchor">#</a> 关于 slide 的术语</h2> <p>一般情况下,BetterScroll 的 slide 的布局如下:</p> <div class="language-html extra-class"><pre class="language-html"><code><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>slide-wrapper<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>slide-content<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>slide-page<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>slide-page<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>slide-page<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>slide-page<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span><span class="token punctuation">/></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span><span class="token punctuation">/></span></span>
- </code></pre></div><ul><li><p><strong>slide-wrapper</strong></p> <p>slide 容器。</p></li> <li><p><strong>slide-content</strong></p> <p>slide 滚动元素。</p></li> <li><p><strong>slide-page</strong></p> <p>slide 由多个 Page 组成。</p> <div class="custom-block tip"><p class="custom-block-title">TIP</p> <p>在 loop 的场景下,slide-content 前后会多插入两个 Page,以便实现无缝衔接滚动的视觉效果。</p></div> <div class="custom-block danger"><p class="custom-block-title">危险</p> <p>slide-content 必须至少有一个 slide-page,如果只有一个 page,loop 的配置无效。</p></div></li></ul> <h2 id="示例"><a href="#示例" class="header-anchor">#</a> 示例</h2> <ul><li><p><strong>横向轮播</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="#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> <div class="v-popover"><div class="trigger" style="display:inline-block;"><i class="demo-nav-btn icon-qrcode"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="#666"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 4v1m6 11h2m-6 0h-2v4m0-11v3m0 0h.01M12 12h4.01M16 20h4M4 12h4m12 0h.01M5 8h2a1 1 0 001-1V5a1 1 0 00-1-1H5a1 1 0 00-1 1v2a1 1 0 001 1zm12 0h2a1 1 0 001-1V5a1 1 0 00-1-1h-2a1 1 0 00-1 1v2a1 1 0 001 1zM5 20h2a1 1 0 001-1v-2a1 1 0 00-1-1H5a1 1 0 00-1 1v2a1 1 0 001 1z"></path></svg></i> </div> <div id="popover_yt8oftyygy" aria-hidden="true" tabindex="0" class="tooltip popover vue-popover-theme" style="visibility:hidden;"><div class="wrapper"><div class="tooltip-inner popover-inner" style="position:relative;"><div><div></div></div> <div tabindex="-1" class="resize-observer" data-v-8859cc6c></div></div> <div class="tooltip-arrow popover-arrow"></div></div></div></div> <i class="demo-nav-btn icon-preview"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="#666"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"></path></svg></i></div> <div class="demo-code" style="display:;"><div class="demo-code-nav"><button class="demo-code-btn active">Template</button><button class="demo-code-btn">Script</button><button class="demo-code-btn">Style</button></div> <div class="demo-code-content"><div class="demo-code-item" style="display:;"><div class="language-vue extra-class"><pre class="language-vue"><code><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>template</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>slide-banner<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>banner-wrapper<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>slide-banner-wrapper<span class="token punctuation">"</span></span> <span class="token attr-name">ref</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>slide<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>slide-banner-content<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">v-for</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>num in nums<span class="token punctuation">"</span></span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>slide-page<span class="token punctuation">"</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">"</span><span class="token punctuation">'</span>page' + num<span class="token punctuation">"</span></span> <span class="token attr-name">:key</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>num<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>page {{num}}<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>dots-wrapper<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>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">"</span>dot<span class="token punctuation">"</span></span>
- <span class="token attr-name">v-for</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>num in nums<span class="token punctuation">"</span></span>
- <span class="token attr-name">:key</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>num<span class="token punctuation">"</span></span>
- <span class="token attr-name">:class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>{'active': currentPageIndex === (num - 1)}<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>span</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>btn-wrap<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>button</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>next<span class="token punctuation">"</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">"</span>nextPage<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>nextPage<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>button</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>button</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>prev<span class="token punctuation">"</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">"</span>prePage<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>prePage<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>button</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>template</span><span class="token punctuation">></span></span></code></pre></div></div><div class="demo-code-item" style="display:none;"><div class="language-vue extra-class"><pre class="language-vue"><code><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>script</span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>text/ecmascript-6<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><span class="token script"><span class="token language-javascript">
- <span class="token keyword">import</span> BScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
- <span class="token keyword">import</span> Slide <span class="token keyword">from</span> <span class="token string">'@better-scroll/slide'</span>
- BScroll<span class="token punctuation">.</span><span class="token function">use</span><span class="token punctuation">(</span>Slide<span class="token punctuation">)</span>
- <span class="token keyword">export</span> <span class="token keyword">default</span> <span class="token punctuation">{</span>
- <span class="token function">data</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">return</span> <span class="token punctuation">{</span>
- <span class="token literal-property property">nums</span><span class="token operator">:</span> <span class="token number">4</span><span class="token punctuation">,</span>
- <span class="token literal-property property">currentPageIndex</span><span class="token operator">:</span> <span class="token number">0</span>
- <span class="token punctuation">}</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token function">mounted</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span><span class="token function">init</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token function">beforeDestroy</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>slide<span class="token punctuation">.</span><span class="token function">destroy</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token literal-property property">methods</span><span class="token operator">:</span> <span class="token punctuation">{</span>
- <span class="token function">init</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>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>
- <span class="token literal-property property">scrollX</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
- <span class="token literal-property property">scrollY</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
- <span class="token literal-property property">slide</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
- <span class="token literal-property property">momentum</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
- <span class="token literal-property property">bounce</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
- <span class="token literal-property property">probeType</span><span class="token operator">:</span> <span class="token number">3</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- <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>
- <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">'slideWillChange'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token parameter">page</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>currentPageIndex <span class="token operator">=</span> page<span class="token punctuation">.</span>pageX
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- <span class="token comment">// v2.1.0</span>
- <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">'slidePageChanged'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token parameter">page</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
- console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">'CurrentPage changed to => '</span><span class="token punctuation">,</span> page<span class="token punctuation">)</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token function">_onScrollEnd</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">'CurrentPage => '</span><span class="token punctuation">,</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>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token function">nextPage</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>slide<span class="token punctuation">.</span><span class="token function">next</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token function">prePage</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>slide<span class="token punctuation">.</span><span class="token function">prev</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
- <span class="token punctuation">}</span>
- <span class="token punctuation">}</span>
- <span class="token punctuation">}</span>
- </span></span><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>script</span><span class="token punctuation">></span></span></code></pre></div></div><div class="demo-code-item" style="display:none;"><div class="language-styl extra-class"><pre class="language-styl"><code><style lang=<span class="token string">"stylus"</span> rel=<span class="token string">"stylesheet/stylus"</span>>
- <span class="token selector">.slide-banner</span>
- <span class="token selector">.banner-wrapper</span>
- <span class="token property-declaration"><span class="token property">position</span> relative</span>
- <span class="token selector">.slide-banner-wrapper</span>
- <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>
- <span class="token property-declaration"><span class="token property">overflow</span> hidden</span>
- <span class="token selector">.slide-banner-content</span>
- <span class="token property-declaration"><span class="token property">height</span> <span class="token number">200</span><span class="token unit">px</span></span>
- <span class="token property-declaration"><span class="token property">white-space</span> nowrap</span>
- <span class="token property-declaration"><span class="token property">font-size</span> <span class="token number">0</span></span>
- <span class="token selector">.slide-page</span>
- <span class="token property-declaration"><span class="token property">display</span> inline-block</span>
- <span class="token property-declaration"><span class="token property">height</span> <span class="token number">200</span><span class="token unit">px</span></span>
- <span class="token property-declaration"><span class="token property">width</span> <span class="token number">100</span><span class="token unit">%</span></span>
- <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>
- <span class="token property-declaration"><span class="token property">text-align</span> center</span>
- <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>
- <span class="token selector">&.page1</span>
- <span class="token property-declaration"><span class="token property">background-color</span> <span class="token hexcode">#95B8D1</span></span>
- <span class="token selector">&.page2</span>
- <span class="token property-declaration"><span class="token property">background-color</span> <span class="token hexcode">#DDA789</span></span>
- <span class="token selector">&.page3</span>
- <span class="token property-declaration"><span class="token property">background-color</span> <span class="token hexcode">#C3D899</span></span>
- <span class="token selector">&.page4</span>
- <span class="token property-declaration"><span class="token property">background-color</span> <span class="token hexcode">#F2D4A7</span></span>
- <span class="token selector">.dots-wrapper</span>
- <span class="token property-declaration"><span class="token property">position</span> absolute</span>
- <span class="token property-declaration"><span class="token property">bottom</span> <span class="token number">4</span><span class="token unit">px</span></span>
- <span class="token property-declaration"><span class="token property">left</span> <span class="token number">50</span><span class="token unit">%</span></span>
- <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>
- <span class="token selector">.dot</span>
- <span class="token property-declaration"><span class="token property">display</span> inline-block</span>
- <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>
- <span class="token property-declaration"><span class="token property">width</span> <span class="token number">8</span><span class="token unit">px</span></span>
- <span class="token property-declaration"><span class="token property">height</span> <span class="token number">8</span><span class="token unit">px</span></span>
- <span class="token property-declaration"><span class="token property">border-radius</span> <span class="token number">50</span><span class="token unit">%</span></span>
- <span class="token property-declaration"><span class="token property">background</span> <span class="token hexcode">#eee</span></span>
- <span class="token selector">&.active</span>
- <span class="token property-declaration"><span class="token property">width</span> <span class="token number">20</span><span class="token unit">px</span></span>
- <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>
- <span class="token selector">.btn-wrap</span>
- <span class="token property-declaration"><span class="token property">margin-top</span> <span class="token number">20</span><span class="token unit">px</span></span>
- <span class="token property-declaration"><span class="token property">display</span> flex</span>
- <span class="token property-declaration"><span class="token property">justify-content</span> center</span>
- <span class="token selector">button</span>
- <span class="token property-declaration"><span class="token property">margin</span> <span class="token number">0</span> <span class="token number">10</span><span class="token unit">px</span></span>
- <span class="token property-declaration"><span class="token property">padding</span> <span class="token number">10</span><span class="token unit">px</span></span>
- <span class="token property-declaration"><span class="token property">color</span> <span class="token hexcode">#fff</span></span>
- <span class="token property-declaration"><span class="token property">border-radius</span> <span class="token number">4</span><span class="token unit">px</span></span>
- <span class="token property-declaration"><span class="token property">background-color</span> <span class="token hexcode">#666</span></span>
- </style></code></pre></div></div> <i class="demo-code-content-copy"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="#ccc"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 5H6a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2v-1M8 5a2 2 0 002 2h2a2 2 0 002-2M8 5a2 2 0 012-2h2a2 2 0 012 2m0 0h2a2 2 0 012 2v3m2 4H10m0 0l3-3m-3 3l3 3"></path></svg></i> <!----></div></div> <div class="demo-main"><div class="demo-component-wrap"></div></div></div></li> <li><p><strong>全屏轮播</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> <div class="v-popover"><div class="trigger" style="display:inline-block;"><i class="demo-nav-btn icon-qrcode"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="#666"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 4v1m6 11h2m-6 0h-2v4m0-11v3m0 0h.01M12 12h4.01M16 20h4M4 12h4m12 0h.01M5 8h2a1 1 0 001-1V5a1 1 0 00-1-1H5a1 1 0 00-1 1v2a1 1 0 001 1zm12 0h2a1 1 0 001-1V5a1 1 0 00-1-1h-2a1 1 0 00-1 1v2a1 1 0 001 1zM5 20h2a1 1 0 001-1v-2a1 1 0 00-1-1H5a1 1 0 00-1 1v2a1 1 0 001 1z"></path></svg></i> </div> <div id="popover_f12znucyvc" aria-hidden="true" tabindex="0" class="tooltip popover vue-popover-theme" style="visibility:hidden;"><div class="wrapper"><div class="tooltip-inner popover-inner" style="position:relative;"><div><div></div></div> <div tabindex="-1" class="resize-observer" data-v-8859cc6c></div></div> <div class="tooltip-arrow popover-arrow"></div></div></div></div> <i class="demo-nav-btn icon-preview"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="#666"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"></path></svg></i></div> <div class="demo-code" style="display:none;"><div class="demo-code-nav"><button class="demo-code-btn active">Template</button><button class="demo-code-btn">Script</button><button class="demo-code-btn">Style</button></div> <div class="demo-code-content"><div class="demo-code-item" style="display:;"><div class="language-vue extra-class"><pre class="language-vue"><code><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>template</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>slide-fullpage<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>banner-wrapper<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>slide-banner-wrapper<span class="token punctuation">"</span></span> <span class="token attr-name">ref</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>slide<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>slide-banner-content<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">v-for</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>num in nums<span class="token punctuation">"</span></span> <span class="token attr-name">:key</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>num<span class="token punctuation">"</span></span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>slide-page<span class="token punctuation">"</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">"</span><span class="token punctuation">'</span>page' + num<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>page {{num}}<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>dots-wrapper<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>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">"</span>dot<span class="token punctuation">"</span></span>
- <span class="token attr-name">v-for</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>num in nums<span class="token punctuation">"</span></span>
- <span class="token attr-name">:key</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>num<span class="token punctuation">"</span></span>
- <span class="token attr-name">:class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>{'active': currentPageIndex === (num - 1)}<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>span</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>template</span><span class="token punctuation">></span></span></code></pre></div></div><div class="demo-code-item" style="display:none;"><div class="language-vue extra-class"><pre class="language-vue"><code><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>script</span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>text/ecmascript-6<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><span class="token script"><span class="token language-javascript">
- <span class="token keyword">import</span> BScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
- <span class="token keyword">import</span> Slide <span class="token keyword">from</span> <span class="token string">'@better-scroll/slide'</span>
- BScroll<span class="token punctuation">.</span><span class="token function">use</span><span class="token punctuation">(</span>Slide<span class="token punctuation">)</span>
- <span class="token keyword">export</span> <span class="token keyword">default</span> <span class="token punctuation">{</span>
- <span class="token function">data</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">return</span> <span class="token punctuation">{</span>
- <span class="token literal-property property">nums</span><span class="token operator">:</span> <span class="token number">4</span><span class="token punctuation">,</span>
- <span class="token literal-property property">currentPageIndex</span><span class="token operator">:</span> <span class="token number">0</span>
- <span class="token punctuation">}</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token function">mounted</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span><span class="token function">init</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token function">beforeDestroy</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>slide<span class="token punctuation">.</span><span class="token function">destroy</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token literal-property property">methods</span><span class="token operator">:</span> <span class="token punctuation">{</span>
- <span class="token function">init</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- window<span class="token punctuation">.</span>slide <span class="token operator">=</span> <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>
- <span class="token literal-property property">scrollX</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
- <span class="token literal-property property">scrollY</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
- <span class="token literal-property property">slide</span><span class="token operator">:</span> <span class="token punctuation">{</span>
- <span class="token literal-property property">threshold</span><span class="token operator">:</span> <span class="token number">100</span><span class="token punctuation">,</span>
- <span class="token literal-property property">loop</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
- <span class="token literal-property property">autoplay</span><span class="token operator">:</span> <span class="token boolean">false</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token literal-property property">useTransition</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
- <span class="token literal-property property">momentum</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
- <span class="token literal-property property">bounce</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
- <span class="token literal-property property">stopPropagation</span><span class="token operator">:</span> <span class="token boolean">true</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- <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>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token function">nextPage</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>slide<span class="token punctuation">.</span><span class="token function">next</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token function">prePage</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>slide<span class="token punctuation">.</span><span class="token function">prev</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token function">_onScrollEnd</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <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
- <span class="token keyword">this</span><span class="token punctuation">.</span>currentPageIndex <span class="token operator">=</span> pageIndex
- <span class="token punctuation">}</span>
- <span class="token punctuation">}</span>
- <span class="token punctuation">}</span>
- </span></span><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>script</span><span class="token punctuation">></span></span></code></pre></div></div><div class="demo-code-item" style="display:none;"><div class="language-styl extra-class"><pre class="language-styl"><code><style lang=<span class="token string">"stylus"</span> rel=<span class="token string">"stylesheet/stylus"</span>>
- <span class="token selector">.slide-fullpage</span>
- <span class="token property-declaration"><span class="token property">height</span> <span class="token number">100</span><span class="token unit">%</span></span>
- <span class="token selector">&.view</span>
- <span class="token property-declaration"><span class="token property">padding</span> <span class="token number">0</span></span>
- <span class="token property-declaration"><span class="token property">height</span> <span class="token number">100</span><span class="token unit">%</span></span>
- <span class="token selector">.banner-wrapper</span>
- <span class="token property-declaration"><span class="token property">position</span> relative</span>
- <span class="token property-declaration"><span class="token property">height</span> <span class="token number">100</span><span class="token unit">%</span></span>
- <span class="token selector">.slide-banner-wrapper</span>
- <span class="token property-declaration"><span class="token property">height</span> <span class="token number">100</span><span class="token unit">%</span></span>
- <span class="token property-declaration"><span class="token property">overflow</span> hidden</span>
- <span class="token selector">.slide-banner-content</span>
- <span class="token property-declaration"><span class="token property">height</span> <span class="token number">100</span><span class="token unit">%</span></span>
- <span class="token property-declaration"><span class="token property">white-space</span> nowrap</span>
- <span class="token property-declaration"><span class="token property">font-size</span> <span class="token number">0</span></span>
- <span class="token selector">.slide-page</span>
- <span class="token property-declaration"><span class="token property">display</span> inline-block</span>
- <span class="token property-declaration"><span class="token property">height</span> <span class="token number">100</span><span class="token unit">%</span></span>
- <span class="token property-declaration"><span class="token property">width</span> <span class="token number">100</span><span class="token unit">%</span></span>
- <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>
- <span class="token property-declaration"><span class="token property">text-align</span> center</span>
- <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>
- <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>
- <span class="token property-declaration"><span class="token property">backface-visibility</span> hidden</span>
- <span class="token selector">&.page1</span>
- <span class="token property-declaration"><span class="token property">background-color</span> <span class="token hexcode">#95B8D1</span></span>
- <span class="token selector">&.page2</span>
- <span class="token property-declaration"><span class="token property">background-color</span> <span class="token hexcode">#DDA789</span></span>
- <span class="token selector">&.page3</span>
- <span class="token property-declaration"><span class="token property">background-color</span> <span class="token hexcode">#C3D899</span></span>
- <span class="token selector">&.page4</span>
- <span class="token property-declaration"><span class="token property">background-color</span> <span class="token hexcode">#F2D4A7</span></span>
- <span class="token selector">.dots-wrapper</span>
- <span class="token property-declaration"><span class="token property">position</span> absolute</span>
- <span class="token property-declaration"><span class="token property">bottom</span> <span class="token number">4</span><span class="token unit">px</span></span>
- <span class="token property-declaration"><span class="token property">left</span> <span class="token number">50</span><span class="token unit">%</span></span>
- <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>
- <span class="token selector">.dot</span>
- <span class="token property-declaration"><span class="token property">display</span> inline-block</span>
- <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>
- <span class="token property-declaration"><span class="token property">width</span> <span class="token number">8</span><span class="token unit">px</span></span>
- <span class="token property-declaration"><span class="token property">height</span> <span class="token number">8</span><span class="token unit">px</span></span>
- <span class="token property-declaration"><span class="token property">border-radius</span> <span class="token number">50</span><span class="token unit">%</span></span>
- <span class="token property-declaration"><span class="token property">background</span> <span class="token hexcode">#eee</span></span>
- <span class="token selector">&.active</span>
- <span class="token property-declaration"><span class="token property">width</span> <span class="token number">20</span><span class="token unit">px</span></span>
- <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>
- <span class="token selector">.btn-wrap</span>
- <span class="token property-declaration"><span class="token property">margin-top</span> <span class="token number">20</span><span class="token unit">px</span></span>
- <span class="token property-declaration"><span class="token property">display</span> flex</span>
- <span class="token property-declaration"><span class="token property">justify-content</span> center</span>
- <span class="token selector">button</span>
- <span class="token property-declaration"><span class="token property">margin</span> <span class="token number">0</span> <span class="token number">10</span><span class="token unit">px</span></span>
- <span class="token property-declaration"><span class="token property">padding</span> <span class="token number">10</span><span class="token unit">px</span></span>
- <span class="token property-declaration"><span class="token property">color</span> <span class="token hexcode">#fff</span></span>
- <span class="token property-declaration"><span class="token property">border-radius</span> <span class="token number">4</span><span class="token unit">px</span></span>
- <span class="token property-declaration"><span class="token property">background-color</span> <span class="token hexcode">#666</span></span>
- </style></code></pre></div></div> <i class="demo-code-content-copy"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="#ccc"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 5H6a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2v-1M8 5a2 2 0 002 2h2a2 2 0 002-2M8 5a2 2 0 012-2h2a2 2 0 012 2m0 0h2a2 2 0 012 2v3m2 4H10m0 0l3-3m-3 3l3 3"></path></svg></i> <!----></div></div> <div class="demo-main"><div class="demo-component-wrap"></div></div></div></li> <li><p><strong>纵向轮播</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> <div class="v-popover"><div class="trigger" style="display:inline-block;"><i class="demo-nav-btn icon-qrcode"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="#666"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 4v1m6 11h2m-6 0h-2v4m0-11v3m0 0h.01M12 12h4.01M16 20h4M4 12h4m12 0h.01M5 8h2a1 1 0 001-1V5a1 1 0 00-1-1H5a1 1 0 00-1 1v2a1 1 0 001 1zm12 0h2a1 1 0 001-1V5a1 1 0 00-1-1h-2a1 1 0 00-1 1v2a1 1 0 001 1zM5 20h2a1 1 0 001-1v-2a1 1 0 00-1-1H5a1 1 0 00-1 1v2a1 1 0 001 1z"></path></svg></i> </div> <div id="popover_zpntervhuc" aria-hidden="true" tabindex="0" class="tooltip popover vue-popover-theme" style="visibility:hidden;"><div class="wrapper"><div class="tooltip-inner popover-inner" style="position:relative;"><div><div></div></div> <div tabindex="-1" class="resize-observer" data-v-8859cc6c></div></div> <div class="tooltip-arrow popover-arrow"></div></div></div></div> <i class="demo-nav-btn icon-preview"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="#666"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"></path></svg></i></div> <div class="demo-code" style="display:none;"><div class="demo-code-nav"><button class="demo-code-btn active">Template</button><button class="demo-code-btn">Script</button><button class="demo-code-btn">Style</button></div> <div class="demo-code-content"><div class="demo-code-item" style="display:;"><div class="language-vue extra-class"><pre class="language-vue"><code><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>template</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>slide-vertical<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>vertical-wrapper<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>slide-vertical-wrapper<span class="token punctuation">"</span></span> <span class="token attr-name">ref</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>slide<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>slide-vertical-content<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">v-for</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>num in nums<span class="token punctuation">"</span></span> <span class="token attr-name">:key</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>num<span class="token punctuation">"</span></span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>slide-page<span class="token punctuation">"</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">"</span><span class="token punctuation">'</span>page' + num<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>page {{num}}<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>dots-wrapper<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>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">"</span>dot<span class="token punctuation">"</span></span>
- <span class="token attr-name">v-for</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>num in nums<span class="token punctuation">"</span></span>
- <span class="token attr-name">:key</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>num<span class="token punctuation">"</span></span>
- <span class="token attr-name">:class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>{'active': currentPageIndex === (num - 1)}<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>span</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>template</span><span class="token punctuation">></span></span></code></pre></div></div><div class="demo-code-item" style="display:none;"><div class="language-vue extra-class"><pre class="language-vue"><code><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>script</span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>text/ecmascript-6<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><span class="token script"><span class="token language-javascript">
- <span class="token keyword">import</span> BScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
- <span class="token keyword">import</span> Slide <span class="token keyword">from</span> <span class="token string">'@better-scroll/slide'</span>
- BScroll<span class="token punctuation">.</span><span class="token function">use</span><span class="token punctuation">(</span>Slide<span class="token punctuation">)</span>
- <span class="token keyword">export</span> <span class="token keyword">default</span> <span class="token punctuation">{</span>
- <span class="token function">data</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">return</span> <span class="token punctuation">{</span>
- <span class="token literal-property property">nums</span><span class="token operator">:</span> <span class="token number">4</span><span class="token punctuation">,</span>
- <span class="token literal-property property">currentPageIndex</span><span class="token operator">:</span> <span class="token number">0</span>
- <span class="token punctuation">}</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token function">mounted</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span><span class="token function">init</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token function">beforeDestroy</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>slide<span class="token punctuation">.</span><span class="token function">destroy</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token literal-property property">methods</span><span class="token operator">:</span> <span class="token punctuation">{</span>
- <span class="token function">init</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>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>
- <span class="token literal-property property">scrollX</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
- <span class="token literal-property property">scrollY</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
- <span class="token literal-property property">slide</span><span class="token operator">:</span> <span class="token punctuation">{</span>
- <span class="token literal-property property">threshold</span><span class="token operator">:</span> <span class="token number">100</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token literal-property property">useTransition</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
- <span class="token literal-property property">momentum</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
- <span class="token literal-property property">bounce</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
- <span class="token literal-property property">stopPropagation</span><span class="token operator">:</span> <span class="token boolean">true</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- <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>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token function">_onScrollEnd</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <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
- <span class="token keyword">this</span><span class="token punctuation">.</span>currentPageIndex <span class="token operator">=</span> pageIndex
- <span class="token punctuation">}</span>
- <span class="token punctuation">}</span>
- <span class="token punctuation">}</span>
- </span></span><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>script</span><span class="token punctuation">></span></span></code></pre></div></div><div class="demo-code-item" style="display:none;"><div class="language-styl extra-class"><pre class="language-styl"><code><style lang=<span class="token string">"stylus"</span> rel=<span class="token string">"stylesheet/stylus"</span>>
- <span class="token selector">.slide-vertical</span>
- <span class="token property-declaration"><span class="token property">height</span> <span class="token number">100</span><span class="token unit">%</span></span>
- <span class="token selector">&.view</span>
- <span class="token property-declaration"><span class="token property">padding</span> <span class="token number">0</span></span>
- <span class="token property-declaration"><span class="token property">height</span> <span class="token number">100</span><span class="token unit">%</span></span>
- <span class="token selector">.vertical-wrapper</span>
- <span class="token property-declaration"><span class="token property">position</span> relative</span>
- <span class="token property-declaration"><span class="token property">height</span> <span class="token number">100</span><span class="token unit">%</span></span>
- <span class="token property-declaration"><span class="token property">font-size</span> <span class="token number">0</span></span>
- <span class="token selector">.slide-vertical-wrapper</span>
- <span class="token property-declaration"><span class="token property">height</span> <span class="token number">100</span><span class="token unit">%</span></span>
- <span class="token property-declaration"><span class="token property">overflow</span> hidden</span>
- <span class="token selector">.slide-page</span>
- <span class="token property-declaration"><span class="token property">display</span> inline-block</span>
- <span class="token property-declaration"><span class="token property">width</span> <span class="token number">100</span><span class="token unit">%</span></span>
- <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>
- <span class="token property-declaration"><span class="token property">text-align</span> center</span>
- <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>
- <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>
- <span class="token property-declaration"><span class="token property">backface-visibility</span> hidden</span>
- <span class="token selector">&.page1</span>
- <span class="token property-declaration"><span class="token property">background-color</span> <span class="token hexcode">#D6EADF</span></span>
- <span class="token selector">&.page2</span>
- <span class="token property-declaration"><span class="token property">background-color</span> <span class="token hexcode">#DDA789</span></span>
- <span class="token selector">&.page3</span>
- <span class="token property-declaration"><span class="token property">background-color</span> <span class="token hexcode">#C3D899</span></span>
- <span class="token selector">&.page4</span>
- <span class="token property-declaration"><span class="token property">background-color</span> <span class="token hexcode">#F2D4A7</span></span>
- <span class="token selector">.dots-wrapper</span>
- <span class="token property-declaration"><span class="token property">position</span> absolute</span>
- <span class="token property-declaration"><span class="token property">right</span> <span class="token number">4</span><span class="token unit">px</span></span>
- <span class="token property-declaration"><span class="token property">top</span> <span class="token number">50</span><span class="token unit">%</span></span>
- <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>
- <span class="token selector">.dot</span>
- <span class="token property-declaration"><span class="token property">display</span> block</span>
- <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>
- <span class="token property-declaration"><span class="token property">width</span> <span class="token number">8</span><span class="token unit">px</span></span>
- <span class="token property-declaration"><span class="token property">height</span> <span class="token number">8</span><span class="token unit">px</span></span>
- <span class="token property-declaration"><span class="token property">border-radius</span> <span class="token number">50</span><span class="token unit">%</span></span>
- <span class="token property-declaration"><span class="token property">background</span> <span class="token hexcode">#eee</span></span>
- <span class="token selector">&.active</span>
- <span class="token property-declaration"><span class="token property">height</span> <span class="token number">20</span><span class="token unit">px</span></span>
- <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>
- </style></code></pre></div></div> <i class="demo-code-content-copy"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="#ccc"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 5H6a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2v-1M8 5a2 2 0 002 2h2a2 2 0 002-2M8 5a2 2 0 012-2h2a2 2 0 012 2m0 0h2a2 2 0 012 2v3m2 4H10m0 0l3-3m-3 3l3 3"></path></svg></i> <!----></div></div> <div class="demo-main"><div class="demo-component-wrap"></div></div></div></li> <li><p><strong>动态卡片轮播 <span class="badge tip" style="vertical-align:top;" data-v-15b7b770>2.1.0</span></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> <div class="v-popover"><div class="trigger" style="display:inline-block;"><i class="demo-nav-btn icon-qrcode"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="#666"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 4v1m6 11h2m-6 0h-2v4m0-11v3m0 0h.01M12 12h4.01M16 20h4M4 12h4m12 0h.01M5 8h2a1 1 0 001-1V5a1 1 0 00-1-1H5a1 1 0 00-1 1v2a1 1 0 001 1zm12 0h2a1 1 0 001-1V5a1 1 0 00-1-1h-2a1 1 0 00-1 1v2a1 1 0 001 1zM5 20h2a1 1 0 001-1v-2a1 1 0 00-1-1H5a1 1 0 00-1 1v2a1 1 0 001 1z"></path></svg></i> </div> <div id="popover_qb4r7wunup" aria-hidden="true" tabindex="0" class="tooltip popover vue-popover-theme" style="visibility:hidden;"><div class="wrapper"><div class="tooltip-inner popover-inner" style="position:relative;"><div><div></div></div> <div tabindex="-1" class="resize-observer" data-v-8859cc6c></div></div> <div class="tooltip-arrow popover-arrow"></div></div></div></div> <i class="demo-nav-btn icon-preview"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="#666"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"></path></svg></i></div> <div class="demo-code" style="display:none;"><div class="demo-code-nav"><button class="demo-code-btn active">Template</button><button class="demo-code-btn">Script</button><button class="demo-code-btn">Style</button></div> <div class="demo-code-content"><div class="demo-code-item" style="display:;"><div class="language-vue extra-class"><pre class="language-vue"><code><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>template</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>dynamic-slide-banner<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>banner-wrapper<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>slide-banner-wrapper<span class="token punctuation">"</span></span> <span class="token attr-name">ref</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>slide<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>slide-banner-content<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">v-for</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>num in nums<span class="token punctuation">"</span></span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>slide-page<span class="token punctuation">"</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">"</span><span class="token punctuation">'</span>page' + num<span class="token punctuation">"</span></span> <span class="token attr-name">:key</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>num<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>page {{num}}<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>dots-wrapper<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>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">"</span>dot<span class="token punctuation">"</span></span>
- <span class="token attr-name">v-for</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>num in nums<span class="token punctuation">"</span></span>
- <span class="token attr-name">:key</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>num<span class="token punctuation">"</span></span>
- <span class="token attr-name">:class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>{'active': currentPageIndex === (num - 1)}<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>span</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>btn-wrap<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>button</span> <span class="token attr-name">@click</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>increase<span class="token punctuation">"</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">"</span>increase<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>increase<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>button</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>button</span> <span class="token attr-name">@click</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>decrease<span class="token punctuation">"</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">"</span>decrease<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>decrease<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>button</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>template</span><span class="token punctuation">></span></span></code></pre></div></div><div class="demo-code-item" style="display:none;"><div class="language-vue extra-class"><pre class="language-vue"><code><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>script</span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>text/ecmascript-6<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><span class="token script"><span class="token language-javascript">
- <span class="token keyword">import</span> BScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
- <span class="token keyword">import</span> Slide <span class="token keyword">from</span> <span class="token string">'@better-scroll/slide'</span>
- BScroll<span class="token punctuation">.</span><span class="token function">use</span><span class="token punctuation">(</span>Slide<span class="token punctuation">)</span>
- <span class="token keyword">export</span> <span class="token keyword">default</span> <span class="token punctuation">{</span>
- <span class="token function">data</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">return</span> <span class="token punctuation">{</span>
- <span class="token literal-property property">nums</span><span class="token operator">:</span> <span class="token number">1</span><span class="token punctuation">,</span>
- <span class="token literal-property property">currentPageIndex</span><span class="token operator">:</span> <span class="token number">0</span>
- <span class="token punctuation">}</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token function">mounted</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span><span class="token function">init</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token function">beforeDestroy</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>slide<span class="token punctuation">.</span><span class="token function">destroy</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token literal-property property">methods</span><span class="token operator">:</span> <span class="token punctuation">{</span>
- <span class="token function">increase</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>nums <span class="token operator">+=</span> <span class="token number">1</span>
- <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">=></span> <span class="token punctuation">{</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>slide<span class="token punctuation">.</span><span class="token function">refresh</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token function">decrease</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>nums <span class="token operator">-=</span> <span class="token number">1</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>nums <span class="token operator">=</span> Math<span class="token punctuation">.</span><span class="token function">max</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">,</span> <span class="token keyword">this</span><span class="token punctuation">.</span>nums<span class="token punctuation">)</span> <span class="token comment">// at least one page</span>
- <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">=></span> <span class="token punctuation">{</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>slide<span class="token punctuation">.</span><span class="token function">refresh</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token function">init</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- window<span class="token punctuation">.</span>slide <span class="token operator">=</span> <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>
- <span class="token literal-property property">scrollX</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
- <span class="token literal-property property">scrollY</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
- <span class="token literal-property property">slide</span><span class="token operator">:</span> <span class="token punctuation">{</span>
- <span class="token literal-property property">autoplay</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
- <span class="token literal-property property">loop</span><span class="token operator">:</span> <span class="token boolean">true</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token literal-property property">momentum</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
- <span class="token literal-property property">bounce</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
- <span class="token literal-property property">probeType</span><span class="token operator">:</span> <span class="token number">3</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- <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>
- <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">'slideWillChange'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token parameter">page</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
- console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">'【slideWillChange】CurrentPage =>'</span><span class="token punctuation">,</span> page<span class="token punctuation">)</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>currentPageIndex <span class="token operator">=</span> page<span class="token punctuation">.</span>pageX
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- <span class="token comment">// v2.1.0</span>
- <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">'slidePageChanged'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token parameter">page</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
- console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">'【slidePageChanged】CurrentPage =>'</span><span class="token punctuation">,</span> page<span class="token punctuation">)</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token function">_onScrollEnd</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">'【scrollEnd】CurrentPage =>'</span><span class="token punctuation">,</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>
- <span class="token punctuation">}</span>
- <span class="token punctuation">}</span>
- <span class="token punctuation">}</span>
- </span></span><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>script</span><span class="token punctuation">></span></span></code></pre></div></div><div class="demo-code-item" style="display:none;"><div class="language-styl extra-class"><pre class="language-styl"><code><span class="token selector"><style lang="stylus" rel="stylesheet/stylus">
- .dynamic-slide-banner</span>
- <span class="token selector">.banner-wrapper</span>
- <span class="token property-declaration"><span class="token property">position</span> relative</span>
- <span class="token selector">.slide-banner-wrapper</span>
- <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>
- <span class="token property-declaration"><span class="token property">overflow</span> hidden</span>
- <span class="token selector">.slide-banner-content</span>
- <span class="token property-declaration"><span class="token property">height</span> <span class="token number">200</span><span class="token unit">px</span></span>
- <span class="token property-declaration"><span class="token property">white-space</span> nowrap</span>
- <span class="token property-declaration"><span class="token property">font-size</span> <span class="token number">0</span></span>
- <span class="token selector">.slide-page</span>
- <span class="token property-declaration"><span class="token property">display</span> inline-block</span>
- <span class="token property-declaration"><span class="token property">height</span> <span class="token number">200</span><span class="token unit">px</span></span>
- <span class="token property-declaration"><span class="token property">width</span> <span class="token number">100</span><span class="token unit">%</span></span>
- <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>
- <span class="token property-declaration"><span class="token property">text-align</span> center</span>
- <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>
- <span class="token selector">&.page1</span>
- <span class="token property-declaration"><span class="token property">background-color</span> <span class="token hexcode">#95B8D1</span></span>
- <span class="token selector">&.page2</span>
- <span class="token property-declaration"><span class="token property">background-color</span> <span class="token hexcode">#DDA789</span></span>
- <span class="token selector">&.page3</span>
- <span class="token property-declaration"><span class="token property">background-color</span> <span class="token hexcode">#C3D899</span></span>
- <span class="token selector">&.page4</span>
- <span class="token property-declaration"><span class="token property">background-color</span> <span class="token hexcode">#F2D4A7</span></span>
- <span class="token selector">&.page5</span>
- <span class="token property-declaration"><span class="token property">background-color</span> <span class="token hexcode">#E71D36</span></span>
- <span class="token selector">&.page6</span>
- <span class="token property-declaration"><span class="token property">background-color</span> <span class="token hexcode">#2EC4B6</span></span>
- <span class="token selector">&.page7</span>
- <span class="token property-declaration"><span class="token property">background-color</span> <span class="token hexcode">#EFFFE9</span></span>
- <span class="token selector">&.page8</span>
- <span class="token property-declaration"><span class="token property">background-color</span> <span class="token hexcode">#011627</span></span>
- <span class="token selector">.dots-wrapper</span>
- <span class="token property-declaration"><span class="token property">position</span> absolute</span>
- <span class="token property-declaration"><span class="token property">bottom</span> <span class="token number">4</span><span class="token unit">px</span></span>
- <span class="token property-declaration"><span class="token property">left</span> <span class="token number">50</span><span class="token unit">%</span></span>
- <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>
- <span class="token selector">.dot</span>
- <span class="token property-declaration"><span class="token property">display</span> inline-block</span>
- <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>
- <span class="token property-declaration"><span class="token property">width</span> <span class="token number">8</span><span class="token unit">px</span></span>
- <span class="token property-declaration"><span class="token property">height</span> <span class="token number">8</span><span class="token unit">px</span></span>
- <span class="token property-declaration"><span class="token property">border-radius</span> <span class="token number">50</span><span class="token unit">%</span></span>
- <span class="token property-declaration"><span class="token property">background</span> <span class="token hexcode">#eee</span></span>
- <span class="token selector">&.active</span>
- <span class="token property-declaration"><span class="token property">width</span> <span class="token number">20</span><span class="token unit">px</span></span>
- <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>
- <span class="token selector">.btn-wrap</span>
- <span class="token property-declaration"><span class="token property">margin-top</span> <span class="token number">20</span><span class="token unit">px</span></span>
- <span class="token property-declaration"><span class="token property">display</span> flex</span>
- <span class="token property-declaration"><span class="token property">justify-content</span> center</span>
- <span class="token selector">button</span>
- <span class="token property-declaration"><span class="token property">margin</span> <span class="token number">0</span> <span class="token number">10</span><span class="token unit">px</span></span>
- <span class="token property-declaration"><span class="token property">padding</span> <span class="token number">10</span><span class="token unit">px</span></span>
- <span class="token property-declaration"><span class="token property">color</span> <span class="token hexcode">#fff</span></span>
- <span class="token property-declaration"><span class="token property">border-radius</span> <span class="token number">4</span><span class="token unit">px</span></span>
- <span class="token property-declaration"><span class="token property">background-color</span> <span class="token hexcode">#666</span></span>
- </style></code></pre></div></div> <i class="demo-code-content-copy"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="#ccc"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 5H6a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2v-1M8 5a2 2 0 002 2h2a2 2 0 002-2M8 5a2 2 0 012-2h2a2 2 0 012 2m0 0h2a2 2 0 012 2v3m2 4H10m0 0l3-3m-3 3l3 3"></path></svg></i> <!----></div></div> <div class="demo-main"><div class="demo-component-wrap"></div></div></div></li> <li><p><strong>初始化索引轮播 <span class="badge tip" style="vertical-align:top;" data-v-15b7b770>2.3.0</span></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> <div class="v-popover"><div class="trigger" style="display:inline-block;"><i class="demo-nav-btn icon-qrcode"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="#666"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 4v1m6 11h2m-6 0h-2v4m0-11v3m0 0h.01M12 12h4.01M16 20h4M4 12h4m12 0h.01M5 8h2a1 1 0 001-1V5a1 1 0 00-1-1H5a1 1 0 00-1 1v2a1 1 0 001 1zm12 0h2a1 1 0 001-1V5a1 1 0 00-1-1h-2a1 1 0 00-1 1v2a1 1 0 001 1zM5 20h2a1 1 0 001-1v-2a1 1 0 00-1-1H5a1 1 0 00-1 1v2a1 1 0 001 1z"></path></svg></i> </div> <div id="popover_os8uubrojc" aria-hidden="true" tabindex="0" class="tooltip popover vue-popover-theme" style="visibility:hidden;"><div class="wrapper"><div class="tooltip-inner popover-inner" style="position:relative;"><div><div></div></div> <div tabindex="-1" class="resize-observer" data-v-8859cc6c></div></div> <div class="tooltip-arrow popover-arrow"></div></div></div></div> <i class="demo-nav-btn icon-preview"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="#666"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"></path></svg></i></div> <div class="demo-code" style="display:none;"><div class="demo-code-nav"><button class="demo-code-btn active">Template</button><button class="demo-code-btn">Script</button><button class="demo-code-btn">Style</button></div> <div class="demo-code-content"><div class="demo-code-item" style="display:;"><div class="language-vue extra-class"><pre class="language-vue"><code><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>template</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>slide-specified-index<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>banner-wrapper<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>slide-specified-wrapper<span class="token punctuation">"</span></span> <span class="token attr-name">ref</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>slide<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>slide-specified-content<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">v-for</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>num in nums<span class="token punctuation">"</span></span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>slide-page<span class="token punctuation">"</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">"</span><span class="token punctuation">'</span>page' + num<span class="token punctuation">"</span></span> <span class="token attr-name">:key</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>num<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>page {{num}}<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>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">"</span>slideCreated<span class="token punctuation">"</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">"</span>description<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>currentPageIndex is {{slide.getCurrentPage().pageX}}<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>div</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>btn-wrap<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>button</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>next<span class="token punctuation">"</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">"</span>nextPage<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>nextPage<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>button</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>button</span> <span class="token attr-name">class</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>prev<span class="token punctuation">"</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">"</span>prePage<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>prePage<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>button</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>div</span><span class="token punctuation">></span></span>
- <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>template</span><span class="token punctuation">></span></span></code></pre></div></div><div class="demo-code-item" style="display:none;"><div class="language-vue extra-class"><pre class="language-vue"><code><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>script</span> <span class="token attr-name">type</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>text/ecmascript-6<span class="token punctuation">"</span></span><span class="token punctuation">></span></span><span class="token script"><span class="token language-javascript">
- <span class="token keyword">import</span> BScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
- <span class="token keyword">import</span> Slide <span class="token keyword">from</span> <span class="token string">'@better-scroll/slide'</span>
- BScroll<span class="token punctuation">.</span><span class="token function">use</span><span class="token punctuation">(</span>Slide<span class="token punctuation">)</span>
- <span class="token keyword">export</span> <span class="token keyword">default</span> <span class="token punctuation">{</span>
- <span class="token function">data</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">return</span> <span class="token punctuation">{</span>
- <span class="token literal-property property">slideCreated</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
- <span class="token literal-property property">nums</span><span class="token operator">:</span> <span class="token number">4</span><span class="token punctuation">,</span>
- <span class="token literal-property property">currentPageIndex</span><span class="token operator">:</span> <span class="token number">0</span>
- <span class="token punctuation">}</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token function">mounted</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span><span class="token function">init</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>slideCreated <span class="token operator">=</span> <span class="token boolean">true</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token function">beforeDestroy</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>slide<span class="token punctuation">.</span><span class="token function">destroy</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token literal-property property">methods</span><span class="token operator">:</span> <span class="token punctuation">{</span>
- <span class="token function">init</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>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>
- <span class="token literal-property property">scrollX</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
- <span class="token literal-property property">scrollY</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
- <span class="token literal-property property">slide</span><span class="token operator">:</span> <span class="token punctuation">{</span>
- <span class="token literal-property property">autoplay</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
- <span class="token literal-property property">loop</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
- <span class="token literal-property property">startPageXIndex</span><span class="token operator">:</span> <span class="token number">2</span> <span class="token comment">// v2.3.0</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token literal-property property">momentum</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
- <span class="token literal-property property">bounce</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
- <span class="token literal-property property">probeType</span><span class="token operator">:</span> <span class="token number">3</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- <span class="token comment">// v2.1.0</span>
- <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">'slidePageChanged'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token parameter">page</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
- console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span><span class="token string">'CurrentPage changed to => '</span><span class="token punctuation">,</span> page<span class="token punctuation">)</span>
- <span class="token comment">// always get the currentPageIndex, because slide is not reactive</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span><span class="token function">$forceUpdate</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token function">nextPage</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>slide<span class="token punctuation">.</span><span class="token function">next</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token function">prePage</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">this</span><span class="token punctuation">.</span>slide<span class="token punctuation">.</span><span class="token function">prev</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
- <span class="token punctuation">}</span>
- <span class="token punctuation">}</span>
- <span class="token punctuation">}</span>
- </span></span><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>script</span><span class="token punctuation">></span></span></code></pre></div></div><div class="demo-code-item" style="display:none;"><div class="language-styl extra-class"><pre class="language-styl"><code><style lang=<span class="token string">"stylus"</span> rel=<span class="token string">"stylesheet/stylus"</span>>
- <span class="token selector">.slide-specified-index</span>
- <span class="token selector">.banner-wrapper</span>
- <span class="token property-declaration"><span class="token property">position</span> relative</span>
- <span class="token selector">.slide-specified-wrapper</span>
- <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>
- <span class="token property-declaration"><span class="token property">overflow</span> hidden</span>
- <span class="token selector">.slide-specified-content</span>
- <span class="token property-declaration"><span class="token property">height</span> <span class="token number">200</span><span class="token unit">px</span></span>
- <span class="token property-declaration"><span class="token property">white-space</span> nowrap</span>
- <span class="token property-declaration"><span class="token property">font-size</span> <span class="token number">0</span></span>
- <span class="token selector">.slide-page</span>
- <span class="token property-declaration"><span class="token property">display</span> inline-block</span>
- <span class="token property-declaration"><span class="token property">height</span> <span class="token number">200</span><span class="token unit">px</span></span>
- <span class="token property-declaration"><span class="token property">width</span> <span class="token number">100</span><span class="token unit">%</span></span>
- <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>
- <span class="token property-declaration"><span class="token property">text-align</span> center</span>
- <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>
- <span class="token selector">&.page1</span>
- <span class="token property-declaration"><span class="token property">background-color</span> <span class="token hexcode">#95B8D1</span></span>
- <span class="token selector">&.page2</span>
- <span class="token property-declaration"><span class="token property">background-color</span> <span class="token hexcode">#DDA789</span></span>
- <span class="token selector">&.page3</span>
- <span class="token property-declaration"><span class="token property">background-color</span> <span class="token hexcode">#C3D899</span></span>
- <span class="token selector">&.page4</span>
- <span class="token property-declaration"><span class="token property">background-color</span> <span class="token hexcode">#F2D4A7</span></span>
- <span class="token selector">.description</span>
- <span class="token property-declaration"><span class="token property">text-align</span> center</span>
- <span class="token selector">.btn-wrap</span>
- <span class="token property-declaration"><span class="token property">margin-top</span> <span class="token number">20</span><span class="token unit">px</span></span>
- <span class="token property-declaration"><span class="token property">display</span> flex</span>
- <span class="token property-declaration"><span class="token property">justify-content</span> center</span>
- <span class="token selector">button</span>
- <span class="token property-declaration"><span class="token property">margin</span> <span class="token number">0</span> <span class="token number">10</span><span class="token unit">px</span></span>
- <span class="token property-declaration"><span class="token property">padding</span> <span class="token number">10</span><span class="token unit">px</span></span>
- <span class="token property-declaration"><span class="token property">color</span> <span class="token hexcode">#fff</span></span>
- <span class="token property-declaration"><span class="token property">border-radius</span> <span class="token number">4</span><span class="token unit">px</span></span>
- <span class="token property-declaration"><span class="token property">background-color</span> <span class="token hexcode">#666</span></span>
- </style></code></pre></div></div> <i class="demo-code-content-copy"><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="#ccc"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 5H6a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2v-1M8 5a2 2 0 002 2h2a2 2 0 002-2M8 5a2 2 0 012-2h2a2 2 0 012 2m0 0h2a2 2 0 012 2v3m2 4H10m0 0l3-3m-3 3l3 3"></path></svg></i> <!----></div></div> <div class="demo-main"><div class="demo-component-wrap"></div></div></div> <div class="custom-block tip"><p class="custom-block-title">TIP</p> <p>注意:当设置 <code>useTransition = true</code>时,可能在 iphone 某些系统上出现闪烁。你需要像上面 demo 中的代码一样,每个 <code>slide-page</code> 额外增加下面两个样式:</p> <div class="language-css extra-class"><pre class="language-css"><code> <span class="token property">transform</span><span class="token punctuation">:</span> <span class="token function">translate3d</span><span class="token punctuation">(</span>0<span class="token punctuation">,</span>0<span class="token punctuation">,</span>0<span class="token punctuation">)</span>
- <span class="token property">backface-visibility</span><span class="token punctuation">:</span> hidden
- </code></pre></div></div></li></ul> <h2 id="slide-选项对象"><a href="#slide-选项对象" class="header-anchor">#</a> slide 选项对象</h2> <div class="custom-block tip"><p class="custom-block-title">提示</p> <p>当 slide 配置为 true 的时候,插件内部使用的是默认的插件选项对象。</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>
- <span class="token literal-property property">slide</span><span class="token operator">:</span> <span class="token boolean">true</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- <span class="token comment">// 相当于</span>
- <span class="token keyword">const</span> bs <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">BScroll</span><span class="token punctuation">(</span><span class="token string">'.wrapper'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span>
- <span class="token literal-property property">slide</span><span class="token operator">:</span> <span class="token punctuation">{</span>
- <span class="token literal-property property">loop</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
- <span class="token literal-property property">threshold</span><span class="token operator">:</span> <span class="token number">0.1</span><span class="token punctuation">,</span>
- <span class="token literal-property property">speed</span><span class="token operator">:</span> <span class="token number">400</span><span class="token punctuation">,</span>
- <span class="token literal-property property">easing</span><span class="token operator">:</span> ease<span class="token punctuation">.</span>bounce<span class="token punctuation">,</span>
- <span class="token literal-property property">listenFlick</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
- <span class="token literal-property property">autoplay</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
- <span class="token literal-property property">interval</span><span class="token operator">:</span> <span class="token number">3000</span>
- <span class="token punctuation">}</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></div> <h3 id="loop"><a href="#loop" class="header-anchor">#</a> loop</h3> <ul><li><strong>类型</strong>:<code>boolean</code></li> <li><strong>默认值</strong>:<code>true</code></li></ul> <p>是否可以循环。但是当只有一个元素的时候,该设置不生效。</p> <h3 id="autoplay"><a href="#autoplay" class="header-anchor">#</a> autoplay</h3> <ul><li><strong>类型</strong>:<code>boolean</code></li> <li><strong>默认值</strong>:<code>true</code></li></ul> <p>是否开启自动播放。</p> <h3 id="interval"><a href="#interval" class="header-anchor">#</a> interval</h3> <ul><li><strong>类型</strong>:<code>number</code></li> <li><strong>默认值</strong>:<code>3000</code></li></ul> <p>距离下一次播放的间隔。</p> <h3 id="speed"><a href="#speed" class="header-anchor">#</a> speed</h3> <ul><li><strong>类型</strong>:<code>number</code></li> <li><strong>默认值</strong>:<code>400</code></li></ul> <p>切换 Page 动画的默认时长。</p> <h3 id="easing"><a href="#easing" class="header-anchor">#</a> easing</h3> <ul><li><strong>类型</strong>:<code>EaseItem</code> <ul><li><code>{ string } style</code>:用来设置过度动画的 <code>transition-timing-function</code> 值。</li> <li><code>{ Function } fn</code>:当设置 <code>useTransition:false</code> 时,由 <code>easing.fn</code> 来确定动画曲线。</li></ul></li> <li><strong>默认值</strong>:</li></ul> <div class="language-js extra-class"><pre class="language-js"><code><span class="token punctuation">{</span>
- <span class="token literal-property property">style</span><span class="token operator">:</span> <span class="token string">'cubic-bezier(0.165, 0.84, 0.44, 1)'</span><span class="token punctuation">,</span>
- <span class="token function-variable function">fn</span><span class="token operator">:</span> <span class="token keyword">function</span><span class="token punctuation">(</span><span class="token parameter"><span class="token literal-property property">t</span><span class="token operator">:</span> number</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
- <span class="token keyword">return</span> <span class="token number">1</span> <span class="token operator">-</span> <span class="token operator">--</span>t <span class="token operator">*</span> t <span class="token operator">*</span> t <span class="token operator">*</span> t
- <span class="token punctuation">}</span>
- <span class="token punctuation">}</span>
- </code></pre></div><p>滚动的缓动效果配置。</p> <h3 id="listenflick"><a href="#listenflick" class="header-anchor">#</a> listenFlick</h3> <ul><li><strong>类型</strong>:<code>boolean</code></li> <li><strong>默认值</strong>:<code>true</code></li></ul> <p>当快速轻抚过 slide 区域时,会触发切换上一页/下一页。设置 listenFlick 为 false,可关闭该效果。</p> <h3 id="threshold"><a href="#threshold" class="header-anchor">#</a> threshold</h3> <ul><li><strong>类型</strong>:<code>number</code></li> <li><strong>默认值</strong>:<code>0.1</code></li></ul> <p>切换下一个或上一个 Page 的阈值。</p> <div class="custom-block tip"><p class="custom-block-title">TIP</p> <p>当滚动距离小于该阈值时,不会触发切换到下一个或上一个。</p> <p>可以设置为小数,如 0.1,或者整数,如 100。当该值为小数时,threshold 被当成一个百分比,最终的阈值为 <code>slideWrapperWidth * threshold</code> 或者 <code>slideWrapperHeight * threshold</code>。当该值为整数时,则阈值就是 threshold。</p></div> <h3 id="startpagexindex"><a href="#startpagexindex" class="header-anchor">#</a> startPageXIndex <span class="badge tip" style="vertical-align:top;" data-v-15b7b770>2.3.0</span></h3> <ul><li><strong>类型</strong>:<code>number</code></li> <li><strong>默认值</strong>:<code>0</code></li></ul> <p>实例化 slide 的时候,滚动到横向对应索引的 page。</p> <h3 id="startpageyindex"><a href="#startpageyindex" class="header-anchor">#</a> startPageYIndex <span class="badge tip" style="vertical-align:top;" data-v-15b7b770>2.3.0</span></h3> <ul><li><strong>类型</strong>:<code>number</code></li> <li><strong>默认值</strong>:<code>0</code></li></ul> <p>实例化 slide 的时候,滚动到竖向对应索引的 page。</p> <h2 id="实例方法"><a href="#实例方法" class="header-anchor">#</a> 实例方法</h2> <div class="custom-block tip"><p class="custom-block-title">提示</p> <p>以下方法皆已代理至 BetterScroll 实例,例如:</p> <div class="language-js extra-class"><pre class="language-js"><code><span class="token keyword">import</span> BScroll <span class="token keyword">from</span> <span class="token string">'@better-scroll/core'</span>
- <span class="token keyword">import</span> Slide <span class="token keyword">from</span> <span class="token string">'@better-scroll/slide'</span>
- BScroll<span class="token punctuation">.</span><span class="token function">use</span><span class="token punctuation">(</span>Slide<span class="token punctuation">)</span>
- <span class="token keyword">const</span> bs <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">BScroll</span><span class="token punctuation">(</span><span class="token string">'.bs-wrapper'</span><span class="token punctuation">,</span> <span class="token punctuation">{</span>
- <span class="token literal-property property">slide</span><span class="token operator">:</span> <span class="token boolean">true</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- bs<span class="token punctuation">.</span><span class="token function">next</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
- bs<span class="token punctuation">.</span><span class="token function">prev</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
- bs<span class="token punctuation">.</span><span class="token function">getCurrentPage</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
- </code></pre></div></div> <h3 id="next-time-easing"><a href="#next-time-easing" class="header-anchor">#</a> next([time], [easing])</h3> <ul><li><strong>参数</strong>:
- <ul><li><code>{ number } time<可选></code>:动画时长,默认是 <code>options.speed</code></li> <li><code>{ EaseItem } easing<可选></code>:缓动效果配置,参考 <a href="https://github.com/ustbhuangyi/better-scroll/blob/dev/packages/shared-utils/src/ease.ts" target="_blank" rel="noopener noreferrer">ease.ts<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>,默认是 <code>bounce</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">EaseItem</span> <span class="token punctuation">{</span>
- style<span class="token operator">:</span> <span class="token builtin">string</span>
- <span class="token function">fn</span><span class="token punctuation">(</span>t<span class="token operator">:</span> <span class="token builtin">number</span><span class="token punctuation">)</span><span class="token operator">:</span> <span class="token builtin">number</span>
- <span class="token punctuation">}</span>
- </code></pre></div></li></ul> <p>滚动到下一张。</p> <h3 id="prev-time-easing"><a href="#prev-time-easing" class="header-anchor">#</a> prev([time], [easing])</h3> <ul><li><strong>参数</strong>:
- <ul><li><code>{ number } time<可选></code>:动画时长,默认是 <code>options.speed</code></li> <li><code>{ EaseItem } easing<可选></code>:缓动效果配置,参考 <a href="https://github.com/ustbhuangyi/better-scroll/blob/dev/packages/shared-utils/src/ease.ts" target="_blank" rel="noopener noreferrer">ease.ts<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>,默认是 <code>bounce</code> 效果</li></ul></li></ul> <p>滚动到上一张。</p> <h3 id="gotopage-pagex-pagey-time-easing"><a href="#gotopage-pagex-pagey-time-easing" class="header-anchor">#</a> goToPage(pageX, pageY, [time], [easing])</h3> <ul><li><strong>参数</strong>:
- <ul><li><code>{ number } pageX</code>:横向滚动到对应索引的 Page,下标从 0 开始</li> <li><code>{ number } pageY</code>:纵向滚动到对应索引的 Page,下标从 0 开始</li> <li><code>{ number } time<可选></code>:动画时长,默认是 <code>options.speed</code></li> <li><code>{ EaseItem } easing<可选></code>:缓动效果配置,参考 <a href="https://github.com/ustbhuangyi/better-scroll/blob/dev/packages/shared-utils/src/ease.ts" target="_blank" rel="noopener noreferrer">ease.ts<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>,默认是 <code>bounce</code> 效果</li></ul></li></ul> <p>滚动到指定的 Page 位置。</p> <h3 id="getcurrentpage"><a href="#getcurrentpage" class="header-anchor">#</a> getCurrentPage()</h3> <ul><li><strong>返回值</strong>: <code>page</code></li></ul> <div class="language-typescript extra-class"><pre class="language-typescript"><code><span class="token keyword">type</span> <span class="token class-name">Page</span> <span class="token operator">=</span> <span class="token punctuation">{</span>
- x<span class="token operator">:</span> <span class="token builtin">number</span><span class="token punctuation">,</span>
- y<span class="token operator">:</span> <span class="token builtin">number</span><span class="token punctuation">,</span>
- pageX<span class="token operator">:</span> <span class="token builtin">number</span><span class="token punctuation">,</span> <span class="token comment">// 横向对应 Page 的索引,下标从 0 开始</span>
- pageY<span class="token operator">:</span> <span class="token builtin">number</span> <span class="token comment">// 纵向对应 Page 的索引,下标从 0 开始</span>
- <span class="token punctuation">}</span>
- <span class="token keyword">const</span> page<span class="token operator">:</span>Page <span class="token operator">=</span> BScroll<span class="token punctuation">.</span><span class="token function">getCurrentPage</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
- </code></pre></div><p>获取当前页面的信息。</p> <h3 id="startplay"><a href="#startplay" class="header-anchor">#</a> startPlay()</h3> <p>如果开启了 loop 的配置,手动开启循环播放。</p> <h3 id="pauseplay"><a href="#pauseplay" class="header-anchor">#</a> pausePlay()</h3> <p>如果开启了 loop 的配置,手动关闭循环播放。</p> <h2 id="事件"><a href="#事件" class="header-anchor">#</a> 事件</h2> <h3 id="slidewillchange"><a href="#slidewillchange" class="header-anchor">#</a> slideWillChange</h3> <ul><li><p><strong>参数</strong>:page 对象</p> <ul><li><code>{ number } x</code>:即将展示页面的 x 坐标值</li> <li><code>{ number } y</code>:即将展示页面的 y 坐标值</li> <li><code>{ number } pageX</code>:即将展示的横向页面的索引值,下标从 0 开始</li> <li><code>{ number } pageY</code>:即将展示的纵向页面的索引值,下标从 0 开始</li></ul></li> <li><p><strong>触发时机</strong>:slide 的 currentPage 值将要改变时</p></li> <li><p><strong>用法</strong>:</p></li></ul> <p>在 banner 展示中,常常伴随着一个 dot 图例,来指示当前 banner 是第几页,例如前面“横向轮播图”的示例。当用户拖动 banner 出现下一张时,我们希望下面的 dot 图例会同步变换。如下图</p> <img data-zoomable="" src="/docs/assets/images/slide-pageindex.png" alt="banner示例图" style="max-height:200px;"> <p>通过监听 <code>slideWillChange</code> 事件,可以实现该效果。代码如下:</p> <div class="language-js extra-class"><pre class="language-js"><code> <span class="token keyword">let</span> currentPageIndex <span class="token comment">// 控制当前页面</span>
- <span class="token keyword">const</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>
- <span class="token literal-property property">scrollX</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
- <span class="token literal-property property">scrollY</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
- <span class="token literal-property property">slide</span><span class="token operator">:</span> <span class="token punctuation">{</span>
- <span class="token literal-property property">threshold</span><span class="token operator">:</span> <span class="token number">100</span>
- <span class="token punctuation">}</span><span class="token punctuation">,</span>
- <span class="token literal-property property">useTransition</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
- <span class="token literal-property property">momentum</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
- <span class="token literal-property property">bounce</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
- <span class="token literal-property property">stopPropagation</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
- <span class="token literal-property property">probeType</span><span class="token operator">:</span> <span class="token number">2</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- slide<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'slideWillChange'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token parameter">page</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
- currentPageIndex <span class="token operator">=</span> page<span class="token punctuation">.</span>pageX
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div><h3 id="slidepagechanged"><a href="#slidepagechanged" class="header-anchor">#</a> slidePageChanged <span class="badge tip" style="vertical-align:top;" data-v-15b7b770>2.1.0</span></h3> <ul><li><p><strong>参数</strong>:page 对象</p> <ul><li><code>{ number } x</code>:当前页面的 x 坐标值</li> <li><code>{ number } y</code>:当前页面的 y 坐标值</li> <li><code>{ number } pageX</code>:当前横向页面的索引值,下标从 0 开始</li> <li><code>{ number } pageY</code>:当前纵向页面的索引值,下标从 0 开始</li></ul></li> <li><p><strong>触发时机</strong>:当 slide 切换 page 之后触发</p></li></ul> <div class="language-js extra-class"><pre class="language-js"><code> <span class="token keyword">const</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>
- <span class="token literal-property property">scrollX</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
- <span class="token literal-property property">scrollY</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
- <span class="token literal-property property">slide</span><span class="token operator">:</span> <span class="token boolean">true</span><span class="token punctuation">,</span>
- <span class="token literal-property property">momentum</span><span class="token operator">:</span> <span class="token boolean">false</span><span class="token punctuation">,</span>
- <span class="token literal-property property">bounce</span><span class="token operator">:</span> <span class="token boolean">false</span>
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- slide<span class="token punctuation">.</span><span class="token function">on</span><span class="token punctuation">(</span><span class="token string">'slidePageChanged'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token parameter">page</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
- currentPageIndex <span class="token operator">=</span> page<span class="token punctuation">.</span>pageX
- <span class="token punctuation">}</span><span class="token punctuation">)</span>
- </code></pre></div></div> <footer class="page-edit"><div class="edit-link"><a href="https://github.com/ustbhuangyi/better-scroll/edit/dev/packages/vuepress-docs/docs/zh-CN/plugins/slide.md" target="_blank" rel="noopener noreferrer">在 GitHub 上编辑此页</a> <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></div> <div class="last-updated"><span class="prefix">上次更新:</span> <span class="time">2021/4/19 17:22:09</span></div></footer> <div class="page-nav"><p class="inner"><span class="prev">
- ←
- <a href="/docs/zh-CN/plugins/indicators.html" class="prev">
- indicators
- </a></span> <span class="next"><a href="/docs/zh-CN/plugins/wheel.html">
- wheel
- </a>
- →
- </span></p></div> </main></div><div class="global-ui"><!----></div></div>
- <script src="/docs/assets/js/app.c71b64d3.js" defer></script><script src="/docs/assets/js/5.d6412664.js" defer></script><script src="/docs/assets/js/4.4855b9ef.js" defer></script><script src="/docs/assets/js/3.481632b4.js" defer></script><script src="/docs/assets/js/120.12cd2e0e.js" defer></script><script src="/docs/assets/js/56.cd04bae9.js" defer></script><script src="/docs/assets/js/7.518ccda7.js" defer></script>
- </body>
- </html>
|