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样式中的 !important * _ 符号
Mar 09 HTML / CSS
CSS3教程(3):border-color网页边框色彩
Apr 02 HTML / CSS
检测用户浏览器是否支持CSS3的方法
Aug 29 HTML / CSS
50个强大璀璨的CSS3/JS技术运用实例
Feb 27 HTML / CSS
css3选择器基本介绍
Dec 15 HTML / CSS
CSS3模拟动画下拉菜单效果
Apr 12 HTML / CSS
CSS3 清除浮动的方法示例
Jun 01 HTML / CSS
html5视频播放_动力节点Java学院整理
Jul 13 HTML / CSS
HTML5视频播放插件 video.js介绍
Sep 29 HTML / CSS
iPhoneX安全区域(Safe Area)底部小黑条在微信小程序和H5的屏幕适配
Apr 08 HTML / CSS
html5移动端自适应布局的实现
Apr 15 HTML / CSS
Canvas 帧动画吃苹果小游戏
Aug 05 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
网页游戏开发入门教程二(游戏模式+系统)
2009/11/02 PHP
PHP 杂谈《重构-改善既有代码的设计》之三 重新组织数据
2012/04/09 PHP
thinkphp集成前端脚手架Vue-cli的教程图解
2018/08/30 PHP
(跨浏览器基础事件/浏览器检测/判断浏览器)经验代码分享
2013/01/24 Javascript
js中浮点型运算BUG的解决方法说明
2014/01/06 Javascript
setInterval计时器不准的问题解决方法
2014/05/08 Javascript
学习javascript面向对象 掌握创建对象的9种方式
2016/01/04 Javascript
Highcharts学习之数据列
2016/08/03 Javascript
详细分析Javascript中创建对象的四种方式
2016/08/17 Javascript
js控制div层的叠加简单方法
2016/10/15 Javascript
关于angular js_$watch监控属性和对象详解
2017/04/24 Javascript
详解利用 Vue.js 实现前后端分离的RBAC角色权限管理
2017/09/15 Javascript
原生JavaScript实现todolist功能
2018/03/02 Javascript
react PropTypes校验传递的值操作示例
2020/04/28 Javascript
Vue中正确使用Element-UI组件的方法实例
2020/10/13 Javascript
用python代码做configure文件
2014/07/20 Python
进一步了解Python中的XML 工具
2015/04/13 Python
浅谈dataframe中更改列属性的方法
2018/07/10 Python
Python中垃圾回收和del语句详解
2018/11/15 Python
Python实现繁?转为简体的方法示例
2018/12/18 Python
django之状态保持-使用redis存储session的例子
2019/07/28 Python
pyftplib中文乱码问题解决方案
2020/01/11 Python
Python实现遗传算法(二进制编码)求函数最优值方式
2020/02/11 Python
浅谈keras中的keras.utils.to_categorical用法
2020/07/02 Python
PyCharm 2020.2.2 x64 下载并安装的详细教程
2020/10/15 Python
Python与C/C++的相互调用案例
2021/03/04 Python
三星法国官方网站:Samsung法国
2019/10/31 全球购物
卫校中专生的自我评价
2014/01/15 职场文书
光信息科学与技术专业职业生涯规划
2014/03/13 职场文书
益达广告词
2014/03/14 职场文书
企业安全生产责任书
2014/04/14 职场文书
党的群众路线教育实践活动整改方案
2014/10/28 职场文书
党的群众路线教育实践活动个人整改措施落实情况
2014/11/04 职场文书
社区节水倡议书
2015/04/29 职场文书
人为什么会“幸灾乐祸”?
2019/08/06 职场文书
SQL Server携程核心系统无感迁移到MySQL实战
2022/06/01 SQL Server