zoukankan      html  css  js  c++  java
  • HTML5 device access 设备访问

    camera api (含图片预览)

    参考地址
    • 主要为利用input type=file, accept="image/*" 进行处理
    • 图片预览方式(两种)
    const file = e.target.files[0]
    // 方式1 
    const url1 = window.URL.createObjectURL(file);
    let url2
    
    // 方式2
    const reader = new FileReader();
    reader.onload = (e) => {
        url2 = e.target.result;
    };
    reader.readAsDataURL(file);

    touch events (触屏事件)

    参考地址
    • touchstart
    • touchend
    • touchcancel 电话的接入或者弹出信息等比较高级的事件触发,一般做保存操作
    • touchmove

    geolocation

    参考地址
    • 注意谷歌浏览器要https才能提供定位服务
        if (navigator.geolocation){
            navigator.geolocation.getCurrentPosition((position) => {
                this.geolocation = `latitude:${position.coords.latitude},longitude:${position.coords.longitude}`
            }, (err) => {
                console.log(err);
            }, {
                    enableHighAccuracy: true, 
                    maximumAge        : 30000,  // buffer memory timre
                    timeout           : 27000   // waiting time 
            })
        } else {
            alert('geolocation not supported!')
        }

    device orientation and motion

    参考地址
        window.addEventListener('deviceorientation',(doe) => {
            this.absolute = doe.absolute //false 表示方向数据由设备本身坐标系提供
            this.alpha = doe.alpha // 绕Z轴0-360 进入时手机水平正对的方向为0或360
            this.beta = doe.beta // 绕X轴-180~180 描述由前向后旋转
            this.gamma = doe.gamma // 绕Y轴-90~90 描述由左向右旋转
        }, true)
    
        // chrome v65 只支持accelerationIncludingGravity和interval(应该因为一些限制没有找到),其它浏览器最新版基本都支持
        window.addEventListener('devicemotion', (dme) => {
            this.acceleration = dme.acceleration
            this.accelerationIncludingGravity = dme.accelerationIncludingGravity
            this.rotationRate = dme.rotationRate
            this.interval  = dme.interval 
        }, false)

    Pointer Lock(鼠标锁定)

    参考地址
        <button onclick="lockPointer();">锁住它!</button>
        <div id="pointer-lock-element" style="500px;height:500px;background-color: red"></div>
    
        // 简单示例,将鼠标锁定在 pointer-lock-element 元素内
        let = document.getElementById("pointer-lock-element");
        
        document.addEventListener("mousemove", function(e) {
            var movementX = e.movementX 
                movementY = e.movementY
    
            // 打印鼠标移动的增量值。
            console.log("X=" + movementX, "Y=" + movementY);
        }, false);
    
        function lockPointer() {
            elem = document.getElementById("pointer-lock-element");
            elem.requestPointerLock = elem.requestPointerLock    ||
                                elem.mozRequestPointerLock ||
                                elem.webkitRequestPointerLock;
            elem.requestPointerLock();
        }
  • 相关阅读:
    Linux下安装firefox最新版
    php开发网站编码统一问题
    WordPress前台后台页面打开慢的解决方法
    超链接标签简单的几个样式属性
    jQuery结合Ajax实现简单的前端验证和服务端查询
    Javascript配合jQuery实现流畅的前端验证
    Code-Validator:验证只包含英文字母
    Code-Validator:验证小数
    Code-Validator:验证正整数
    Code-Validator:验证非负整数
  • 原文地址:https://www.cnblogs.com/10manongit/p/12797788.html
Copyright © 2011-2022 走看看