日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

JS組件庫AlloyTouch實現圖片輪播過程解析

瀏覽:217日期:2024-05-06 11:37:59

輪播圖也涉及到觸摸和觸摸反饋,同時,AlloyTouch可以把慣性運動打開或者關閉,并且設置min和max為運動區域,超出會自動回彈。

除了一般的豎向滾動,AlloyTouch也可以支持橫向滾動,甚至任何屬性的運動,因為它的設計的本質就是屬性無關,觸摸可以反饋到任何屬性的運動。所以AlloyTouch制作各種各樣的輪播組件還是得心應手。

JS組件庫AlloyTouch實現圖片輪播過程解析

第一種輪播圖如上圖所示。下面開始實現的過程。

第0秒

<div id='carousel-container'> <div class='carousel'> <div id='carousel-scroller'> <img src='http://www.b3g6.com/bcjs/asset/ci1.jpg'> <img src='http://www.b3g6.com/bcjs/asset/ci2.jpg'> <img src='http://www.b3g6.com/bcjs/asset/ci3.jpg'> <img src='http://www.b3g6.com/bcjs/asset/ci4.jpg'> <img src='http://www.b3g6.com/bcjs/asset/ci5.jpg'> </div> </div></div>

一共五張圖,每張圖占有屏幕比例的百分之88,所以用戶的屏幕里可以看到一張多一點的圖片,給用戶可以橫向滑動查看的感覺。

第10秒

<script src='http://www.b3g6.com/transformjs/transform.js'></script><script src='http://www.b3g6.com/alloy_touch.js'></script><script> var scroller = document.querySelector('#carousel-scroller'); Transform(scroller); </script>

通過Transform(scroller); 注入CSS3 transform屬性。

第20秒

