🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
### 移动端项目常见问题 1. 1PX问题 2. 适配问题 3. 苹果手机300ms延迟问题 4. 滚动加载数据 5. 多Tab栏页面懒加载 6. 移动Web输入框 2.1 字体设置成了动态大小,也应该限定最大值 2.2 动态修改HTML的font-size值,rem会随着font-size的变化而变化 2.3 1rem = html: font-size 2.4 可以根据屏幕尺寸的大小设定@media 的尺寸参数,不过这得一个一个去设定 #### 1.移动端像素分为 设备像素和CSS像素 1.1 设备像素:设备屏幕的物理像素,对于任何来讲物理像素的数量是固定的 例:iPhone 6/7/8 的设备物理像素为 750 * 1334 1.2 CSS像素 :这是一个抽象的概念,它是为web开发者创造的 1.3 用户在缩小或放大页面的时候,实际上是在缩小或放大CSS像素 1.4 位图像素:一个位图像素对应一个物理像素,图片才能得到完美清晰的展示 #### 2.移动端的三个视口 1.1 布局视口: 页面的宽度 document.documentElement.clientWidth 页面的高度 document.documentElement.clientHeight 1.2 视觉视口: 用户正在看到网站的区域,就是设备屏幕的CSS宽度与高度 1.3 理想视口: 将布局视口设为设备理想视口,其实也就是设为视觉视口 <meta name="viewport" content="width=device-width"> #### 3.设备像素比(DPR) 1 设备像素比(DPR) = 设备像素个数 / 理想视口CSS像素个数,前提是缩放比例为 1例:iPhone的设备像素为640,理想视口像素是320px 则iPhone的设备像素比是2 2. window.devicePixelRatio || 1 #### 4.meta标签:meta标签的意义在于:让布局视口等于理想视口 ```<meta name="viewport" content="width=device-width, initial-scale=1.0, inimum-scale=1.0, maximum-scale=1.0, user-scalable=no"> ``` 1. 设置布局视口宽度等于设备理想宽度 2. 设置页面的初始缩放程度 3. 设置页面最小缩放程度 4. 设置页面最大缩放程度 5. 是否允许用户对页面进行缩放操作 #### 5.媒体查询是响应式设计的基础 1.1 @media all (min-width: 320px) and (max-width: 400px) { .box: { color: red } } 在所有设备上当布局视口宽度大于等于320时并且小于等于400时,应用相应的样式 1.2 @media screen (min-width: 320px) 在屏幕设备上当布局视口宽度大于等于320时,应用相应的样式 #### 6. 初步解决方案 1.1 根据屏幕尺寸动态设置HTML的font-size 1.2 document.querySelector('html').fontSize = documet.docuemtElement.clientWidth / 10 + 'px' 1.3 封装SCSS函数:@return $px / 75 * 1rem,75 || 64 根据设计稿来定 #### 7. 高清屏和普通屏的区别:相同区域的物理像素点数不同 1. 1英寸 = 2.54厘米 1寸 = 3.33厘米 2. 像素:即一个小方块,它具有特定的位置与颜色 3. 图片、电子屏幕( 手机、电脑 )就是由无数个具有特定颜色和特定位置的小方块拼接而成的 4. 分辨率一般分为图片分辨率和屏幕分辨率 5. PPI:每英寸包含的像素数量 1. 像 iphone XS Max 和 iphone SE 的PPI分别为 458 和 326,前者的屏幕清晰度更高 6. DPI:每英寸包括的点数 1. 使用DPI来描述图片和屏幕时,这时的DPI和PPI是等价的 2. DPI最常见的是用来描述打印机,表示打印机每英寸可以打印的点数 7. 图像分辨率:800 * 400 :表示垂直和水平上的像素点为 800 * 400 #### 滑动事件 1. 手动滑、通过函数触发滑动、惯性滑动