新兴API

2021-02-13 18:18

阅读:542

  • 接受一个参数,即在重绘屏幕之前调用的函数,这个函数负责改变下一次重绘的DOM,
    感觉效果可能和setTimeout差不多,但是不支持传第二个时间参数
  • 不过在火狐浏览器中,requestAnimationFrame方法传递的函数,可以传入一个时间吗参数,它代表从代码时间元年到现在的毫秒数()
    mozAnimationStartTime在火狐居然不行???
    只能用下面的这样兼容所有的浏览器
    function draw(){
    var div = document.querySelector("div");
    var drawStart = Date.now();
    var diff = drawStart - starttime;
    starttime = drawStart;
    div.style.width = (parseInt(div.style.width,10)+5)+"%";
    if(div.style.width !="100%"){
    console.log(diff);
    requestAnimationFrame(draw);
    }
    }
    var starttime = Date.now();
    requestAnimationFrame(draw);

  • page visibility API
    当检测用户是否在看着对应的document
  • 该API的document.hidden 返回一个boolean值,当页面不被展示的时候会true
  • document.visibilityState 不过这个属性有很差的兼容性问题,在Google下有三种状态visible,hidden,prerender
  • visibliitychange事件,当可见与不可见发生交替的时候,发生该事件
    document.addEventListener("webkitvisibilitychange",fn);
    function fn(){
    if(document.hidden){
    console.log("hidden")
    }else{
    console.log("visible");
    }
    }

  • console.log(navigator.geolocation);
    navigator.geolocation.getCurrentPosition(function(position){
    // console.log(position.coords.latitude)
    // console.log(position.coords.longitude)
    //
    console.log(position.coords.latitude,position.coords.longitude)
    },function(error){
    console.log(error.code,error.message)
    });


评论


亲,登录后才可以留言!