音悅臺html
/**** 變量定義 ****/ @px: 67.5rem; /**** Start ****/ #wrap { width: 100%; height: 100%; background-color: #eee; #content { width: 1080/@px; height: 135/@px; background-color: #96b377; } }
移動端 默認有 a元素的高亮 設置成 透明色 web
a { -webkit-tap-hightlight-color: rgba(0, 0, 0, 0); }
1. 父元素 font-size: 0;
2. float: left;算法
文本永不換行(實現長導航欄)less
375 屏幕大小函數
white-space: nowrap;動畫
float: left; 浮動/定位,由子元素撐開寬度spa
font-size: 0;code
touchstartorm
元素清除 動畫.style.transition = "0s none";htm
拉:愈來愈難拉
釋放: 加速效果
font-size: 1rem; 注意:不是 1/@rem;
解決行內塊的縫:
誤觸 解決方法:
touchstart 設置 isClick = true; 在 touchmove 中 isClick = false;
手指在滑屏,可是圖片被滑動
單方向→多方向(isFirst取第一次 move 一小段 touchmove,若是 touchmoveY 大於 touchmoveX,則本次滑屏始終禁止)
不能使用 border 實現
tabWrap.addEventListener("transitionend", func, false);
tabWrap.removeEventListener(webkitTransitionend", func);
加上 3D 效果
// 加 3D 效果,由於 3D 效果渲染比 2D 快得多 transformEle(ulList, "translateZ", 0.1);
在滑動加速過程當中,點擊屏幕,中止加速
過渡 覆蓋操做
過渡 在元素沒加載完,沒有過渡效果
沒有中過程值,沒有過渡效果
過渡 最終檢測的是 起點到終點的整個過程,中間過程捕捉不到。
https://www.cnblogs.com/bluedream2009/archive/2010/06/19/1760909.html
Linear: function {... ...},
back + easeOut
先找到 back ,back 中有個 easeOut: function{... ...}
};
t 當前次數
b 元素的初始位置
c 元素 結束位置 與 初始位置 的距離差
d 總次數 (從0-100,是一次性跑過去,仍是 d 次跑過去)
s 回彈係數 s 越大,回彈越遠 s 默認值 爲 1.70158
Tween["Linear"](); 調用,返回值 當前次數運動到的位置
每次開啓定時器以前,記得先關,保證始終只有一個定時器在運行。
記得在次數完成時,關定時器。
// 豎向 滑屏加速 與 橡皮筋特效 須要封裝 translateY 的 transform 函數
// 元素 目標位置 總時間 類型(勻速 或者 回彈)
function tweenMove(ele, target, timeAll, type){ var t = 0; // t : 當前次數 var b = transformCss(ele,'translateY'); // b : 元素初始位置 var c = target - b; // c : 元素結束位置與初始位置 距離差 var d = timeAll/0.02; // d : 總次數 = 總時間/每次花費的時間 //重置開啓定時器,清除上一次的定時器 var timer = 0; clearInterval(timer); timer = setInterval(function(){ t++; if(t > d){ clearInterval(timer); // 元素中止狀態 中止定時器 }else{ var point = Tween[type](t,b,c,d); // 元素正常走的狀態(加速和回彈) transformCss(ele,'translateY',point); }; },20); };
start: function(){
滾動條的顯示
}, // 1. 觸屏的狀態
move: function(){
滾動條顯示
滾動條移動
}, // 2. 監測 touchmove 3.加速狀態
end: function(){} // 4. 加速完的狀態更新
};