音悦台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. 加速完的状态更新
};