hybrid了解

hybrid

hybrid是什么,为何使用hybrid?

  • 介绍一下hybrid更新和上线流程?

    hybrid和h5的区别?

    前端js和客户端如何通信?

移动web开发与传统pc开发的区别

  • 跑在手机端的web页面(h5页面)
  • 跨平台
  • 基于webview
  • 告别IE拥抱webkit
  • 更高的适配和性能要求

什么是移动web

  • ios, android; 2G,3G,4G; h5; viewport,hybrid;

移动web调试

  • alert()
  • firebug
  • chrome dev tools调试

    移动web适配(响应式布局)

  • (media query)媒体查询和flex

  • 定高,宽度百分比

  • viewport和流式布局

  • rem原理和适配方法

    viewport

  • 什么是css像素和物理像素?

    • 物理像素是屏幕实际拥有的像素点,而css像素是逻辑上的,比如放大页面就是让css像素承载更多的物理像素点;
  • Layout viewport(布局视窗),Visual viewport(物理视窗),Ideal viewport (理想视窗)

    • 物理视窗:可以看到的区域
    • 布局视窗:css布局区域
    • 理想视窗

      <meta name="viewport" content="width=device-width,initial-scale=1.0,maxinum-scale=1.0,user-scalable=0">
      • 手机打开pc端的页面为什么会等比例缩放?
      • 浏览器将页面的内容缩放至可视区内;
      • 设备的宽高和viewport有什么关系?
      • 如何使用meta标签设置viewport?

      • flex有哪些参数?

      • flex-direction

      • flex-wrap

      • flex-flow

      • justify-content

      • align-items

      • align-content

      • order

      • flex-grow

      • flex-shrink

      • flex-basis

      • flex

      • align-self

      • 什么是流式布局?

      • 页面元素的宽度变化,但是整体布局不变;

      • 什么是自适应布局?

      • 页面元素的大小不变,但是位置发生变化;

      • 什么是响应式布局?

      • 页面元素的位置和大小都会变化;

      • 什么是媒体查询?

      • 媒体类型: screen,print;

      • 媒体特性: max-width,max-height;

        移动web适配

      • rem

      • 大小由html的font-size的大小决定;

      • js改变font-size来实现适配的效果;

      • vw

      • 1vw=视窗宽度的1%;

      • vh

      • 1vh=视窗高的的1%;

      • vmax

      • max(vw, vh)

      • vmin

      • min(vw, vh)

        touch事件

      • touchstart

      • touchmove

      • touchend

      • touchcancel: touch事件非正常结束时触发

      • touches: 当前屏幕上所有触摸点的列表;

      • targettouches: 当前对象上所有触摸点的列表;

      • changedtouches: 涉及当前(引发)事件的触摸点的列表;

      • 300ms延迟

      • 用来判断双击和单击,300内是双击

      • meta标签

      • tap组件(fastclick,react-top)[touchstart, touchend]

      • 点击穿透

      • click和touch不要混用

      • 通过一个例子来区分一下触摸事件中的这三个属性:

      • 用一个手指接触屏幕,触发事件,此时这三个属性有相同的值。

      • 用第二个手指接触屏幕,此时,touches有两个元素,每个手指触摸点为一个值。当两个手指触摸相同元素时, targetTouches和touches的值相同,否则targetTouches 只有一个值。changedTouches此时只有一个值, 为第二个手指的触摸点,因为第二个手指是引发事件的原因

      • 用两个手指同时接触屏幕,此时changedTouches有两个值,每一个手指的触摸点都有一个值

      • 手指滑动时,三个值都会发生变化

      • 一个手指离开屏幕,touches和targetTouches中对应的元素会同时移除,而changedTouches仍然会存在元素。

      • 手指都离开屏幕之后,touches和targetTouches中将不会再有值,changedTouches还会有一个值, 此值为最后一个离开屏幕的手指的接触点。

      • 触点坐标选取 touchstart和touchmove使用: e.targetTouches[0].pageX 或 (jquery)e.originalEvent.targetTouches[0].pageX touchend使用: e.changedTouches[0].pageX 或 (jquery)e.originalEvent.changedTouches[0].pageX

      • touchmove事件对象的获取 想要在touchmove:function(e,参数一)加一个参数,结果直接使用e.preventDefault()就会 e 报错,处理方法为使用arguments[0]获取event参数

        touchmove:function(e,参数一){
          var e=arguments[0]
          e.preventDefault()
        }