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 3D立方体效果示例-transform也不过如此
Dec 05 HTML / CSS
CSS3属性box-sizing使用指南
Dec 09 HTML / CSS
纯CSS3代码实现文字描边
Apr 25 HTML / CSS
纯CSS3制作的鼠标悬停时边框旋转
Jan 03 HTML / CSS
HTML5中使用postMessage实现Ajax跨域请求的方法
Apr 19 HTML / CSS
HTML5中实现拖放效果无须借助javascript
Dec 26 HTML / CSS
使用html5+css3来实现slider切换效果告别javascript+css
Jan 08 HTML / CSS
HTML5+JS实现俄罗斯方块原理及具体步骤
Nov 29 HTML / CSS
配置H5的滚动条样式的示例代码
Mar 09 HTML / CSS
Html5 video标签视频的最佳实践
Feb 26 HTML / CSS
Html+Css+Jquery实现左侧滑动拉伸导航菜单栏的示例代码
Mar 17 HTML / CSS
CSS3点击按钮圆形进度打钩效果的实现代码
Mar 30 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 获取当前访问的url文件名的方法小结
2010/02/08 PHP
PHP FOR MYSQL 代码生成助手(根据Mysql里的字段自动生成类文件的)
2011/07/23 PHP
php 中英文语言转换类代码
2011/08/11 PHP
PHP编程中的常见漏洞和代码实例
2014/08/06 PHP
php metaphone()函数及php localeconv() 函数实例解析
2016/05/15 PHP
学习thinkphp5.0验证类使用方法
2017/11/16 PHP
phpinfo的知识点总结
2019/10/10 PHP
基于JQuery的一个简单的鼠标跟随提示效果
2010/09/23 Javascript
JavaScript函数的4种调用方法详解
2014/04/22 Javascript
点击表单提交时出现jQuery没有权限的解决方法
2014/07/23 Javascript
理解javascript中的原型和原型链
2015/07/30 Javascript
js实现图片淡入淡出切换简易效果
2016/08/22 Javascript
vue项目环境变量配置的实现方法
2018/10/12 Javascript
Django+vue跨域问题解决的详细步骤
2019/01/20 Javascript
在vue中根据光标的显示与消失实现下拉列表
2019/09/29 Javascript
Vue项目页面跳转时浏览器窗口上方显示进度条功能
2020/03/26 Javascript
VueQuillEditor富文本上传图片(非base64)
2020/06/03 Javascript
python读取TXT到数组及列表去重后按原来顺序排序的方法
2015/06/26 Python
Python学习教程之常用的内置函数大全
2017/07/14 Python
Python 数据处理库 pandas 入门教程基本操作
2018/04/19 Python
Python 使用PIL中的resize进行缩放的实例讲解
2018/08/03 Python
pytorch masked_fill报错的解决
2020/02/18 Python
Python使用tkinter实现摇骰子小游戏功能的代码
2020/07/02 Python
Python容器类型公共方法总结
2020/08/19 Python
使用html5+css3来实现slider切换效果告别javascript+css
2013/01/08 HTML / CSS
美国生日蛋糕店:Bake Me A Wish!
2017/02/08 全球购物
面向对象编程是如何提高软件开发水平的
2014/05/06 面试题
在什么时候需要使用"常引用"
2015/12/31 面试题
党员公开承诺书和承诺事项
2014/03/25 职场文书
暑期社会实践先进个人主要事迹
2014/05/22 职场文书
食品安全宣传标语
2014/06/07 职场文书
敬老院标语
2014/06/27 职场文书
党员承诺书范文2015
2015/04/27 职场文书
预备党员半年考察意见
2015/06/01 职场文书
《花钟》教学反思
2016/02/17 职场文书
干货!开幕词的写作方法
2019/04/02 职场文书