FoxSlider.js 稱不上庫的庫
用慣了各類各樣的組件,並無真正意義上的封裝一個能夠拖拽切屏的輪播圖,通過一番編寫,發現寫這樣一個輪播圖要想寫的好,還真的是挺有難度,不一樣設備的不一樣事件完備性?事件觸發時機的把控?如何更好的去封裝?自適應窗口後的事件重置?等等...,看看swiper這個庫的源碼,就知道小事情也能夠不簡單。
如今寫的這個基本的需求是能夠知足的,能夠經過拖拽切換也能夠點擊切換。html
傳送點不了的能夠複製連接: github.com/forrestyuan…git
原生擼碼一時爽,一直原生一直爽github
html 結構代碼數組
<!-- 引入js文件 --> <script src="js/base.js"></script> <!-- 主要dom結構 --> <div class="slider-container"> <div class="slide-bar"> <div class="slider "> <img src="assets/slider1.jpg" alt=""> </div> <div class="slider"> <img src="assets/slider2.jpg" alt=""> </div> <div class="slider"> <img src="assets/slider3.jpg" alt=""> </div> </div> <div class="slider-pin"> <span class="pin on"></span> <span class="pin"></span> <span class="pin"></span> </div> </div> 複製代碼
js 代碼markdown
//實例化TouchPlugin,傳入參數 var tp = new TouchPlugin({ sliderContainer:'.slider-container', slider:'.slider', slidePin:'.slider-pin', sliderBar:'.slide-bar', pinClassName:'on', pin:'.pin', callback:function(e, dir, distance){ console.log(dir, distance); } }); 複製代碼
運行效果dom
base.js
內主要方法init()
初始化函數ide
Kind: global function函數
刷新參數oop
Kind: global function
Param | Type | Description |
---|---|---|
totalMoveLen | number |
滾動位移 |
spinIndex | number |
輪播指標高亮下標 |
設置指定對象移動樣式 (transform)
Kind: global function
Param | Type | Description |
---|---|---|
domNode | Object |
應用移動樣式的對象 |
conf | Object |
配置對象(animateStyle: ease-in-out |
moveLen | number |
輪播圖移動距離(切屏經過控制位移) |
改變屏幕尺寸重置參數
Kind: global function
自動輪播
Kind: global function
Param | Type | Description |
---|---|---|
time | number |
輪播時間 |
initStep | number |
spin下標 和下一屏 |
判斷鼠標或觸摸移動的方向
Kind: global function
Param | Type | Description |
---|---|---|
curX | number |
鼠標點擊或開始觸摸屏幕時的座標X |
preX | numer |
鼠標移動或觸摸移動時的座標X |
檢測當前設備支持的事件(鼠標點擊移動和手觸摸移動)
Kind: global function
獲取鼠標橫座標位置
Kind: global function
Param | Type | Description |
---|---|---|
event | Event |
事件對象 |
取消綁定觸摸或鼠標點擊移動事件
Kind: global function
Param | Type | Description |
---|---|---|
domNode | Object |
須要被取消綁定事件節點對象 |
從新綁定觸摸事件
Kind: global function
Param | Type | Description |
---|---|---|
domNode | Object |
須要被綁定事件節點對象 |
callback | function |
回調方法 |
isUnbind | boolean |
是否取消綁定 |
移除節點的樣式類名
Kind: global function
Param | Type | Description |
---|---|---|
nodeList | Array |
被移除樣式的節點數組 |
clsName | string |
移除的樣式類名稱 |
添加樣式
Kind: global function
Param | Type | Description |
---|---|---|
node | Object |
添加類名的節點 |
clsName | string |
樣式類名 |
點擊輪播spin 切換屏
Kind: global function
經過檢測dom節點是否包含某個樣式名來判斷是否屬於目標target
Kind: global function
Param | Type |
---|---|
domNode | Object |
clsName | string |
Kind: global function
Param | Type | Description |
---|---|---|
domNode | Object |
綁定事件的代理對象 |
callback | function |
回調方法 |
isUnbind | boolean |
是否取消綁定 |