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绘制天猫logo实现代码
Nov 06 HTML / CSS
CSS3正方体旋转示例代码
Aug 08 HTML / CSS
CSS3实现多背景模拟动态边框的效果
Nov 08 HTML / CSS
10分钟理解CSS3 Grid布局
Dec 20 HTML / CSS
浅析CSS3 用text-overflow解决文字排版问题
Oct 28 HTML / CSS
详解rem 适配布局
Oct 31 HTML / CSS
HTML5页面音视频在微信和app下自动播放的实现方法
Oct 20 HTML / CSS
处理textarea中的换行和空格
Dec 12 HTML / CSS
吃透移动端 Html5 响应式布局
Dec 16 HTML / CSS
CSS3实现360度循环旋转功能
Feb 12 HTML / CSS
css常用字体属性与背景属性介绍
Feb 28 HTML / CSS
如何用H5实现好玩的2048小游戏
Jul 23 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
WML,Apache,和 PHP 的介绍
2006/10/09 PHP
使用 eAccelerator加速PHP代码的目的
2007/03/16 PHP
linux实现php定时执行cron任务详解
2013/12/24 PHP
thinkphp5框架前后端分离项目实现分页功能的方法分析
2019/10/08 PHP
JS 判断undefined的实现代码
2009/11/26 Javascript
jQuery中(function($){})(jQuery)详解
2015/07/15 Javascript
针对BootStrap中tabs控件的美化和完善(推荐)
2016/07/06 Javascript
Vue.js每天必学之构造器与生命周期
2016/09/05 Javascript
使用BootStrap实现悬浮窗口的效果
2016/12/13 Javascript
jQuery实现获取隐藏div高度的方法示例
2017/02/09 Javascript
JavaScript实现简单的树形菜单效果
2017/06/23 Javascript
vue中的router-view组件的使用教程
2018/10/23 Javascript
vue分页插件的使用方法
2019/12/25 Javascript
python保存字符串到文件的方法
2015/07/01 Python
python中的计时器timeit的使用方法
2017/10/20 Python
python实现反转部分单向链表
2018/09/27 Python
在Python中使用Neo4j的方法
2019/03/14 Python
选择python进行数据分析的理由和优势
2019/06/25 Python
使用IDLE的Python shell窗口实例详解
2019/11/19 Python
Python绘图实现显示中文
2019/12/04 Python
Python自动化xpath实现自动抢票抢货
2020/09/19 Python
html5新特性与用法大全
2018/09/13 HTML / CSS
HTML5 本地存储和内容按需加载的思路和方法
2011/04/07 HTML / CSS
HTML5 绘制图像(上)之:关于canvas元素引领下一代web页面的问题
2013/04/24 HTML / CSS
英国泰坦旅游网站:全球陪同游览,邮轮和铁路旅行
2016/11/29 全球购物
植村秀美国官网:Shu Uemura美国
2019/03/19 全球购物
澳大利亚领先的男装零售连锁店:Lowes
2020/08/07 全球购物
XMLHttpRequest对象在IE和Firefox中创建方式有没有不同
2016/03/23 面试题
酒吧副总经理岗位职责
2013/12/10 职场文书
军人违纪检讨书
2014/02/04 职场文书
党的群众路线教育实践活动个人批评与自我批评
2014/10/16 职场文书
2015年学生会部门工作总结
2015/04/21 职场文书
休假证明书
2015/06/24 职场文书
2016形势与政策学习心得体会
2016/01/12 职场文书
2019年教师入党申请书
2019/06/27 职场文书
redis 存储对象的方法对比分析
2021/08/02 Redis