移动端

1 在移动端页面上双击会放大的问题
在移动端中,会出现双击的时候 页面会放大,问题在于在设置的时候
并没有设置好媒体查询的问题。
例:

 <meta name="viewport" content="width=device-width, initial-scale=1.0">

在如上的代码中 :
width: 控制Viewport的大小,device-width是屏幕的宽度
initial-scale: 初始缩放比例,即用户第一次打开页面的显示比例
initial-scale里包括如下内容:
maximum-scale: 允许用户缩放的最大比例
minimum-scale: 允许用户缩放的最小比例
user-scalable: 用户是否可以手动缩放,默认值yes
为了保证不会出现双击放大的效果 在这里要添加一段代码 “user-scalable=no”
2 适配问题
准备工具:
js插件:app.js css插件:rest-rem.css
(1)长度单位 em rem
在移动端中多用em rem 代替px 表示长度单位
区别:em 是相对于当前位置父集的font-size
rem则是相对于根元素的fon-size
(2)插件
1 )app.js
原理:用js获取屏幕的宽度 计算rem的大小
app.js 需根据设计图的大小 改变初始的屏幕的宽度
640px的设计图 宽度为320
750px的设计图 宽度为375
注:写页面的时候 在设计图上量出的px的大小除100 就是 转化后的rem的值
app.js的写法:
(1)引入js插件

<script src="app.js"></script>

(2)写样式:

  <style>
        *{
            margin: 0;
            padding: 0;
        }
        .box{
            width: 0.82rem;
            height: 0.82rem;
            background: red;
        }
    </style>

需要注意的是: 在写样式的时候 需加入:margin:0;padding:0;

2 rest-rem.css
原理:用媒体查询的方式 根据屏幕的宽度改变

根据设计图呈现的px除2  最后进行整体的转化

如果设计图为640px  转化比例为32

如果设计图为750px  转化比例为37.5

***注:app.js  rest-rem.css不能同时使用***

rest-rem.css的写法:
引入css文件:

<link rel="stylesheet" href="reset-rem.css">

之后再写样式
在这种写法中,有一个转化的专门网页,用于解决关于px转rem的问题
网址:http://www.ofmonkey.com/front/rem

3 移动端的原生事件
1)touchStart
在移动端中 touchstart可代替click事件
因为click在移动端有200ms的延迟
2)touchMove
3) touchEnd

判断左滑右滑(上滑下滑)
代码:

var moveX   moveY  endX  endY;
鼠标按下:
document.addEventListener("touchstart",function(ev){
var  event=window.event||ev;
moveX=event.touches[0].pageX;
//moveY=event.touches[0].pageY;
})
鼠标移动:
document.addEventListener("touchmove",function(ev){
var event=window.event||ev;
endX=event.touches[0].pageX;
//endY=event.touches[0].pageY;
})
判断左滑右滑(上滑下滑):
document.addEventListener("touchend",function(ev){
	if(endX-moveX>0){
	console.log("向右滑")
	}
	if(endX-moveX<0){
	console.log("向左滑")
	}
	/*
	if(endY-moveY>0){
	console.log("向上滑")
	}
	if(endY-moveY<0){
	console.log("向下滑")
	}

*/
})

阻止默认事件

document.addEventListener("touchmove",function(ev){
	var  event=window.event||ev;
	},{
	capture:false,  冒泡或者捕获
	once:false,	是否执行一次
	passive:false   是否可以阻止默认事件  false  可以阻止true不能阻止
	
})

给document绑定touchmove事件时不能阻止默认事件,
// 事件监听 第三个参数 现在多了一种写法,可以是一个对象

附件:
每个触摸事件包括三个触摸列表:
1)touches:当前屏幕上所有触摸点的列表
2)targetTouches:绑定事件的那个节点上的触摸点的集合列表
3)changedTouches:触发事件时的改变的触摸点的集合
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值