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 相关文章推荐
网页布局中CSS样式无效的十个重要原因详解
Aug 10 HTML / CSS
CSS3基础(RGBa、text-shadow、box-shadow、border-radius)
Nov 13 HTML / CSS
css3实现背景颜色渐变让图片不再是唯一的实现方式
Dec 18 HTML / CSS
基于CSS3特效之动画:animation的应用
May 09 HTML / CSS
CSS3的一个简单导航栏实现
Aug 03 HTML / CSS
基于CSS3实现的漂亮Menu菜单效果代码
Sep 10 HTML / CSS
css3学习系列之移动属性详解
Jul 04 HTML / CSS
CSS3实现多样的边框效果
May 04 HTML / CSS
详解css position 5种不同的值的用法
Jul 30 HTML / CSS
详解android与HTML混合开发总结
Jun 06 HTML / CSS
html5 横向滑动导航栏的方法示例
May 08 HTML / CSS
CSS精灵图的原理与使用方法介绍
Mar 17 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
整理的9个实用的PHP库简介和下载
2010/11/09 PHP
php 安全过滤函数代码
2011/05/07 PHP
php+mysqli使用面向对象方式更新数据库实例
2015/01/29 PHP
如何在HTML 中嵌入 PHP 代码
2015/05/13 PHP
PHP实现操作redis的封装类完整实例
2015/11/14 PHP
JS加ASP二级域名转向的代码
2007/05/17 Javascript
推荐20家国外的脚本下载网站
2011/04/28 Javascript
jquery组件使用中遇到的问题整理及解决
2014/02/21 Javascript
Area 区域实现post提交数据的js写法
2014/04/22 Javascript
浅析jQuery中调用ajax方法时在不同浏览器中遇到的问题
2014/06/11 Javascript
JavaScript中DOM详解
2015/04/13 Javascript
js获取及修改网页背景色和字体色的方法
2015/12/29 Javascript
详解基于vue的移动web app页面缓存解决方案
2017/08/03 Javascript
利用jsonp解决js读取本地json跨域的问题
2018/12/11 Javascript
angular6根据environments配置文件更改开发所需要的环境的方法
2019/03/06 Javascript
vuex+axios+element-ui实现页面请求loading操作示例
2020/02/02 Javascript
js数组中去除重复值的几种方法
2020/08/03 Javascript
解决vue axios跨域 Request Method: OPTIONS问题(预检请求)
2020/08/14 Javascript
PHP 502bad gateway原因及解决方案
2020/11/13 Javascript
[33:42]LGD vs OG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python的Flask框架中SQLAlchemy使用时的乱码问题解决
2015/11/07 Python
python字典的常用操作方法小结
2016/05/16 Python
Python使用pymysql小技巧
2017/06/04 Python
Python将多个excel表格合并为一个表格
2021/02/22 Python
Python3中编码与解码之Unicode与bytes的讲解
2019/02/28 Python
pytorch 加载(.pth)格式的模型实例
2019/08/20 Python
python实现矩阵和array数组之间的转换
2019/11/29 Python
Python numpy多维数组实现原理详解
2020/03/10 Python
Python类和实例的属性机制原理详解
2020/03/21 Python
python redis存入字典序列化存储教程
2020/07/16 Python
Python内置函数及功能简介汇总
2020/10/13 Python
HTML5等待加载动画效果
2017/07/27 HTML / CSS
先进个人获奖感言
2014/01/24 职场文书
小学美术教学反思
2014/02/01 职场文书
2014保险公司内勤工作总结
2014/12/16 职场文书
清洁员岗位职责
2015/02/15 职场文书