HTML5 device access 设备访问详解


Posted in HTML / CSS onMay 24, 2018

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 (触屏事件)

参考地址

  1. touchstart
  2. touchen
  3. touchcancel 电话的接入或者弹出信息等比较高级的事件触发,一般做保存操作
  4. touchmove
  5. 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="width: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();
    }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

HTML / CSS 相关文章推荐
CSS3中Transform动画属性用法详解
Jul 04 HTML / CSS
css3弹性盒子flex实现三栏布局的实现
Nov 12 HTML / CSS
html5+CSS3+JS实现七夕言情功能代码
Aug 28 HTML / CSS
前端canvas水印快速制作(附完整代码)
Sep 19 HTML / CSS
HTML5的标签的代码的简单介绍 HTML5标签的简介
May 28 HTML / CSS
html5 CSS过度-webkit-transition使用介绍
Jul 02 HTML / CSS
利用html5的websocket实现websocket聊天室
Dec 12 HTML / CSS
使用jquery实现HTML5响应式导航菜单教程
Apr 02 HTML / CSS
详解html5 canvas常用api总结(二)--绘图API
Dec 14 HTML / CSS
html5唤起app的方法
Nov 30 HTML / CSS
canvas绘制视频封面的方法
Feb 05 HTML / CSS
html5写一个BUI折叠菜单插件的实现方法
Sep 11 HTML / CSS
html5-canvas中使用clip抠出一个区域的示例代码
May 25 #HTML / CSS
基于 HTML5 的 WebGL 3D 版俄罗斯方块的示例代码
May 28 #HTML / CSS
HTML5探秘:用requestAnimationFrame优化Web动画
Jun 03 #HTML / CSS
html5触摸事件判断滑动方向的实现
Jun 05 #HTML / CSS
使用Canvas操作像素的方法
Jun 14 #HTML / CSS
Html5移动端获奖无缝滚动动画实现示例
Jun 25 #HTML / CSS
video结合canvas实现视频在线截图功能
Jun 25 #HTML / CSS
You might like
php将一维数组转换为每3个连续值组成的二维数组
2016/05/06 PHP
php数据库的增删改查 php与javascript之间的交互
2017/08/31 PHP
PHP设计模式之工厂方法设计模式实例分析
2018/04/25 PHP
js 提交和设置表单的值
2008/12/19 Javascript
基于jQuery的消息提示插件 DivAlert之旅(二)
2010/04/01 Javascript
Jquery 动态添加按钮实现代码
2010/05/06 Javascript
写给想学习Javascript的朋友一点学习经验小结
2010/11/23 Javascript
IFrame跨域高度自适应实现代码
2012/08/16 Javascript
canvas 绘制圆形时钟
2017/02/22 Javascript
ES6新特性八:async函数用法实例详解
2017/04/21 Javascript
jQuery使用ajax_动力节点Java学院整理
2017/07/05 jQuery
原生JS实现的自动轮播图功能详解
2018/12/28 Javascript
基于PHP pthreads实现多线程代码实例
2020/06/24 Javascript
[14:56]教你分分钟做大人:巫医
2014/10/30 DOTA
[01:04:06]DOTA2上海特级锦标赛A组资格赛#2 Secret VS EHOME第一局
2016/02/26 DOTA
Python之eval()函数危险性浅析
2014/07/03 Python
Python爬取数据并写入MySQL数据库的实例
2018/06/21 Python
使用python serial 获取所有的串口名称的实例
2019/07/02 Python
python django下载大的csv文件实现方法分析
2019/07/19 Python
Python统计分析模块statistics用法示例
2019/09/06 Python
Django之模板层的实现代码
2019/09/09 Python
Django框架HttpResponse对象用法实例分析
2019/11/01 Python
基于python plotly交互式图表大全
2019/12/07 Python
Numpy与Pytorch 矩阵操作方式
2019/12/27 Python
pycharm双击无响应(打不开问题解决办法)
2020/01/10 Python
Python基于QQ邮箱实现SSL发送
2020/04/26 Python
Elasticsearch py客户端库安装及使用方法解析
2020/09/14 Python
python 怎样进行内存管理
2020/11/10 Python
HTML5 WebSocket实现点对点聊天的示例代码
2018/01/31 HTML / CSS
北京鼎普科技股份有限公司软件测试面试题
2012/04/07 面试题
初中学生评语大全
2014/04/24 职场文书
关于工作经历的证明书
2014/10/11 职场文书
法律意见书范文
2015/05/20 职场文书
小学三年级语文教学反思
2016/03/03 职场文书
CSS的class与id常用的命名规则
2021/05/18 HTML / CSS
Python编程中内置的NotImplemented类型的用法
2022/03/23 Python