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 相关文章推荐
button在IE6/7下的黑边去除方案
Dec 24 HTML / CSS
css3 中translate和transition的使用方法
Mar 26 HTML / CSS
HTML5的文档结构和新增标签完全解析
Apr 21 HTML / CSS
Html5 Canvas 实现一个“刮刮乐”游戏
Sep 05 HTML / CSS
HTML5中的Article和Section元素认识及使用
Mar 22 HTML / CSS
HTML5 的新的表单元素(datalist/keygen/output)使用介绍
Jul 19 HTML / CSS
一些常用的HTML5模式(pattern) 总结
Jul 14 HTML / CSS
HTML5本地存储之Web Storage详解
Jul 04 HTML / CSS
基于HTML5 Canvas的3D动态Chart图表的示例
Nov 02 HTML / CSS
Html5定位终极解决方案
Feb 05 HTML / CSS
CSS 伪元素::marker详解
Jun 26 HTML / CSS
在CSS中使用when/else的方法
Jan 18 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支持断点续传、分块下载的类
2016/05/02 PHP
php实现支持中文的文件下载功能示例
2017/08/30 PHP
PHP网页安全认证的实例详解
2017/09/28 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
2020/04/02 PHP
jquery中的sortable排序之后的保存状态的解决方法
2010/01/28 Javascript
Javascript面向对象设计一 工厂模式
2011/12/20 Javascript
通过jquery还原含有rowspan、colspan的table的实现方法
2012/02/10 Javascript
node.js下when.js 的异步编程实践
2014/12/03 Javascript
JavaScript基础函数整理汇总
2015/01/30 Javascript
JS模仿手机端九宫格登录功能实现代码
2016/04/28 Javascript
AngularJS 作用域详解及示例代码
2016/08/17 Javascript
基于jQuery实现无缝轮播与左右点击效果
2018/05/13 jQuery
Vue2 监听属性改变watch的实例代码
2018/08/27 Javascript
vue上传图片到oss的方法示例(图片带有删除功能)
2018/09/27 Javascript
使用RxJS更优雅地进行定时请求详析
2019/06/02 Javascript
Python求解平方根的方法
2015/03/11 Python
Python函数参数类型*、**的区别
2015/04/11 Python
Python学习笔记整理3之输入输出、python eval函数
2015/12/14 Python
解决Linux系统中python matplotlib画图的中文显示问题
2017/06/15 Python
python实现合并多个list及合并多个django QuerySet的方法示例
2019/06/11 Python
Python实现制度转换(货币,温度,长度)
2019/07/14 Python
python实现证件照换底功能
2019/08/20 Python
Django 实现外键去除自动添加的后缀‘_id’
2019/11/15 Python
python清空命令行方式
2020/01/13 Python
Python PIL库图片灰化处理
2020/04/07 Python
python filecmp.dircmp实现递归比对两个目录的方法
2020/05/22 Python
python中有帮助函数吗
2020/06/19 Python
详解css position 5种不同的值的用法
2019/07/30 HTML / CSS
彪马英国官网:PUMA英国
2019/02/11 全球购物
淘宝店铺营销方案
2014/02/13 职场文书
亲子运动会的活动方案
2014/08/17 职场文书
上班迟到检讨书
2014/09/15 职场文书
离婚协议书怎么写2014
2014/09/30 职场文书
答谢词范文
2015/01/05 职场文书
送给火锅店的创意营销方案!
2019/07/08 职场文书
十大必看国产动漫排名,魁拔上线,第二曾在日本播出
2022/03/18 国漫