new AlloyTouch({ touch: '#carousel-container',//反饋觸摸的dom vertical: false,// 監聽用戶橫向觸摸 target: scroller, //運動的對象 property: 'translateX', //被運動的屬性 min:0.88 * window.innerWidth * -5 + window.innerWidth, max: 0})

這里最大的難點(其實也沒有什么難的),就是就是min的值。因為初始值是0,所有向左邊滑動一定是負值。可以得到max一定是0。

那么min的值就是: 屏幕的寬度-圖片的張數*圖片的寬度

圖片的寬度為0.88 * window.innerWidth 屏幕的寬度為window.innerWidth 圖片的張數為 5

JS組件庫AlloyTouch實現圖片輪播過程解析

第30秒

如上圖所示,相對于傳統的swipe然后再去觸發滾動,上面的跟手然后再去校正的體驗是更加良好的。那么怎么實現呢?首先,AlloyTouch是支持step配置。

new AlloyTouch({step: 100,.........})

只要用戶設置的step,最后運動結束之后,AlloyTouch都會幫用戶校正到最接近的step的整數倍的位置。

比如上面是100:

如果運動的對象停在 120,會被校正到100 如果運動的對象停在 151,會被校正到200 如果運動的對象停在 281,會被校正到300 如果運動的對象停在 21,會被校正到0

第40秒

當然這有個問題,比如用戶從0滑倒30,其實他是想去100,但是會被校正到0!!!

所以光使用校正是不夠。還需要一個API去阻止校正自己去注入邏輯滾動相應的位置。所以你必須支持AlloyTouch的:

to 方法

to(v [, time, easing])

其中time和easing不是必須。time的默認值是600.

第50秒

var items = document.querySelectorAll('#nav a');var scroller = document.querySelector('#carousel-scroller');Transform(scroller);new AlloyTouch({ touch: '#carousel-container',//反饋觸摸的dom vertical: false,//不必需,默認是true代表監聽豎直方向touch target: scroller, //運動的對象 property: 'translateX', //被運動的屬性 min: window.innerWidth * -3, //不必需,運動屬性的最小值 max: 0, //不必需,滾動屬性的最大值 step: window.innerWidth, inertia: false, //不必需,是否有慣性。默認是true touchEnd: function (evt, v, index) { var step_v = index * this.step * -1; var dx = v - step_v; if (v < this.min) { this.to(this.min); } else if (v > this.max) { this.to(this.max); } else if (Math.abs(dx) < 30) { this.to(step_v); } else if (dx > 0) { this.to(step_v + this.step); } else { this.to(step_v - this.step); } return false; }, animationEnd: function (evt , v) { var i = 0, len = items.length; for (; i < len; i++) { if (i === this.currentPage) { items[i].classList.add('active'); } else { items[i].classList.remove('active'); } } }})

因為一共四張圖,所以min得到的結果是 window.innerWidth * -3max的值依然是0step的值是 window.innerWidth通過設置 inertia: false,把慣性運動關掉注意看touchEnd里面的return false是為了不去計算手指離開屏幕后的校正位置、慣性運動等邏輯。touchEnd可以拿到當前的位置v以及當前所處的位置index。animationEnd是運動結束后的回調,用來設置nav的active。當然不是所有瀏覽器都支持classList,這里只是為了演示代碼足夠簡潔。再注意,在touchEnd和animationEnd中能拿到this,也就是AlloyTouch當前對象的實例。其中,to方法用來運動當前對象step是當前的步長還可以拿到currentPage去獲取當前所處的頁碼還能拿到min和max值,得到運動的區間。

最后

所有例子演示和代碼可以在Github上找到。

Github:https://github.com/AlloyTeam/AlloyTouch

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: JavaScript
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
一区在线观看| 模特精品在线| 天堂а√在线最新版中文在线| 国产精品nxnn| 三级精品视频| 欧美三级网址| 久久xxxx| 国产精品99久久免费观看| 日韩免费视频| 日韩一级不卡| 欧美亚洲一级| 美女少妇全过程你懂的久久| 国产精品白浆| 亚洲视频www| 亚洲人妖在线| 国产精品成人自拍| 日韩专区欧美专区| 国产综合激情| 欧美粗暴jizz性欧美20| 欧美午夜三级| 国产剧情在线观看一区| 91久久中文| 国产精品不卡| 日韩高清在线一区| 欧美综合另类| 日本精品国产| 国产精品久久国产愉拍| 久久精品亚洲| 欧美激情三区| 午夜一级久久| 嫩呦国产一区二区三区av| sm久久捆绑调教精品一区| 国产精品麻豆成人av电影艾秋| 欧美91在线| 日韩在线高清| 国产调教精品| 伊人国产精品| 国产99久久| 亚洲精品国产日韩| 成人免费电影网址| 日韩综合一区二区| 欧美特黄一级| 噜噜噜久久亚洲精品国产品小说| 婷婷成人av| 久久福利一区| 亚洲二区免费| 久久久精品久久久久久96| 久久精品午夜| 老司机精品视频在线播放| 欧美精品二区| 国产亚洲一卡2卡3卡4卡新区| 精品网站999| 日韩av黄色在线| 国产不卡人人| 首页国产欧美日韩丝袜| 偷拍亚洲精品| 高清不卡一区| 日韩中文字幕1| 乱一区二区av| 国产视频一区欧美| 天堂va欧美ⅴa亚洲va一国产| 水蜜桃精品av一区二区| 亚洲一区国产一区| 久久99蜜桃| 欧美91精品| 国产精品探花在线观看| 米奇777超碰欧美日韩亚洲| 国产精品羞羞答答在线观看| 91精品观看| 国产精选在线| 欧美一区二区三区久久精品| 成人久久一区| 国产极品久久久久久久久波多结野 | 婷婷综合社区| 国产亚洲精品精品国产亚洲综合| 136国产福利精品导航网址| 国产伦精品一区二区三区视频| 欧美91视频| 精品日产乱码久久久久久仙踪林| 久热综合在线亚洲精品| 狠狠躁少妇一区二区三区| 日本综合视频| 影音国产精品| www.九色在线| 欧美精品国产白浆久久久久| 9国产精品视频| 美女久久99| 亚洲精品日本| 亚洲天堂久久| 精品三级在线| 国产一精品一av一免费爽爽| 国产高清一区| 黄色aa久久| 蜜桃精品视频| 欧美另类中文字幕| 噜噜噜久久亚洲精品国产品小说| av在线日韩| 卡一卡二国产精品| 日韩av不卡一区二区| 亚洲一区久久| 婷婷成人基地| 成午夜精品一区二区三区软件| 日韩国产高清在线| 美女尤物久久精品| 伊人精品一区| 99久久婷婷这里只有精品| 精品久久久中文字幕| 国产精品欧美一区二区三区不卡 | 在线一区视频| 欧美+日本+国产+在线a∨观看| 天堂8中文在线最新版在线| 另类小说一区二区三区| 久久国际精品| 日本午夜精品一区二区三区电影 | 国产a亚洲精品| 国产精品theporn| 久久黄色影视| 国产欧美日韩亚洲一区二区三区| 日本综合视频| 日韩精品导航| 日韩毛片一区| 日本亚州欧洲精品不卡| 亚洲精品大全| 亚洲18在线| 免费人成黄页网站在线一区二区| 免费av一区二区三区四区| 久久精品国产99久久| 国产91一区| 9国产精品视频| 中文视频一区| 日韩在线成人| 欧美天堂一区二区| 欧美视频久久| 国产精品sm| 精品久久中文| 韩国久久久久久| 亚洲不卡av不卡一区二区| 久久亚洲精品中文字幕蜜潮电影| 99精品电影| 不卡中文字幕| 国产精品腿扒开做爽爽爽挤奶网站| 国产精品美女| 日韩精品久久久久久久软件91| 亚洲精品欧美| 青草av.久久免费一区| 国产精品jk白丝蜜臀av小说| 国产成人久久精品麻豆二区| 日韩欧美一区二区三区免费观看| 久久精品免费一区二区三区 | 欧美福利在线| 先锋亚洲精品| 91免费精品国偷自产在线在线| 久久久久伊人| 91中文字幕精品永久在线| 亚洲成av在线| 亚洲色诱最新| 色婷婷成人网| 老司机精品在线| 久久久久久久久丰满| 手机精品视频在线观看| 国产视频一区二区在线播放| 精品中文字幕一区二区三区| 在线一区视频观看| 亚洲一区二区毛片| 91麻豆精品激情在线观看最新| 精品国产亚洲日本| 国产精品99一区二区| 综合亚洲色图| 欧美一区成人| 国产精品高颜值在线观看| 天堂网在线观看国产精品| 亚洲18在线| 国产黄大片在线观看| 水蜜桃久久夜色精品一区的特点| 国产精品日本一区二区不卡视频| 精品成人免费一区二区在线播放| 国产免费成人| 精品视频在线你懂得| 在线日韩中文| 国产欧美午夜| 亚州av乱码久久精品蜜桃| 亚洲bt欧美bt精品777| 国产伊人久久| 亚洲一级在线| 红杏一区二区三区| 一区在线视频观看| 欧美日韩一区二区高清| 色婷婷狠狠五月综合天色拍| 婷婷综合国产| av在线资源| 亚洲精品免费观看| 久久久久免费| 日韩精品a在线观看91| 欧美sm一区| 欧美日韩午夜电影网| 欧美日韩国产欧| 国产不卡一区| 欧美精品国产| 国产真实久久| 欧美激情三区|