Index of /typewriter/node_modules/tiny-slider/

NameLast ModifiedSize
UpParent Directory
Directorydist2023-06-25 07:45-
Directorysrc2023-06-25 07:46-
FileLICENSE1985-10-26 10:15 2k
Filepackage.json2021-11-13 11:41 3k
<!DOCTYPE html><html><head><meta charset="utf-8"><style>@font-face { font-family: octicons-anchor; src: url(https://cdnjs.cloudflare.com/ajax/libs/octicons/4.4.0/font/octicons.woff) format('woff'); } * { box-sizing: border-box; } body { width: 980px; margin-right: auto; margin-left: auto; } body .markdown-body { padding: 45px; border: 1px solid #ddd; border-radius: 3px; word-wrap: break-word; } pre { font: 12px Consolas, "Liberation Mono", Menlo, Courier, monospace; } .markdown-body { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; color: #333; font-family: "Helvetica Neue", Helvetica, "Segoe UI", Arial, freesans, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; line-height: 1.6; word-wrap: break-word; } .markdown-body a { background-color: transparent; } .markdown-body a:active, .markdown-body a:hover { outline: 0; } .markdown-body strong { font-weight: bold; } .markdown-body h1 { font-size: 2em; margin: 0.67em 0; } .markdown-body img { border: 0; } .markdown-body hr { box-sizing: content-box; height: 0; } .markdown-body pre { overflow: auto; } .markdown-body code, .markdown-body kbd, .markdown-body pre { font-family: monospace, monospace; font-size: 1em; } .markdown-body input { color: inherit; font: inherit; margin: 0; } .markdown-body html input[disabled] { cursor: default; } .markdown-body input { line-height: normal; } .markdown-body input[type="checkbox"] { box-sizing: border-box; padding: 0; } .markdown-body table { border-collapse: collapse; border-spacing: 0; } .markdown-body td, .markdown-body th { padding: 0; } .markdown-body input { font: 13px / 1.4 Helvetica, arial, nimbussansl, liberationsans, freesans, clean, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; } .markdown-body a { color: #4078c0; text-decoration: none; } .markdown-body a:hover, .markdown-body a:active { text-decoration: underline; } .markdown-body hr { height: 0; margin: 15px 0; overflow: hidden; background: transparent; border: 0; border-bottom: 1px solid #ddd; } .markdown-body hr:before { display: table; content: ""; } .markdown-body hr:after { display: table; clear: both; content: ""; } .markdown-body h1, .markdown-body h2, .markdown-body h3, .markdown-body h4, .markdown-body h5, .markdown-body h6 { margin-top: 15px; margin-bottom: 15px; line-height: 1.1; } .markdown-body h1 { font-size: 30px; } .markdown-body h2 { font-size: 21px; } .markdown-body h3 { font-size: 16px; } .markdown-body h4 { font-size: 14px; } .markdown-body h5 { font-size: 12px; } .markdown-body h6 { font-size: 11px; } .markdown-body blockquote { margin: 0; } .markdown-body ul, .markdown-body ol { padding: 0; margin-top: 0; margin-bottom: 0; } .markdown-body ol ol, .markdown-body ul ol { list-style-type: lower-roman; } .markdown-body ul ul ol, .markdown-body ul ol ol, .markdown-body ol ul ol, .markdown-body ol ol ol { list-style-type: lower-alpha; } .markdown-body dd { margin-left: 0; } .markdown-body code { font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 12px; } .markdown-body pre { margin-top: 0; margin-bottom: 0; font: 12px Consolas, "Liberation Mono", Menlo, Courier, monospace; } .markdown-body .select::-ms-expand { opacity: 0; } .markdown-body .octicon { font: normal normal normal 16px/1 octicons-anchor; display: inline-block; text-decoration: none; text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } .markdown-body .octicon-link:before { content: '\f05c'; } .markdown-body:before { display: table; content: ""; } .markdown-body:after { display: table; clear: both; content: ""; } .markdown-body>*:first-child { margin-top: 0 !important; } .markdown-body>*:last-child { margin-bottom: 0 !important; } .markdown-body a:not([href]) { color: inherit; text-decoration: none; } .markdown-body .anchor { display: inline-block; padding-right: 2px; margin-left: -18px; } .markdown-body .anchor:focus { outline: none; } .markdown-body h1, .markdown-body h2, .markdown-body h3, .markdown-body h4, .markdown-body h5, .markdown-body h6 { margin-top: 1em; margin-bottom: 16px; font-weight: bold; line-height: 1.4; } .markdown-body h1 .octicon-link, .markdown-body h2 .octicon-link, .markdown-body h3 .octicon-link, .markdown-body h4 .octicon-link, .markdown-body h5 .octicon-link, .markdown-body h6 .octicon-link { color: #000; vertical-align: middle; visibility: hidden; } .markdown-body h1:hover .anchor, .markdown-body h2:hover .anchor, .markdown-body h3:hover .anchor, .markdown-body h4:hover .anchor, .markdown-body h5:hover .anchor, .markdown-body h6:hover .anchor { text-decoration: none; } .markdown-body h1:hover .anchor .octicon-link, .markdown-body h2:hover .anchor .octicon-link, .markdown-body h3:hover .anchor .octicon-link, .markdown-body h4:hover .anchor .octicon-link, .markdown-body h5:hover .anchor .octicon-link, .markdown-body h6:hover .anchor .octicon-link { visibility: visible; } .markdown-body h1 { padding-bottom: 0.3em; font-size: 2.25em; line-height: 1.2; border-bottom: 1px solid #eee; } .markdown-body h1 .anchor { line-height: 1; } .markdown-body h2 { padding-bottom: 0.3em; font-size: 1.75em; line-height: 1.225; border-bottom: 1px solid #eee; } .markdown-body h2 .anchor { line-height: 1; } .markdown-body h3 { font-size: 1.5em; line-height: 1.43; } .markdown-body h3 .anchor { line-height: 1.2; } .markdown-body h4 { font-size: 1.25em; } .markdown-body h4 .anchor { line-height: 1.2; } .markdown-body h5 { font-size: 1em; } .markdown-body h5 .anchor { line-height: 1.1; } .markdown-body h6 { font-size: 1em; color: #777; } .markdown-body h6 .anchor { line-height: 1.1; } .markdown-body p, .markdown-body blockquote, .markdown-body ul, .markdown-body ol, .markdown-body dl, .markdown-body table, .markdown-body pre { margin-top: 0; margin-bottom: 16px; } .markdown-body hr { height: 4px; padding: 0; margin: 16px 0; background-color: #e7e7e7; border: 0 none; } .markdown-body ul, .markdown-body ol { padding-left: 2em; } .markdown-body ul ul, .markdown-body ul ol, .markdown-body ol ol, .markdown-body ol ul { margin-top: 0; margin-bottom: 0; } .markdown-body li>p { margin-top: 16px; } .markdown-body dl { padding: 0; } .markdown-body dl dt { padding: 0; margin-top: 16px; font-size: 1em; font-style: italic; font-weight: bold; } .markdown-body dl dd { padding: 0 16px; margin-bottom: 16px; } .markdown-body blockquote { padding: 0 15px; color: #777; border-left: 4px solid #ddd; } .markdown-body blockquote>:first-child { margin-top: 0; } .markdown-body blockquote>:last-child { margin-bottom: 0; } .markdown-body table { display: block; width: 100%; overflow: auto; word-break: normal; word-break: keep-all; } .markdown-body table th { font-weight: bold; } .markdown-body table th, .markdown-body table td { padding: 6px 13px; border: 1px solid #ddd; } .markdown-body table tr { background-color: #fff; border-top: 1px solid #ccc; } .markdown-body table tr:nth-child(2n) { background-color: #f8f8f8; } .markdown-body img { max-width: 100%; box-sizing: content-box; background-color: #fff; } .markdown-body code { padding: 0; padding-top: 0.2em; padding-bottom: 0.2em; margin: 0; font-size: 85%; background-color: rgba(0,0,0,0.04); border-radius: 3px; } .markdown-body code:before, .markdown-body code:after { letter-spacing: -0.2em; content: "\00a0"; } .markdown-body pre>code { padding: 0; margin: 0; font-size: 100%; word-break: normal; white-space: pre; background: transparent; border: 0; } .markdown-body .highlight { margin-bottom: 16px; } .markdown-body .highlight pre, .markdown-body pre { padding: 16px; overflow: auto; font-size: 85%; line-height: 1.45; background-color: #f7f7f7; border-radius: 3px; } .markdown-body .highlight pre { margin-bottom: 0; word-break: normal; } .markdown-body pre { word-wrap: normal; } .markdown-body pre code { display: inline; max-width: initial; padding: 0; margin: 0; overflow: initial; line-height: inherit; word-wrap: normal; background-color: transparent; border: 0; } .markdown-body pre code:before, .markdown-body pre code:after { content: normal; } .markdown-body kbd { display: inline-block; padding: 3px 5px; font-size: 11px; line-height: 10px; color: #555; vertical-align: middle; background-color: #fcfcfc; border: solid 1px #ccc; border-bottom-color: #bbb; border-radius: 3px; box-shadow: inset 0 -1px 0 #bbb; } .markdown-body .pl-c { color: #969896; } .markdown-body .pl-c1, .markdown-body .pl-s .pl-v { color: #0086b3; } .markdown-body .pl-e, .markdown-body .pl-en { color: #795da3; } .markdown-body .pl-s .pl-s1, .markdown-body .pl-smi { color: #333; } .markdown-body .pl-ent { color: #63a35c; } .markdown-body .pl-k { color: #a71d5d; } .markdown-body .pl-pds, .markdown-body .pl-s, .markdown-body .pl-s .pl-pse .pl-s1, .markdown-body .pl-sr, .markdown-body .pl-sr .pl-cce, .markdown-body .pl-sr .pl-sra, .markdown-body .pl-sr .pl-sre { color: #183691; } .markdown-body .pl-v { color: #ed6a43; } .markdown-body .pl-id { color: #b52a1d; } .markdown-body .pl-ii { background-color: #b52a1d; color: #f8f8f8; } .markdown-body .pl-sr .pl-cce { color: #63a35c; font-weight: bold; } .markdown-body .pl-ml { color: #693a17; } .markdown-body .pl-mh, .markdown-body .pl-mh .pl-en, .markdown-body .pl-ms { color: #1d3e81; font-weight: bold; } .markdown-body .pl-mq { color: #008080; } .markdown-body .pl-mi { color: #333; font-style: italic; } .markdown-body .pl-mb { color: #333; font-weight: bold; } .markdown-body .pl-md { background-color: #ffecec; color: #bd2c00; } .markdown-body .pl-mi1 { background-color: #eaffea; color: #55a532; } .markdown-body .pl-mdr { color: #795da3; font-weight: bold; } .markdown-body .pl-mo { color: #1d3e81; } .markdown-body kbd { display: inline-block; padding: 3px 5px; font: 11px Consolas, "Liberation Mono", Menlo, Courier, monospace; line-height: 10px; color: #555; vertical-align: middle; background-color: #fcfcfc; border: solid 1px #ccc; border-bottom-color: #bbb; border-radius: 3px; box-shadow: inset 0 -1px 0 #bbb; } .markdown-body .plan-price-unit { color: #767676; font-weight: normal; } .markdown-body .task-list-item { list-style-type: none; } .markdown-body .task-list-item+.task-list-item { margin-top: 3px; } .markdown-body .task-list-item input { margin: 0 0.35em 0.25em -1.6em; vertical-align: middle; } .markdown-body .plan-choice { padding: 15px; padding-left: 40px; display: block; border: 1px solid #e0e0e0; position: relative; font-weight: normal; background-color: #fafafa; } .markdown-body .plan-choice.open { background-color: #fff; } .markdown-body .plan-choice.open .plan-choice-seat-breakdown { display: block; } .markdown-body .plan-choice-free { border-radius: 3px 3px 0 0; } .markdown-body .plan-choice-paid { border-radius: 0 0 3px 3px; border-top: 0; margin-bottom: 20px; } .markdown-body .plan-choice-radio { position: absolute; left: 15px; top: 18px; } .markdown-body .plan-choice-exp { color: #999; font-size: 12px; margin-top: 5px; } .markdown-body .plan-choice-seat-breakdown { margin-top: 10px; display: none; } .markdown-body :checked+.radio-label { z-index: 1; position: relative; border-color: #4078c0; } @media print { body .markdown-body { padding: 0; border: none; } } </style><title>README</title></head><body><article class="markdown-body"><h1> <a id="user-content-tiny-slider-20" class="anchor" href="#tiny-slider-20" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>tiny-slider 2.0</h1> <p><a href="https://www.jsdelivr.com/package/npm/tiny-slider" rel="nofollow"><img src="https://camo.githubusercontent.com/5d683ae5a17660f059100950f6b4c237e9388cdf/68747470733a2f2f646174612e6a7364656c6976722e636f6d2f76312f7061636b6167652f6e706d2f74696e792d736c696465722f62616467653f7374796c653d726f756e646564" alt="" data-canonical-src="https://data.jsdelivr.com/v1/package/npm/tiny-slider/badge?style=rounded" style="max-width:100%;"></a> <a href="https://camo.githubusercontent.com/9024be575b1bfe006e2216581242226f449b80a8/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f56657273696f6e2d322e382e312d677265656e2e737667" target="_blank" rel="nofollow"><img src="https://camo.githubusercontent.com/9024be575b1bfe006e2216581242226f449b80a8/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f56657273696f6e2d322e382e312d677265656e2e737667" alt="version" data-canonical-src="https://img.shields.io/badge/Version-2.8.1-green.svg" style="max-width:100%;"></a><br> Tiny slider for all purposes, inspired by <a href="https://owlcarousel2.github.io/OwlCarousel2/" rel="nofollow">Owl Carousel</a>.<br> <a href="http://ganlanyuan.github.io/tiny-slider/tests/index.html" rel="nofollow">Demos</a><br> <a href="http://ganlanyuan.github.io/tiny-slider/tests/tests.html" rel="nofollow">Tests</a> (Can be tested on Firefox 12+, Chrome 15+, Safari 5.1+, Opera 12.1+, IE9+)<br> Note: some features may need a manual test.</p> <p><em>Previous versions</em>: <a href="https://github.com/ganlanyuan/tiny-slider/tree/v1">v1</a>, <a href="https://github.com/ganlanyuan/tiny-slider/tree/v0">v0</a></p> <h2> <a id="user-content-contents" class="anchor" href="#contents" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Contents</h2> <p>+ <a href="#whats-new">What's new</a><br> + <a href="#features">Features</a><br> + <a href="#install">Install</a><br> + <a href="#usage">Usage</a><br> + <a href="#options">Options</a><br> + <a href="#responsive-options">Responsive options</a><br> + <a href="#methods">Methods</a><br> + <a href="#custom-events">Custom Events</a><br> + <a href="#fallback">Fallback</a><br> + <a href="#browser-support">Browser Support</a><br> + <a href="#support">Support</a><br> + <a href="#license">License</a></p> <h2> <a id="user-content-whats-new" class="anchor" href="#whats-new" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>What's new</h2> <ul> <li>Using <code>%</code> instead of <code>px</code> (No more recalculation of each slide width on window resize)</li> <li>Using CSS Mediaqueries if supported</li> <li>Save browser capbility values to <a href="https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage" rel="nofollow">localStorage</a>, so they will not be recheck again until browser get upgraded or user clear the localStorage manuelly.</li> <li>More options available for <code>responsive</code>. (Start from <a href="https://github.com/ganlanyuan/tiny-slider/releases/tag/v2.1.0">v2.1.0</a>, <a href="https://github.com/ganlanyuan/tiny-slider/issues/53">issue 53</a>)</li> <li>Insert <code>controls</code> and <code>nav</code> <em>before</em> slider instead of after (<a href="https://github.com/ganlanyuan/tiny-slider/issues/4">issue 4</a>)</li> <li>Move <code>autoplay</code> button out of <code>nav</code> container. (Start from <a href="https://github.com/ganlanyuan/tiny-slider/releases/tag/v2.1.0">v2.1.0</a>)</li> <li>Some selector changes in <a href="https://github.com/ganlanyuan/tiny-slider/blob/master/src/tiny-slider.scss"><code>tiny-slider.scss</code></a> </li> </ul> <p><em>Migrating to v2</em></p> <ul> <li>Update <code>controls</code> and / or <code>nav</code> styles based on their position changes.</li> <li>Update the <a href="https://github.com/ganlanyuan/tiny-slider/blob/master/src/tiny-slider.scss"><code>slider selectors</code></a> accordingly if used in your CSS or JS.</li> <li>Update styles related to <code>autoplay</code> button.</li> </ul> <p><em><a href="#tiny-slider-20">top↑</a></em></p> <h2> <a id="user-content-features" class="anchor" href="#features" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Features</h2> <ul> <li>carousel / gallery</li> <li>responsive</li> <li>fixed width</li> <li>auto width (v2.8.1+)</li> <li>vertical slider</li> <li>gutter</li> <li>edge padding (center)</li> <li>loop</li> <li>rewind (<a href="https://github.com/ganlanyuan/tiny-slider/pull/10">pull 10</a>)</li> <li>slide by</li> <li>customize controls / nav</li> <li>lazyload</li> <li>autoplay</li> <li>auto height</li> <li>touch support</li> <li>mouse drag (<a href="https://github.com/ganlanyuan/tiny-slider/pull/32">pull 32</a>)</li> <li>arrow keys</li> <li>accessibility for people using keyboard navigation or screen readers (<a href="https://github.com/ganlanyuan/tiny-slider/issues/4">issue 4</a>)</li> <li>response to visibility changing (<a href="https://github.com/ganlanyuan/tiny-slider/pull/29">pull 19</a>)</li> <li>custom events</li> <li>nested slider</li> </ul> <p><em><a href="#tiny-slider-20">top↑</a></em></p> <h2> <a id="user-content-install" class="anchor" href="#install" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Install</h2> <p><code>bower install tiny-slider</code> or <code>npm install tiny-slider</code></p> <h2> <a id="user-content-usage" class="anchor" href="#usage" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Usage</h2> <h4> <a id="user-content-1-add-css-and-ie8-polyfills-if-needed" class="anchor" href="#1-add-css-and-ie8-polyfills-if-needed" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>1. Add CSS (and IE8 polyfills if needed)</h4> <div class="highlight highlight-text-html-basic"><pre>&lt;<span class="pl-ent">link</span> <span class="pl-e">rel</span>=<span class="pl-s"><span class="pl-pds">"</span>stylesheet<span class="pl-pds">"</span></span> <span class="pl-e">href</span>=<span class="pl-s"><span class="pl-pds">"</span>https://cdnjs.cloudflare.com/ajax/libs/tiny-slider/2.8.1/tiny-slider.css<span class="pl-pds">"</span></span>&gt; <span class="pl-c"><span class="pl-c">&lt;!--</span>[if (lt IE 9)]&gt;&lt;script src="https://cdnjs.cloudflare.com/ajax/libs/tiny-slider/2.8.1/min/tiny-slider.helper.ie8.js"&gt;&lt;/script&gt;&lt;![endif]<span class="pl-c">--&gt;</span></span></pre></div> <h4> <a id="user-content-2-add-markup" class="anchor" href="#2-add-markup" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>2. Add markup</h4> <div class="highlight highlight-text-html-basic"><pre>&lt;<span class="pl-ent">div</span> <span class="pl-e">class</span>=<span class="pl-s"><span class="pl-pds">"</span>my-slider<span class="pl-pds">"</span></span>&gt; &lt;<span class="pl-ent">div</span>&gt;&lt;/<span class="pl-ent">div</span>&gt; &lt;<span class="pl-ent">div</span>&gt;&lt;/<span class="pl-ent">div</span>&gt; &lt;<span class="pl-ent">div</span>&gt;&lt;/<span class="pl-ent">div</span>&gt; &lt;/<span class="pl-ent">div</span>&gt; <span class="pl-c"><span class="pl-c">&lt;!--</span> or ul.my-slider &gt; li <span class="pl-c">--&gt;</span></span></pre></div> <h4> <a id="user-content-3-call-tns" class="anchor" href="#3-call-tns" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>3. Call tns()</h4> <p>Add tiny-slider.js to your page:</p> <div class="highlight highlight-text-html-basic"><pre>&lt;<span class="pl-ent">script</span> <span class="pl-e">src</span>=<span class="pl-s"><span class="pl-pds">"</span>https://cdnjs.cloudflare.com/ajax/libs/tiny-slider/2.8.1/min/tiny-slider.js<span class="pl-pds">"</span></span>&gt;&lt;/<span class="pl-ent">script</span>&gt; <span class="pl-c"><span class="pl-c">&lt;!--</span> NOTE: prior to v2.2.1 tiny-slider.js need to be in &lt;body&gt; <span class="pl-c">--&gt;</span></span></pre></div> <p>Or import <code>tns</code> via <code>webpack</code> or <code>rollup</code>:</p> <div class="highlight highlight-source-js"><pre><span class="pl-c"><span class="pl-c">//</span> yourScript.js</span> <span class="pl-k">import</span> { <span class="pl-smi">tns</span> } <span class="pl-k">from</span> <span class="pl-s"><span class="pl-pds">"</span>./node_modules/tiny-slider/src/tiny-slider<span class="pl-pds">"</span></span></pre></div> <p>Or you can even directly import <code>tns</code> start from v2.8.3</p> <div class="highlight highlight-text-html-basic"><pre>&lt;<span class="pl-ent">script</span> <span class="pl-e">type</span>=<span class="pl-s"><span class="pl-pds">"</span>module<span class="pl-pds">"</span></span>&gt;<span class="pl-s1"></span> <span class="pl-s1"> <span class="pl-k">import</span> {<span class="pl-smi">tns</span>} <span class="pl-k">from</span> <span class="pl-s"><span class="pl-pds">'</span>./src/tiny-slider.js<span class="pl-pds">'</span></span>;</span> <span class="pl-s1"></span> <span class="pl-s1"> <span class="pl-k">var</span> slider <span class="pl-k">=</span> <span class="pl-en">tns</span>({</span> <span class="pl-s1"> container<span class="pl-k">:</span> <span class="pl-s"><span class="pl-pds">'</span>.my-slider<span class="pl-pds">'</span></span>,</span> <span class="pl-s1"> items<span class="pl-k">:</span> <span class="pl-c1">3</span>,</span> <span class="pl-s1"> slideBy<span class="pl-k">:</span> <span class="pl-s"><span class="pl-pds">'</span>page<span class="pl-pds">'</span></span>,</span> <span class="pl-s1"> autoplay<span class="pl-k">:</span> <span class="pl-c1">true</span></span> <span class="pl-s1"> });</span> <span class="pl-s1"> </span><span class="pl-s1">&lt;</span>/<span class="pl-ent">script</span>&gt;</pre></div> <p><em><a href="#tiny-slider-20">top↑</a></em></p> <h2> <a id="user-content-options" class="anchor" href="#options" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Options</h2> <table> <thead> <tr> <th>Option</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><code>container</code></td> <td>Node | String</td> <td>Default: <code>'.slider'</code>. <br> The slider container element or selector.</td> </tr> <tr> <td><code>mode</code></td> <td>"carousel" | "gallery"</td> <td>Default: "carousel". <br> Controls animation behaviour. <br> With <code>carousel</code> everything slides to the side, while <code>gallery</code> uses fade animations and changes all slides at once.</td> </tr> <tr> <td><code>axis</code></td> <td>"horizontal" | "vertical"</td> <td>Default: "horizontal". <br> The axis of the slider.</td> </tr> <tr> <td><code>items</code></td> <td>positive number</td> <td>Default: 1. <br> Number of slides being displayed in the viewport. <br> If slides less than <code>items</code>, the slider won't be initialized.</td> </tr> <tr> <td><code>gutter</code></td> <td>positive integer</td> <td>Default: 0. <br> Space between slides (in "px").</td> </tr> <tr> <td><code>edgePadding</code></td> <td>positive integer</td> <td>Default: 0. <br> Space on the outside (in "px").</td> </tr> <tr> <td><code>fixedWidth</code></td> <td>positive integer | false</td> <td>Default: false. <br> Controls <code>width</code> attribute of the slides.</td> </tr> <tr> <td><code>autoWidth</code></td> <td>Boolean</td> <td>Default: false. <br> If <code>true</code>, the width of each slide will be its natural width as a <code>inline-block</code> box.</td> </tr> <tr> <td> <code>viewportMax</code> (previously <code>fixedWidthViewportWidth</code>)</td> <td>positive integer | false</td> <td>Default: false. <br> Maximum viewport width for <code>fixedWidth</code>/<code>autoWidth</code>.</td> </tr> <tr> <td><code>slideBy</code></td> <td>positive number | "page"</td> <td>Default: 1. <br> Number of slides going on one "click".</td> </tr> <tr> <td><code>controls</code></td> <td>Boolean</td> <td>Default: true. <br> Controls the display and functionalities of <code>controls</code> components (prev/next buttons). If <code>true</code>, display the <code>controls</code> and add all functionalities.</td> </tr> <tr> <td><code>controlsText</code></td> <td>(Text | Markup) Array</td> <td>Default: ["prev", "next"]. <br> Text or markup in the prev/next buttons.</td> </tr> <tr> <td><code>controlsContainer</code></td> <td>Node | String | false</td> <td>Default: false. <br> The container element/selector around the prev/next buttons. <br> <code>controlsContainer</code> must have at least 2 child elements.</td> </tr> <tr> <td><code>prevButton</code></td> <td>Node | String | false</td> <td>Default: false. <br> Customized previous buttons. <br> This option will be ignored if <code>controlsContainer</code> is a Node element or a CSS selector.</td> </tr> <tr> <td><code>nextButton</code></td> <td>Node | String | false</td> <td>Default: false. <br> Customized next buttons. <br> This option will be ignored if <code>controlsContainer</code> is a Node element or a CSS selector.</td> </tr> <tr> <td><code>nav</code></td> <td>Boolean</td> <td>Default: true. <br> Controls the display and functionalities of <code>nav</code> components (dots). If <code>true</code>, display the <code>nav</code> and add all functionalities.</td> </tr> <tr> <td><code>navContainer</code></td> <td>Node | String | false</td> <td>Default: false. <br> The container element/selector around the dots. <br> <code>navContainer</code> must have at least same number of children as the slides.</td> </tr> <tr> <td><code>navAsThumbnails</code></td> <td>Boolean</td> <td>Default: false. <br> Indecate if the dots are thurbnails. If <code>true</code>, they will always be visible even when more than 1 slides displayed in the viewport.</td> </tr> <tr> <td><code>arrowKeys</code></td> <td>Boolean</td> <td>Default: false. <br> Allows using arrow keys to switch slides.</td> </tr> <tr> <td><code>speed</code></td> <td>positive integer</td> <td>Default: 300. <br> Speed of the slide animation (in "ms").</td> </tr> <tr> <td><code>autoplay</code></td> <td>Boolean</td> <td>Default: false. <br> Toggles the automatic change of slides.</td> </tr> <tr> <td><code>autoplayTimeout</code></td> <td>positive integer</td> <td>Default: 5000. <br> Time between 2 <code>autoplay</code> slides change (in "ms").</td> </tr> <tr> <td><code>autoplayDirection</code></td> <td>"forward" | "backward"</td> <td>Default: "forward". <br> Direction of slide movement (ascending/descending the slide index).</td> </tr> <tr> <td><code>autoplayText</code></td> <td>Array (Text | Markup)</td> <td>Default: ["start", "stop"]. <br> Text or markup in the autoplay start/stop button.</td> </tr> <tr> <td><code>autoplayHoverPause</code></td> <td>Boolean</td> <td>Default: false. <br> Stops sliding on mouseover.</td> </tr> <tr> <td><code>autoplayButton</code></td> <td>Node | String | false</td> <td>Default: false. <br> The customized autoplay start/stop button or selector.</td> </tr> <tr> <td><code>autoplayButtonOutput</code></td> <td>Boolean</td> <td>Default: true. <br> Output <code>autoplayButton</code> markup when <code>autoplay</code> is true but a customized <code>autoplayButton</code> is not provided.</td> </tr> <tr> <td><code>autoplayResetOnVisibility</code></td> <td>Boolean</td> <td>Default: true. <br> Pauses the sliding when the page is invisiable and resumes it when the page become visiable again. (<a href="https://developer.mozilla.org/en-US/docs/Web/API/Page_Visibility_API" rel="nofollow">Page Visibility API</a>)</td> </tr> <tr> <td><code>animateIn</code></td> <td>String</td> <td>Default: "tns-fadeIn". <br> Name of intro animation <code>class</code>.</td> </tr> <tr> <td><code>animateOut</code></td> <td>String</td> <td>Default: "tns-fadeOut". <br> Name of outro animation <code>class</code>.</td> </tr> <tr> <td><code>animateNormal</code></td> <td>String</td> <td>Default: "tns-normal". <br> Name of default animation <code>class</code>.</td> </tr> <tr> <td><code>animateDelay</code></td> <td>positive integer | false</td> <td>Default: false. <br> Time between each <code>gallery</code> animation (in "ms").</td> </tr> <tr> <td><code>loop</code></td> <td>Boolean</td> <td>Default: true. <br> Moves throughout all the slides seamlessly.</td> </tr> <tr> <td><code>rewind</code></td> <td>Boolean</td> <td>Default: false. <br> Moves to the opposite edge when reaching the first or last slide.</td> </tr> <tr> <td><code>autoHeight</code></td> <td>Boolean</td> <td>Default: false. <br> Height of slider container changes according to each slide's height.</td> </tr> <tr> <td><code>responsive</code></td> <td>Map: { <br> breakpoint: { <br>  key: value<br> } <br>} | false</td> <td>Default: false. <br>Breakpoint: Integer.<br>Defines options for different viewport widths (see <a href="#responsive-options">Responsive Options</a>). <br> </td> </tr> <tr> <td><code>lazyload</code></td> <td>Boolean</td> <td>Default: false. <br> Enables lazyloading images that are currently not viewed, thus saving bandwidth (see <a href="http://ganlanyuan.github.io/tiny-slider/tests/#lazyload_wrapper" rel="nofollow">demo</a>). <br> NOTE: <code>width</code> attribute for each <code>&lt;img&gt;</code> is required for <code>autoWidth</code> slider.</td> </tr> <tr> <td><code>touch</code></td> <td>Boolean</td> <td>Default: true. <br> Activates input detection for touch devices.</td> </tr> <tr> <td><code>mouseDrag</code></td> <td>Boolean</td> <td>Default: false. <br> Changing slides by dragging them.</td> </tr> <tr> <td><code>swipeAngle</code></td> <td>positive integer | Boolean</td> <td>Default: 15. <br> Swipe or drag will not be triggered if the angle is not inside the range when set.</td> </tr> <tr> <td><code>nested</code></td> <td>"inner" | "outer" | false</td> <td>Default: false. <br> Difine the relationship between nested sliders. (see <a href="http://ganlanyuan.github.io/tiny-slider/tests/#nested_wrapper" rel="nofollow">demo</a>) <br>Make sure you run the inner slider first, otherwise the height of the inner slider container will be wrong.</td> </tr> <tr> <td><code>freezable</code></td> <td>Boolean</td> <td>Default: true. <br> Indicate whether the slider will be frozen (<code>controls</code>, <code>nav</code>, <code>autoplay</code> and other functions will stop work) when all slides can be displayed in one page.</td> </tr> <tr> <td><code>disable</code></td> <td>Boolean</td> <td>Default: false. <br> Disable slider.</td> </tr> <tr> <td><code>startIndex</code></td> <td>positive integer</td> <td>Default: 0. <br> The initial <code>index</code> of the slider.</td> </tr> <tr> <td><code>onInit</code></td> <td>Function | false</td> <td>Default: false. <br> Callback to be run on initialization.</td> </tr> <tr> <td><code>useLocalStorage</code></td> <td>Boolean</td> <td>Default: true. <br> Save browser capability variables to <a href="https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage" rel="nofollow">localStorage</a> and without detecting them everytime the slider runs if set to <code>true</code>.</td> </tr> </tbody> </table> <p>NOTE:<br> Prior to v2.0.2, options "container", "controlsContainer", "navContainer" and "autoplayButton" still need to be DOM elements.<br> E.g. container: document.querySelector('.my-slider')</p> <p><em><a href="#tiny-slider-20">top↑</a></em></p> <h2> <a id="user-content-responsive-options" class="anchor" href="#responsive-options" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Responsive options</h2> <p>The following options can be redefined in <code>responsive</code> field:<br> <code>startIndex</code>,<br> <code>items</code>,<br> <code>slideBy</code>,<br> <code>speed</code>,<br> <code>autoHeight</code>,<br> <code>fixedWidth</code>,<br> <code>edgePadding</code>,<br> <code>gutter</code>,<br> <code>controls</code>,<br> <code>controlsText</code>,<br> <code>nav</code>,<br> <code>autoplay</code>,<br> <code>autoplayHoverPause</code>,<br> <code>autoplayResetOnVisibility</code>,<br> <code>autoplayText</code>,<br> <code>autoplayTimeout</code>,<br> <code>touch</code>,<br> <code>mouseDrag</code>,<br> <code>arrowKeys</code>,<br> <code>disable</code></p> <div class="highlight highlight-source-js"><pre><span class="pl-k">&lt;</span>script<span class="pl-k">&gt;</span> <span class="pl-k">var</span> slider <span class="pl-k">=</span> <span class="pl-en">tns</span>({ container<span class="pl-k">:</span> <span class="pl-s"><span class="pl-pds">'</span>.my-slider<span class="pl-pds">'</span></span>, items<span class="pl-k">:</span> <span class="pl-c1">1</span>, responsive<span class="pl-k">:</span> { <span class="pl-c1">640</span><span class="pl-k">:</span> { edgePadding<span class="pl-k">:</span> <span class="pl-c1">20</span>, gutter<span class="pl-k">:</span> <span class="pl-c1">20</span>, items<span class="pl-k">:</span> <span class="pl-c1">2</span> }, <span class="pl-c1">700</span><span class="pl-k">:</span> { gutter<span class="pl-k">:</span> <span class="pl-c1">30</span> }, <span class="pl-c1">900</span><span class="pl-k">:</span> { items<span class="pl-k">:</span> <span class="pl-c1">3</span> } } }); <span class="pl-k">&lt;</span><span class="pl-k">/</span>script<span class="pl-k">&gt;</span></pre></div> <p>NOTE: <code>fixedWidth</code> can only be changed to other positive integers. It can't be changed to negtive integer, 0 or other data type. <em><a href="#tiny-slider-20">top↑</a></em></p> <h2> <a id="user-content-methods" class="anchor" href="#methods" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Methods</h2> <p>The slider returns a slider object with some properties and methods once it's initialized:</p> <div class="highlight highlight-source-js"><pre>{ getInfo<span class="pl-k">:</span> <span class="pl-en">info</span>(), events<span class="pl-k">:</span> events, <span class="pl-c"><span class="pl-c">//</span> Object</span> goTo<span class="pl-k">:</span> <span class="pl-en">goTo</span>(), play<span class="pl-k">:</span> <span class="pl-en">play</span>(), pause<span class="pl-k">:</span> <span class="pl-en">pause</span>(), isOn<span class="pl-k">:</span> isOn, <span class="pl-c"><span class="pl-c">//</span> Boolean</span> rebuild<span class="pl-k">:</span> <span class="pl-en">rebuild</span>(), destroy<span class="pl-k">:</span> <span class="pl-en">destroy</span>() }</pre></div> <p>To get the slider information, you can either use the <code>getInfo()</code> method or subscribe to an Event. Both return an Object:</p> <div class="highlight highlight-source-js"><pre>{ container<span class="pl-k">:</span> container, <span class="pl-c"><span class="pl-c">//</span> slider container</span> slideItems<span class="pl-k">:</span> slideItems, <span class="pl-c"><span class="pl-c">//</span> slides list</span> navContainer<span class="pl-k">:</span> navContainer, <span class="pl-c"><span class="pl-c">//</span> nav container</span> navItems<span class="pl-k">:</span> navItems, <span class="pl-c"><span class="pl-c">//</span> dots list</span> controlsContainer<span class="pl-k">:</span> controlsContainer, <span class="pl-c"><span class="pl-c">//</span> controls container</span> hasControls<span class="pl-k">:</span> hasControls, <span class="pl-c"><span class="pl-c">//</span> indicate if controls exist</span> prevButton<span class="pl-k">:</span> prevButton, <span class="pl-c"><span class="pl-c">//</span> previous button</span> nextButton<span class="pl-k">:</span> nextButton, <span class="pl-c"><span class="pl-c">//</span> next button</span> items<span class="pl-k">:</span> items, <span class="pl-c"><span class="pl-c">//</span> items on a page</span> slideBy<span class="pl-k">:</span> slideBy <span class="pl-c"><span class="pl-c">//</span> items slide by</span> cloneCount<span class="pl-k">:</span> cloneCount, <span class="pl-c"><span class="pl-c">//</span> cloned slide count</span> slideCount<span class="pl-k">:</span> slideCount, <span class="pl-c"><span class="pl-c">//</span> original slide count</span> slideCountNew<span class="pl-k">:</span> slideCountNew, <span class="pl-c"><span class="pl-c">//</span> total slide count after initialization</span> index<span class="pl-k">:</span> index, <span class="pl-c"><span class="pl-c">//</span> current index</span> indexCached<span class="pl-k">:</span> indexCached, <span class="pl-c"><span class="pl-c">//</span> previous index</span> navCurrent<span class="pl-k">:</span> navCurrent, <span class="pl-c"><span class="pl-c">//</span> current dot index</span> navCurrentCached<span class="pl-k">:</span> navCurrentCached, <span class="pl-c"><span class="pl-c">//</span> previous dot index</span> visibleNavIndexes<span class="pl-k">:</span> visibleNavIndexes, <span class="pl-c"><span class="pl-c">//</span> visible nav indexes</span> visibleNavIndexesCached<span class="pl-k">:</span> visibleNavIndexesCached, sheet<span class="pl-k">:</span> sheet, <span class="pl-c1">event</span><span class="pl-k">:</span> e <span class="pl-k">||</span> {}, <span class="pl-c"><span class="pl-c">//</span> event object if available</span> };</pre></div> <h4> <a id="user-content-getinfo" class="anchor" href="#getinfo" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>getInfo</h4> <p>Get slider information.</p> <div class="highlight highlight-source-js"><pre><span class="pl-smi">slider</span>.<span class="pl-en">getInfo</span>(); <span class="pl-c1">document</span>.<span class="pl-c1">querySelector</span>(<span class="pl-s"><span class="pl-pds">'</span>.next-button<span class="pl-pds">'</span></span>).<span class="pl-en">onclick</span> <span class="pl-k">=</span> <span class="pl-k">function</span> () { <span class="pl-c"><span class="pl-c">//</span> get slider info</span> <span class="pl-k">var</span> info <span class="pl-k">=</span> <span class="pl-smi">slider</span>.<span class="pl-en">getInfo</span>(), indexPrev <span class="pl-k">=</span> <span class="pl-smi">info</span>.<span class="pl-smi">indexCached</span>, indexCurrent <span class="pl-k">=</span> <span class="pl-smi">info</span>.<span class="pl-c1">index</span>; <span class="pl-c"><span class="pl-c">//</span> update style based on index</span> <span class="pl-smi">info</span>.<span class="pl-smi">slideItems</span>[indexPrev].<span class="pl-smi">classList</span>.<span class="pl-c1">remove</span>(<span class="pl-s"><span class="pl-pds">'</span>active<span class="pl-pds">'</span></span>); <span class="pl-smi">info</span>.<span class="pl-smi">slideItems</span>[indexCurrent].<span class="pl-smi">classList</span>.<span class="pl-c1">add</span>(<span class="pl-s"><span class="pl-pds">'</span>active<span class="pl-pds">'</span></span>); };</pre></div> <h4> <a id="user-content-goto" class="anchor" href="#goto" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>goTo</h4> <p>Go to specific slide by number or keywords.<br> (NOTE: the number in <code>goTo()</code> was 1 based)</p> <div class="highlight highlight-source-js"><pre><span class="pl-smi">slider</span>.<span class="pl-en">goTo</span>(<span class="pl-c1">3</span>); <span class="pl-smi">slider</span>.<span class="pl-en">goTo</span>(<span class="pl-s"><span class="pl-pds">'</span>prev<span class="pl-pds">'</span></span>); <span class="pl-smi">slider</span>.<span class="pl-en">goTo</span>(<span class="pl-s"><span class="pl-pds">'</span>next<span class="pl-pds">'</span></span>); <span class="pl-smi">slider</span>.<span class="pl-en">goTo</span>(<span class="pl-s"><span class="pl-pds">'</span>first<span class="pl-pds">'</span></span>); <span class="pl-smi">slider</span>.<span class="pl-en">goTo</span>(<span class="pl-s"><span class="pl-pds">'</span>last<span class="pl-pds">'</span></span>); <span class="pl-c1">document</span>.<span class="pl-c1">querySelector</span>(<span class="pl-s"><span class="pl-pds">'</span>.goto-button<span class="pl-pds">'</span></span>).<span class="pl-en">onclick</span> <span class="pl-k">=</span> <span class="pl-k">function</span> () { <span class="pl-smi">slider</span>.<span class="pl-en">goTo</span>(<span class="pl-c1">3</span>); };</pre></div> <h4> <a id="user-content-play" class="anchor" href="#play" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>play</h4> <p>Programmatically start slider autoplay when <code>autoplay: true</code>.</p> <div class="highlight highlight-source-js"><pre><span class="pl-smi">slider</span>.<span class="pl-c1">play</span>();</pre></div> <h4> <a id="user-content-pause" class="anchor" href="#pause" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>pause</h4> <p>Programmatically stop slider autoplay when <code>autoplay: true</code>.</p> <div class="highlight highlight-source-js"><pre><span class="pl-smi">slider</span>.<span class="pl-c1">pause</span>();</pre></div> <h4> <a id="user-content-destroy" class="anchor" href="#destroy" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>destroy</h4> <p>Destroy the slider.</p> <div class="highlight highlight-source-js"><pre><span class="pl-smi">slider</span>.<span class="pl-en">destroy</span>();</pre></div> <h4> <a id="user-content-rebuild" class="anchor" href="#rebuild" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>rebuild</h4> <p>Rebuild the slider after destroy.</p> <div class="highlight highlight-source-js"><pre>slider <span class="pl-k">=</span> <span class="pl-smi">slider</span>.<span class="pl-en">rebuild</span>(); <span class="pl-c"><span class="pl-c">//</span> this method returns a new slider Object with the same options with the original slider</span></pre></div> <h2> <a id="user-content-custom-events" class="anchor" href="#custom-events" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Custom Events</h2> <p>Available events include: <code>indexChanged</code>, <code>transitionStart</code>, <code>transitionEnd</code>, <code>touchStart</code>, <code>touchMove</code>, <code>touchEnd</code>, <code>dragStart</code>, <code>dragMove</code> and <code>dragEnd</code>.</p> <div class="highlight highlight-source-js"><pre><span class="pl-k">var</span> <span class="pl-en">customizedFunction</span> <span class="pl-k">=</span> <span class="pl-k">function</span> (<span class="pl-smi">info</span>) { <span class="pl-c"><span class="pl-c">//</span> direct access to info object</span> <span class="pl-en">console</span>.<span class="pl-c1">log</span>(<span class="pl-smi">info</span>.<span class="pl-c1">event</span>.<span class="pl-c1">type</span>, <span class="pl-smi">info</span>.<span class="pl-smi">container</span>.<span class="pl-c1">id</span>); } <span class="pl-c"><span class="pl-c">//</span> bind function to event</span> <span class="pl-smi">slider</span>.<span class="pl-smi">events</span>.<span class="pl-en">on</span>(<span class="pl-s"><span class="pl-pds">'</span>transitionEnd<span class="pl-pds">'</span></span>, customizedFunction); <span class="pl-c"><span class="pl-c">//</span> remove function binding</span> <span class="pl-smi">slider</span>.<span class="pl-smi">events</span>.<span class="pl-en">off</span>(<span class="pl-s"><span class="pl-pds">'</span>transitionEnd<span class="pl-pds">'</span></span>, customizedFunction);</pre></div> <p><em><a href="#tiny-slider-20">top↑</a></em></p> <h4> <a id="user-content-fallback" class="anchor" href="#fallback" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Fallback</h4> <div class="highlight highlight-source-css"><pre><span class="pl-e">.no-js</span> <span class="pl-e">.your-slider</span> { <span class="pl-c1"><span class="pl-c1">overflow-x</span></span>: <span class="pl-c1">auto</span>; } <span class="pl-e">.no-js</span> <span class="pl-e">.your-slider</span> <span class="pl-k">&gt;</span> <span class="pl-ent">div</span> { <span class="pl-c1"><span class="pl-c1">float</span></span>: <span class="pl-c1">none</span>; }</pre></div> <h2> <a id="user-content-browser-support" class="anchor" href="#browser-support" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Browser Support</h2> <p>Firefox 8+ ✓<br> Chrome 15+ ✓ (Should works on <em>Chrome 4-14</em> as well, but I couldn't test it.)<br> Safari 4+ ✓<br> Opera 12.1+ ✓<br> IE 8+ ✓</p> <h2> <a id="user-content-support" class="anchor" href="#support" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Support</h2> <p><a href="https://www.browserstack.com/" rel="nofollow"><img src="/Volumes/My%20iMac/ganlanyuan/tiny-slider/logos/browserstack.svg" alt="Browser Stack" width="170" style="max-width:100%;"></a><br>Live tests and Automated Tests <br> <br> <a href="https://crossbrowsertesting.com/" rel="nofollow"><img src="/Volumes/My%20iMac/ganlanyuan/tiny-slider/logos/cbt.svg" width="230" alt="Cross Browser Testing" style="max-width:100%;"></a><br>Live tests, Screenshots and Automated Tests <br> <br> <a href="https://cdnjs.com/" rel="nofollow">Cdnjs</a><br> <br> Images on demo page are from <a href="https://unsplash.com/" rel="nofollow">https://unsplash.com/</a>.</p> <h2> <a id="user-content-license" class="anchor" href="#license" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>License</h2> <p>This project is available under the <a href="https://opensource.org/licenses/mit-license.php" rel="nofollow">MIT</a> license.</p> </article></body></html>
Proudly Served by LiteSpeed Web Server at test.aquaai.org Port 80