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

您的位置:首頁技術(shù)文章
文章詳情頁

JS組件庫AlloyTouch實現(xiàn)圖片輪播過程解析

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

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

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

JS組件庫AlloyTouch實現(xiàn)圖片輪播過程解析

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

第0秒

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

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

第10秒

<script src='http://m.b3g6.com/transformjs/transform.js'></script><script src='http://m.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,// 監(jiān)聽用戶橫向觸摸 target: scroller, //運動的對象 property: 'translateX', //被運動的屬性 min:0.88 * window.innerWidth * -5 + window.innerWidth, max: 0})

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

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

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

JS組件庫AlloyTouch實現(xiàn)圖片輪播過程解析

第30秒

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

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

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

比如上面是100:

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

第40秒

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

所以光使用校正是不夠。還需要一個API去阻止校正自己去注入邏輯滾動相應(yīng)的位置。所以你必須支持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代表監(jiān)聽豎直方向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得到的結(jié)果是 window.innerWidth * -3max的值依然是0step的值是 window.innerWidth通過設(shè)置 inertia: false,把慣性運動關(guān)掉注意看touchEnd里面的return false是為了不去計算手指離開屏幕后的校正位置、慣性運動等邏輯。touchEnd可以拿到當前的位置v以及當前所處的位置index。animationEnd是運動結(jié)束后的回調(diào),用來設(shè)置nav的active。當然不是所有瀏覽器都支持classList,這里只是為了演示代碼足夠簡潔。再注意,在touchEnd和animationEnd中能拿到this,也就是AlloyTouch當前對象的實例。其中,to方法用來運動當前對象step是當前的步長還可以拿到currentPage去獲取當前所處的頁碼還能拿到min和max值,得到運動的區(qū)間。

