首先,在图片的克隆问题上,PC端只需在原有最后一张图片后添加p1的克隆,而移动端因为触屏滚动的需求 在p1的前面需要再添加原有最后一张图片的克隆
其次,PC端在实现滚动动画效果时采用的方法是在 js 使用 animate 动画函数,而移动端则是采用 css3 的过渡效果实现滚动动画
ul.style.transition = 'all .3s'; //c3过渡效果 (ul存放图片)
ul.style.transform = 'translateX('+ translateX +'px)';
最大区别是,PC端是通过鼠标事件完成对元素的操作,而移动端则是通过触屏事件来完成
常见的触屏事件如下:
触屏touch事件 | 说明 |
touchstart | 手指触摸到一个DOM元素时触发 |
touchmove | 手指在一个DOM元素上滑动时触发 |
touchend | 手指从一个DOM元素上移开时触发 |
触摸事件对象( TouchEvent )
最常用:targetTouches 正在触摸当前DOM元素的手指列表
// 触摸事件对象
// 1. 获取元素
// 2. 手指触摸DOM元素事件
var div = document.querySelector('div');
div.addEventListener('touchstart', function(e) {
// console.log(e);
// touches 正在触摸屏幕的所有手指的列表
// targetTouches 正在触摸当前DOM元素的手指列表
// 如果侦听的是一个DOM元素,他们两个是一样的
// changedTouches 手指状态发生了改变的列表 从无到有 或者 从有到无
// 因为我们一般都是触摸元素 所以最经常使用的是 targetTouches
console.log(e.targetTouches[0]);
// targetTouches[0] 就可以得到正在触摸dom元素的第一个手指的相关信息比如 手指的坐标等等
});
// 3. 手指在DOM元素身上移动事件
div.addEventListener('touchmove', function() {
});
// 4. 手指离开DOM元素事件
div.addEventListener('touchend', function(e) {
// console.log(e);
// 当我们手指离开屏幕的时候,就没有了 touches 和 targetTouches 列表
// 但是会有 changedTouches
});
关于自动播放-无缝滚动功能,判断条件是等到图片滚动完毕再去判断,在PC端是等动画函数执行完去判断,而移动端是等c3过渡完成后判断 需要添加检测过渡完成事件 transitionend
总的来说,移动端相较于PC端更便利,因为在开发过程中无需考虑浏览器兼容性问题