第一步:創建移動端頁面內 HTML + CSS 【注】可用彈性佈局 但需要注意的是 外層盒子的定位
第二步: 思考問題 要實現怎樣的效果?
1. 手指滑動時觸發事件【左右】兩個方向
2.點擊footer部分的下標實現切換效果
3.點擊footer部分的下標實現下標顏色變化
第三步;編寫JS代碼
添加監聽事件
document.addEventListener('DOMContentLoaded',function(){
創建一個數組用於調用數組屬性值 或者 方便【數值】的更改
【注】可以用數組 /對象 但對象更方便我們的使用
var postion = {
startX:0,
startY:0,
endX:0,
endY:0,
baseMoveX: window.innerHeight / 3,
index:1
}
獲取頁面元素 比不可少的一個步驟
var tab2 = document.getElementsByClassName('tab2')[0];//獲取到ul 思路: 用ul定位來實現頁面的切換 (ul的寬度設置成 innerWind * 4)
var li2 = document.getElementsByClassName('li2');//索引值不確定 且不寫先
var tab3 = document.querySelector('#tab3');
var li3 = document.querySelectorAll('.li3');
li3[0].style.color = '#58bc58';//設置默認的第一個下標的顏色
封裝一個函數用於清空下標 的顏色
function delite(){
for(var i = 0;i < li3.length; i++){
li3[i].style.color = '';
}
}
手指事件
【注】 這裡的原理和拖拽一抹一樣 (手指按下和 手指移動是 時 必須給給記錄 光標位置)
手指移動到位置上時候觸發 記錄鼠標移動座標
tab2.addEventListener('touchstart',function(e){
postion.startX = e.touches[0].clientX;
postion.startY = e.touches[0].clientY;
})
手指移動位置胡時候觸發 記錄鼠標移動座標
tab2.addEventListener('touchmove',function(en){
postion.endX = en.touches[0].clientX;
postion.endY = en.touches[0].clientY;
move();//當手指滑動時觸發函數 改變ul的定位
})
手指移開的時候定位
tab2.addEventListener('touchend',function(vent){
move(true);//手指鬆開時調用調用函(函數用於判斷 :滑動的距離是否超過絕對值 1.超過 (滑動到下一頁) 2.不超過 (位置定位在當前頁))
})
function move(_end){
var x = postion.startX - postion.endX;
var y = postion.startY - postion.endY;
滑動效果
if(postion.index < li2.length){//第一種情況==========left [用if 判斷:索引值是 1-3的時候可以 向左滑動 改變 ul的定位 【注】因為超出會造成用戶滑動出現空白頁面 ]
if(x > 0){//計算公式: 起點位置 - 終點位置 = x; 如果 x > 0 說明滑動的方向是左邊
//to left
閱讀更多 千鋒H5 的文章