js移动端事件

1.触摸事件
click事件多用于pc端,在移动端有延迟

touchstart() //手指触摸屏幕
touchmove() //手指在屏幕上移动
touchend() //手指离开屏幕
touchcancle() //触摸被系统事件终段

var d1 = document.getElementById("d1");
d1.addEventListener("touchstart",function(){
    console.log("触摸了");
    event.touches;
    //获取其中的一个触摸点 touches[0]
    var t = event.touches[0];

    /*
     * clientX / clientY
     * screenX / screntY
     * pageX / pageY
     */
    d1.innerHTML = "x:"+t.pageX+"\ny:"+t.pageY;

},false);

d1.addEventListener("touchmove",function(){
    d1.innerHTML +="触摸滑动";
})

d1.addEventListener("touchend",function(){
    d1.innerHTML += "触摸结束";
});

2.移动端对比PC端需要考虑性能优化:
实现动画时:
1.改变元素的位置,尽量不要使用定位修改left,top属性,推荐transform属性,渲染性能更好动画相比更流畅
2.移动端动画时,尽量游戏考虑使用css动画,若使用JS动画实现,则尽量避免使用计时器,优先考虑requestAnimationFrame()

var d2 = document.getElementById("d2");
var w=0;
function test(){
    w++;
    if(w<100){
        window.requestAnimationFrame(test);
    }
    d2.style.width = w + "%";
}

requestAnimationFrame(test);

3.requestAnimationFrame() 区别于计时器
1.不需要设置时间间隔,默认安装浏览器刷新频率
2.当窗口处于闲置状态,会自动暂停当前的动画;节省浏览器消耗,优化内存.如果窗口恢复计划状态动画会继续

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值