电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

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

瀏覽:113日期: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.hdgsjgj.cn/bcjs/asset/ci1.jpg'> <img src='http://www.hdgsjgj.cn/bcjs/asset/ci2.jpg'> <img src='http://www.hdgsjgj.cn/bcjs/asset/ci3.jpg'> <img src='http://www.hdgsjgj.cn/bcjs/asset/ci4.jpg'> <img src='http://www.hdgsjgj.cn/bcjs/asset/ci5.jpg'> </div> </div></div>

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

第10秒

<script src='http://www.hdgsjgj.cn/transformjs/transform.js'></script><script src='http://www.hdgsjgj.cn/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
相關文章:
主站蜘蛛池模板: 【中联邦】增稠剂_增稠粉_水性增稠剂_涂料增稠剂_工业增稠剂生产厂家 | 纯水设备_苏州皙全超纯水设备水处理设备生产厂家 | elisa试剂盒价格-酶联免疫试剂盒-猪elisa试剂盒-上海恒远生物科技有限公司 | 微型实验室真空泵-无油干式真空泵-微型涡旋耐腐蚀压缩机-思科涡旋科技(杭州)有限公司 | 最新电影-好看的电视剧大全-朝夕电影网 | 杭州月嫂技术培训服务公司-催乳师培训中心报名费用-产后康复师培训机构-杭州优贝姆健康管理有限公司 | 碳化硅,氮化硅,冰晶石,绢云母,氟化铝,白刚玉,棕刚玉,石墨,铝粉,铁粉,金属硅粉,金属铝粉,氧化铝粉,硅微粉,蓝晶石,红柱石,莫来石,粉煤灰,三聚磷酸钠,六偏磷酸钠,硫酸镁-皓泉新材料 | 幂简集成 - 品种超全的API接口平台, 一站搜索、试用、集成国内外API接口 | 超高频感应加热设备_高频感应电源厂家_CCD视觉检测设备_振动盘视觉检测设备_深圳雨滴科技-深圳市雨滴科技有限公司 | 主题班会网 - 安全教育主题班会,各类主题班会PPT模板 | 汽车整车综合环境舱_军标砂尘_盐雾试验室试验箱-无锡苏南试验设备有限公司 | 日本SMC气缸接头-速度控制阀-日本三菱伺服电机-苏州禾力自动化科技有限公司 | 包塑丝_高铁绑丝_地暖绑丝_涂塑丝_塑料皮铁丝_河北创筹金属丝网制品有限公司 | 盐水蒸发器,水洗盐设备,冷凝结晶切片机,转鼓切片机,絮凝剂加药系统-无锡瑞司恩机械有限公司 | 学生作文网_中小学生作文大全与写作指导| 气弹簧定制-气动杆-可控气弹簧-不锈钢阻尼器-工业气弹簧-可调节气弹簧厂家-常州巨腾气弹簧供应商 | 志高装潢官网-苏州老房旧房装修改造-二手房装修翻新 | 除甲醛公司-甲醛检测治理-杭州创绿家环保科技有限公司-室内空气净化十大品牌 | 上海皓越真空设备有限公司官网-真空炉-真空热压烧结炉-sps放电等离子烧结炉 | 渗透仪-直剪仪-三轴仪|苏州昱创百科| 天津力值检测-天津管道检测-天津天诚工程检测技术有限公司 | 【官网】博莱特空压机,永磁变频空压机,螺杆空压机-欧能优 | 步进_伺服_行星减速机,微型直流电机,大功率直流电机-淄博冠意传动机械 | 球形钽粉_球形钨粉_纳米粉末_难熔金属粉末-广东银纳官网 | 电气控制系统集成商-PLC控制柜变频控制柜-非标自动化定制-电气控制柜成套-NIDEC CT变频器-威肯自动化控制 | 机制砂选粉机_砂石选粉机厂家-盐城市助成粉磨科技有限公司 | 通辽信息港 - 免费发布房产、招聘、求职、二手、商铺等信息 www.tlxxg.net | 泥沙分离_泥沙分离设备_泥砂分离机_洛阳隆中重工机械有限公司 | 仿古建筑设计-仿古建筑施工-仿古建筑公司-汉匠古建筑设计院 | 西安微信朋友圈广告投放_微信朋友圈推广_西安度娘网络科技有限公司 | 胶水,胶粘剂,AB胶,环氧胶,UV胶水,高温胶,快干胶,密封胶,结构胶,电子胶,厌氧胶,高温胶水,电子胶水-东莞聚力-聚厉胶粘 | 范秘书_懂你的范文小秘书| 药品仓库用除湿机-变电站用防爆空调-油漆房用防爆空调-杭州特奥环保科技有限公司 | 广州市哲铭油墨涂料有限公司,水性漆生产研发基地 | 数年网路-免费在线工具您的在线工具箱-shuyear.com | 苏商学院官网 - 江苏地区唯一一家企业家自办的前瞻型、实操型商学院 | 光纤测温-荧光光纤测温系统-福州华光天锐光电科技有限公司 | 精密五金冲压件_深圳五金冲压厂_钣金加工厂_五金模具加工-诚瑞丰科技股份有限公司 | b2b网站大全,b2b网站排名,找b2b网站就上地球网 | 活性氧化铝球|氧化铝干燥剂|分子筛干燥剂|氢氧化铝粉-淄博同心材料有限公司 | 学生作文网_中小学生作文大全与写作指导 |