移动端适配、移动端事件,理想视口
来源:互联网 发布:电表数据丢失 编辑:程序博客网 时间:2024/06/16 16:59
禁止滚动条
取消滚动条的默认样式:html{height:100%;overflow:hidden;} body{height:100%;overflow:hidden;}并在js中写入:document.addEventListener('touchstart',function(event){ event.preventDefault();})
移动端事件
changedTouches 触发当前事件手指的列表(默认是一个)【经常使用】 (当前事件) targetTouches 触发当前目标元素上的手指列表(可以是多个) (当前元素)touches 当前屏幕上的手指列表(可以是多个) (屏幕上的手指数) 使用时使用的是 changedTouches[0]; eg. 获取event事件中的clientX属性__ event.changedTouches[0].clientX
在移动端操作必做的步骤: 1. <meta name="viewport" content="width=device-width,initial-scale=1.0 /> 2. * {margin:0; padding:0;} (某些Chrome不能取消默认行为时 *{action-touch:none;}) html,body{height:100%; overflow:hidden;} 3. document.addEventListener('touchstart',function(event){ event.preventDefault;})
meta
<meta name="viewport" content="" /> width [pixel_value | device-width] width -- 直接去设置具体数值大部分的安卓手机是不支持的 但是IOS支持 initial-scale 初始缩放比例 user-scalable 是否允许缩放 (no||yes),默认允许 minimum-scale 允许缩放的最小比例 maximum-scale 允许缩放的最大比例 target-densitydpi -- dpi_value 70–400 //每英寸像素点的个数 -- device-dpi 设备默认像素密度2 -- high-dpi 高像素密度 -- medium-dpi 中等像素密度 -- low-dpi 低像素密度 -- webkit内核不再支持了 height完整的meta标签:<meta name="viewport" content="width=device-width,height=device-height,user-scalable=no,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,target-densitydpi=device-dpi" /> width就是用来控制布局视口的大小的,width=device-width会使布局视口的大小变成理想视口的大小 (即独立设备像素代表的大小) inital-scale缩放是根据理想视口来计算的,这个缩放不同于我们用户的缩放,它会使布局视口跟随着我们的视觉视口一起转变所以只设置inital-scale=1其实等同于只设置width=device-width当width与initial-scale的设置发生冲突时,谁大听谁的(本质上这两个操作的功能是一样的, 不同的浏览器解析方式不同,可能只识别其中的一个)
适配
- em:参照元素自身字体的大小(font-size是可继承的属性)
- rem:参照html字体的大小 (html{ }中写的font-size大小)
- 实质:一个css像素在不同设备上包含的物理像素不同,适配是为了实现等比效果
rem适配
(设计图大,需要缩小操作时使用)
<style type="text/css"> *{ margin: 0; padding: 0; } #box{ width: 1rem; height: 1rem; background-color: plum; } </style></head><body> <div id="box"> hc </div> <script type="text/javascript">(function(){ var width=document.documentElement.clientWidth; var styleNode=document.createElement('style'); styleNode.innerHTML='html{font-size:'+ width+'px!important;}'; document.head.appendChild(styleNode); })();本质:操作html字体大小优点:使用meta标签 等比效果 图片失真不明显缺点: 计算复杂
vw:
viewpoint适配
(设计图小,需要放大操作时使用)
<style type="text/css"> *{ margin: 0; padding: 0; } #box1{ width: 200px; height: 200px; background-color: plum; } </style></head><body> <div id="box1"> </div> <script type="text/javascript"> var width=document.documentElement.clientWidth; var targetM=320; var scale=width/targetM; var metaDom=document.querySelector('meta[name="viewport"]'); metaDom.setAttribute('content','initial-scale=' + scale); </script>本质:改变initial-scale的值优点: 等比效果 没有复杂的计算缺点: 没有meta标签 图片失真明显
initial-scale=1.0
缩放是根据理想视口来计算的
页面有个布局视图,布局视图在没有设置初始化缩放比例的情况下,
会默认将整个页面缩放到视觉视图,这时就有缩放,
如果设置默认缩放比例为1,则不会产生缩放,滚动条出现
禁止滚动条
取消滚动条的默认样式:html{height:100%;overflow:hidden;} body{height:100%;overflow:hidden;}并在js中写入:document.addEventListener('touchstart',function(event){ event.preventDefault();})
移动端事件
changedTouches 触发当前事件手指的列表(默认是一个)【经常使用】 (当前事件) targetTouches 触发当前目标元素上的手指列表(可以是多个) (当前元素)touches 当前屏幕上的手指列表(可以是多个) (屏幕上的手指数) 使用时使用的是 changedTouches[0]; eg. 获取event事件中的clientX属性__ event.changedTouches[0].clientX
在移动端操作必做的步骤: 1. <meta name="viewport" content="width=device-width,initial-scale=1.0 /> 2. * {margin:0; padding:0;} (某些Chrome不能取消默认行为时 *{action-touch:none;}) html,body{height:100%; overflow:hidden;} 3. document.addEventListener('touchstart',function(event){ event.preventDefault;})
meta
<meta name="viewport" content="" /> width [pixel_value | device-width] width -- 直接去设置具体数值大部分的安卓手机是不支持的 但是IOS支持 initial-scale 初始缩放比例 user-scalable 是否允许缩放 (no||yes),默认允许 minimum-scale 允许缩放的最小比例 maximum-scale 允许缩放的最大比例 target-densitydpi -- dpi_value 70–400 //每英寸像素点的个数 -- device-dpi 设备默认像素密度2 -- high-dpi 高像素密度 -- medium-dpi 中等像素密度 -- low-dpi 低像素密度 -- webkit内核不再支持了 height完整的meta标签:<meta name="viewport" content="width=device-width,height=device-height,user-scalable=no,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,target-densitydpi=device-dpi" /> width就是用来控制布局视口的大小的,width=device-width会使布局视口的大小变成理想视口的大小 (即独立设备像素代表的大小) inital-scale缩放是根据理想视口来计算的,这个缩放不同于我们用户的缩放,它会使布局视口跟随着我们的视觉视口一起转变所以只设置inital-scale=1其实等同于只设置width=device-width当width与initial-scale的设置发生冲突时,谁大听谁的(本质上这两个操作的功能是一样的, 不同的浏览器解析方式不同,可能只识别其中的一个)
适配
- em:参照元素自身字体的大小(font-size是可继承的属性)
- rem:参照html字体的大小 (html{ }中写的font-size大小)
- 实质:一个css像素在不同设备上包含的物理像素不同,适配是为了实现等比效果
rem适配
(设计图大,需要缩小操作时使用)
<style type="text/css"> *{ margin: 0; padding: 0; } #box{ width: 1rem; height: 1rem; background-color: plum; } </style></head><body> <div id="box"> hc </div> <script type="text/javascript">(function(){ var width=document.documentElement.clientWidth; var styleNode=document.createElement('style'); styleNode.innerHTML='html{font-size:'+ width+'px!important;}'; document.head.appendChild(styleNode); })();本质:操作html字体大小优点:使用meta标签 等比效果 图片失真不明显缺点: 计算复杂
vw:
viewpoint适配
(设计图小,需要放大操作时使用)
<style type="text/css"> *{ margin: 0; padding: 0; } #box1{ width: 200px; height: 200px; background-color: plum; } </style></head><body> <div id="box1"> </div> <script type="text/javascript"> var width=document.documentElement.clientWidth; var targetM=320; var scale=width/targetM; var metaDom=document.querySelector('meta[name="viewport"]'); metaDom.setAttribute('content','initial-scale=' + scale); </script>本质:改变initial-scale的值优点: 等比效果 没有复杂的计算缺点: 没有meta标签 图片失真明显
initial-scale=1.0
缩放是根据理想视口来计算的
页面有个布局视图,布局视图在没有设置初始化缩放比例的情况下,
会默认将整个页面缩放到视觉视图,这时就有缩放,
如果设置默认缩放比例为1,则不会产生缩放,滚动条出现
阅读全文
0 0
- 移动端适配、移动端事件,理想视口
- 移动端 触摸事件
- 移动端事件
- 移动端事件
- 移动端keyup事件
- 移动端touch事件
- Js_11_移动端事件
- 移动端基本事件
- 移动端事件详解
- 移动端事件介绍
- 移动端触摸事件
- 移动端事件基础
- 移动端触摸事件
- 移动端触摸事件
- 移动端触摸事件
- 移动端JS事件、移动端框架
- 移动web 移动端Touch事件
- 移动端js触摸事件
- 《将博客搬至CSDN》
- 【containerd 1.0 源码分析】ctr containers list 源码分析
- JavaWeb项目中没有错,但是项目上面显示一个红叉的解决办法
- 学习ios碰到[UITableViewCellContentView setImage:]: unrecognized selector sent to instance 0x7fa450440dc0
- 慕课java第三季-异常与异常处理:借书系统
- 移动端适配、移动端事件,理想视口
- scikit-learn的特征工程
- 【可移动的】模拟弹窗div层
- 【Docker】修改doker0默认ip地址
- Jacob处理Word文档总结
- 手机APP项目测试点(内容)总结
- [译] Python Numpy学习资料 (3)
- NYOJ-1111游戏人生
- hdu 多校联赛 Kanade's sum