最后

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

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

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標簽: JavaScript
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
在线看片福利| 国产精品久av福利在线观看| 91精品国产经典在线观看| 欧美日韩国产观看视频| 国产亚洲一区二区三区不卡| 久久不射中文字幕| 一区二区三区四区在线观看国产日韩| 国产999精品在线观看| 久久精品凹凸全集| 午夜精品亚洲| 狠狠操综合网| 亚洲激情中文| 免费中文字幕日韩欧美| 亚洲人成精品久久久| 九九在线精品| 神马午夜久久| 97精品视频在线看| 亚洲成人不卡| 蜜桃视频一区二区三区在线观看| 国产视频亚洲| 丝袜a∨在线一区二区三区不卡| 亚洲涩涩在线| 女人天堂亚洲aⅴ在线观看| 亚洲精品美女| 欧美一区自拍| 精品国产亚洲一区二区三区在线| 中文不卡在线| 久久激情五月婷婷| 亚洲一二av| 国产探花一区二区| 亚洲精品一区三区三区在线观看| 91日韩欧美| 国产毛片一区| 亚洲精品在线二区| 麻豆视频观看网址久久| 久久亚洲二区| 欧美成a人片免费观看久久五月天| 精品国产网站| 激情欧美日韩一区| 青草综合视频| av不卡在线看| 免费在线观看一区| 国产精品免费看| 国产亚洲永久域名| 日韩av中文字幕一区二区| 久久在线视频免费观看| 日韩福利视频网| 99久久99久久精品国产片果冰| 在线亚洲成人| 日本久久综合| 国产欧美日韩在线观看视频| 久久影视一区| 成人亚洲一区| 欧美综合国产| 久久香蕉国产| 婷婷激情久久| 精品一区二区三区四区五区| 亚洲久草在线| 91综合网人人| 国产一区 二区| 国产精品蜜月aⅴ在线| 久久亚洲欧美| 国产在线欧美| 久久这里只有| 久久国产生活片100| 亚洲免费福利一区| 欧美日韩激情| 欧美亚洲精品在线| 国产精品黑丝在线播放| 免费亚洲婷婷| 国产一区二区三区久久久久久久久| 美女精品一区| 夜夜嗨一区二区| 欧美 日韩 国产一区二区在线视频| 久久久精品国产**网站| 国产精品久久乐| 日韩在线一二三区| 视频一区免费在线观看| 一区二区三区四区精品视频| 国产精品日本| 综合日韩在线| 亚洲一区国产一区| 最近国产精品视频| 91欧美极品| 欧美国产日韩电影| 不卡福利视频| 激情综合自拍| 日日夜夜免费精品视频| 欧美久久亚洲| 久久av导航| 亚洲不卡av不卡一区二区| 久久香蕉精品| 成人精品国产亚洲| 免费人成网站在线观看欧美高清| 国产精品日韩精品在线播放| 中文字幕高清在线播放| 好吊日精品视频| 国产成人免费视频网站视频社区| 国产专区精品| 成人在线丰满少妇av| 中文字幕在线看片| 久久精品网址| 精品五月天堂| 欧美日韩亚洲一区在线观看| 久久不卡日韩美女| 久久久久久自在自线| 久久青草久久| 欧美/亚洲一区| 综合亚洲视频| 日韩在线第七页| 香蕉久久久久久久av网站| 免费成人在线影院| 精品国产a一区二区三区v免费| 久久麻豆视频| 蜜桃av一区二区| 欧美日韩99| 少妇久久久久| 国产日韩欧美一区二区三区在线观看| 国产一区二区三区亚洲| 成人在线视频区| 亚洲一区资源| 亚洲精品在线国产| 首页欧美精品中文字幕| 成年男女免费视频网站不卡| 亚洲丝袜啪啪| 亚洲伦乱视频| 日本亚洲最大的色成网站www | 日韩一区二区三区在线看| 国产精品18| 丝袜美腿亚洲色图| 日韩深夜视频| 蜜臀国产一区二区三区在线播放| 成人精品国产亚洲| 一区在线视频观看| 97视频热人人精品免费| 日韩高清欧美激情| 欧美高清不卡| 亚洲国产福利| 国产日韩一区二区三免费高清| 模特精品在线| 精品久久视频| 麻豆精品蜜桃| 精品视频国内| 欧美精品99| 日韩午夜视频在线| 99re国产精品| 91成人精品| 亚洲精品小说| 91精品电影| 久久国产成人午夜av影院宅| 国产一区一一区高清不卡| 另类小说一区二区三区| 丝袜亚洲另类欧美| 日韩一区欧美二区| 国产日韩欧美一区二区三区 | 香蕉精品视频在线观看| 天堂√8在线中文| 91一区二区三区四区| 国产精品亚洲综合色区韩国| 欧美日一区二区在线观看| 日韩精品社区| 亚欧洲精品视频在线观看| 亚洲+小说+欧美+激情+另类| 久久国产免费看| 日本亚洲不卡| 国产精品白丝av嫩草影院| 国产福利91精品一区二区| 日韩精品诱惑一区?区三区| 国产成人精品一区二区三区免费| 日韩精品永久网址| 久久精品在线| 在线观看一区| 麻豆精品91| 老司机免费视频一区二区三区| 成年男女免费视频网站不卡| 亚洲天堂资源| 免费在线观看一区二区三区| 在线观看亚洲精品福利片| 日本91福利区| 成人在线超碰| 亚洲精品影视| 激情综合五月| 一区二区三区午夜视频| 国产成人黄色| 视频一区视频二区中文| 国产精品2区| 福利一区二区三区视频在线观看| 欧美高清一区| 日本在线视频一区二区| 国产福利资源一区| 国产韩日影视精品| 欧美精品二区| 日韩精品欧美| 国产精品久av福利在线观看| 蜜桃tv一区二区三区| 国产精品一区二区三区www| 在线看片不卡| 91精品一区二区三区综合在线爱| 91亚洲无吗| 男人的天堂久久精品|