移动端web开发 浅析

1. viewport

viewport在移动端承载网页的区域:具有默认格式

设置viewport属性,适配移动端设备

主流设置:

<meta name = ”viewport” content = ”width = device-width , initial-scale = 1.0 , user-scalable = 0”>

主流设置快捷键:meta: vp  tab

name = ”viewport”    viewport 设置入口格式

width = device-width  设置viewport宽度与移动设备宽度相同

initial-scale = 1.0     初始化缩放比例与pc端比例为:11

user-scalable = 0  是否允许用户自行缩放,可设置值:1,0或者yes,no    0为不允许

如果设置了用户不能自行缩放,那么下面两个参数没有意义

maximum-scale    用户最大缩放比,可设置大于0的数字

minimum-scale    用户最小缩放比,可设置大于0的数字

非主流设置:

参考taobao,判断屏幕尺寸,设置动态设置initial-scale

2.  base.css设置

reset css 重置标签的默认样式代码如下:

*,::before,::after {

    padding:0;  margin:0; 

    -webkit-tap-highlight-color: transparent;  移动端特有清除高亮

      -webkit-box-sizing: border-box;

    box-sizing: border-box;     用两种写法,兼容处理

}

body {

    font-size: 14px;

    color: #333;

    font-family: “MicroSoft YaHei” , “sans-serif”; 这是设备默认样式

}

ul,ol {

    list-style: none;

}

a {

    text-decoration: none;

    color: #333;

}

a: hover {

    color: #333;

}

input , textarea {

    border: none;    

    outline: none;      选中时没有边框

    resize: none;       不允许用户自行拉伸

       -webkit-appearance: none;     清除浏览器给input自带的样式,设置组件默认样式为空

}

.f_left {

    float: left;

}

.f_right {

    float: right;

}

.clearfix::before,.clearfix::after {     清除浮动

    content: ”.”;

    line-height: 0;

    height: 0;

    display: block;

    visibility: hidden;

    clear: both;

}

3. 设置动态页面的容器div  类名可设为:.layout

.layout {

          min-width: 300px;     适配小屏幕设备

          max-width: 640px;    设计图的基本格式

}

4. 部分CSS格式说明

移动端input格式设置,调用输入法时,enter键变为搜索键

        <form action="#">

            <input type="search"  placeholder="请输入"/>

        </form>

position: fixed 设置后定位失效,fixed是以window为基准的

要想实现效果,给fixed元素添加一个子盒子,给子盒子设置min-widhtmax-widthmargin: 0 auto即可居中;

5. 物理像素,在移动端图片1:1显示可能会出现失真

iPhone 42:1  四个物理像素显示1px   压缩图片一倍可显示正常

iPhone 6s plus:  3:1  九个物理像素显示1px    高清屏

6. 基本事件

touch事件    addEventListener()中添加事件

1touchstart事件:手指触摸屏幕触发事件

2touchmove事件:手指在屏幕上滑动时连续触发事件

3touchend事件:手指离开屏幕触发事件  chrome模拟器在模拟手机touchend时可能会丢失事件,最好将事件绑定在window

4touch的事件对象 event

dom.addEventListener (“touchstart” , function( event ) {

              console.log(event);

})

targetTouches页面上目标元素的所有当前触摸,元素外触摸点不包含

touches页面上所有的触摸点

changedTouches 页面上最新更改的所有触摸,在touchend事件中只记录changedTouchestargetTouchestouches都不会被记录

以上三个属性的数据类型都是数组

页面第一个触摸点信息touches[0]

dom.addEventListener (“touchstart” , function( event ) {

              console.log(event.touches[0]);

})

可以根据相关数据获取触摸点的位置

clientX:触摸点在浏览器视口中的X坐标

clientY:触摸点在浏览器视口中的Y坐标

pageX:触摸点在页面中的x坐标

pageY:触摸点在页面中的y坐标

screenX:触摸点在屏幕中的x坐标

screenY:触摸点在屏幕中的y坐标

过渡结束事件transitionEnd  webkitTransitionEnd过渡结束后触发

dom.addEventListener(“transitionEnd” , function( e ){  })

dom.addEventListener(“webkitTransitionEnd” , function( e ){  })

动画结束事件animationEnd  webkitAnimationEnd动画结束后触发

dom.addEventListener(“animationEnd” , function( e ){  })

dom.addEventListener(“webkitAnimationEnd” , function( e ){  })

click事件

click事件在移动端有300ms的延迟,在touchend事件之后发生,有300ms延迟所以用户体验并不好

测试代码如下:

dom.addEventListener("touchstart", function () {

console.time("click");    标记一个时间

 console.time("touchend")

});

dom.addEventListener("touchend", function () {

console.timeEnd("touchend");    计算该标记执行间隔时间

});

dom.addEventListener("click", function () {

 console.timeEnd("click");    计算该标记执行间隔时间

})

封装一个tap事件让点击屏幕150ms内触发,且不触发touchmove事件:

tabb.tap = function (dom, callback) {

        if (dom && typeof dom == ‘object‘) {

            var isMove = false;

            var startTime = 0;

            dom.addEventListener(‘touchstart‘, function (e) {

                startTime = Date.now();

            });

            dom.addEventListener(‘touchmove‘, function (e) {

                isMove = true;

            });

            dom.addEventListener(‘touchend‘, function (e) {

               if (!isMove && ( Date.now () – startTime ) < 150) {

                callback && callback(e);

               }

                isMove = false;          重置参数

                startTime = 0;

            });

    }

}

7.  zepto.js

使用语法与jQuery基本相同,可理解为轻量化、模块化的jQuery

使用引包增加功能:

1)包含五个模块  core  event  form  ajax  ie

    <script src="zepto/zepto.min.js"></script>

2)扩展性选择器模块

    <script src="zepto/selector.js"></script>

3)动画模块

<script src="zepto/fx.js"></script>

4)移动端事件模块

<script src="zepto/touch.js"></script>

8.  响应式开发

媒体媒介media query 设置不同宽度下的样式:and之后一定要加空格

0-768px 移动端显示:   

@media screen and(空格)(max-width: 768px){

           .container{ width: 100%; background: red };

}

768px-992px 小屏设备显示:

@media screen and (min-width:768px) and (max-width: 992px){

           .container{ width: 100%; background: yellow};

}

992px-1200px 中屏设备显示:

@media screen and (min-width:992px) and (max-width: 1200px){

           .container{ width: 100%; background: green};

}

1200px- 大屏设备显示:

@media screen and(空格)(min-width: 1200px){

           .container{ width: 100%; background: black };

}

9.  bootstrap

英文网:http://getbootstrap.com/

中文网:http://www.bootcss.com/

10.  结构性选择器

①  “+”号选择器

div + div {}   .class + div {}

选择目标元素div或者.class的下一个元素div会被选中

“~”号选择器

div ~ div {}   .class ~ div {}

选择目标元素div或者.class后面的所有同级元素div会被选中

11.  向应式开发后台数据渲染underscore.js

时间: 2024-10-12 16:55:55

移动端web开发 浅析的相关文章

移动端Web开发调试之Chrome远程调试(Remote Debugging)

本篇主要说一下Chrome RemoteDebugging 的方法,之前也遇到一些坑,自己总结了一些经验,分享如下. Chrome DevTools调试移动设备Brower Page Tabs/WebViews 安卓远程调试目前支持所有操作系统(Windows,Mac, Linux, and Chrome OS.)中调试,支持: ● 调试站点的页面 ● 调试安卓原生App中的WebView ● 实时将安卓设备的屏幕图像同步显示到开发机器. ● 通过端口转发(port forwarding)与虚拟

移动端Web开发注意点

不用考虑浏览器兼容性 移动端开发主要对象是手持设备,其中绝大部分是IOS和Android系统,so,在开发此类页面时不必纠结IE和其他一些2B浏览器的兼容性,webkit是本次开发重点. 当然,不同版本的Android是存在一些问题的,还有就是不同浏览器的版本也存在一些差别,IOS在这方面表现甚好. 所以在开发时我们只需使用Chrome进行调试即可,话说Chrome的开发者工具也是灰常不错的. 丰富的页面Meta 控制显示区域各种属性: <meta content="width=devic

移动端web开发常见问题

上一篇总结了一些有关html5和css3的面试题,这一篇是有关于移动端web开发的常见问题,希望一样对你有一些帮助. Meta相关 1. 添加到主屏后的标题(IOS) <meta name="apple-mobile-web-app-title" content="标题"> 2. 启用 WebApp 全屏模式(IOS) 当网站添加到主屏幕后再点击进行启动时,可隐藏地址栏(从浏览器跳转或输入链接进入并没有此效果) <meta name="a

移动端web开发的一些知识点

整理一下自己平时移动端web开发中遇到的问题,也参考一下前辈的一些总结 1.最常见的要数1像素边框了 因为Retine屏的分辨率始终是普通屏幕的2倍,1px的边框在dpr=2的retina屏下会显示成2px. 但在IOS8中,已经支持0.5px了,那就意味着, 在devicePixelRatio=2的时候,我们可以使用css设置为0.5. 平时用的比较多的也是使用transform了: div{ height:1px; background:#000; -webkit-transform: sc

安卓手机移动端Web开发调试之Chrome远程调试(Remote Debugging)

一.让安卓打debug模式的apk包 二.将电脑中的chrome升级到最新版本,在chrome浏览器地址栏中输入chrome://inspect/#devices: 在智能手机还未普及时,移动设备的调试处处是alert的,这估计是最常用的办法了.以前很多时候为了预览页面在移动设备上的效果,需要先将页面上传到测试服务器,再将url输入到设备浏览器,或者使用第三方二维码扫码应用,通过移动设备访问打开浏览实际效果,每次换设备都要重复这些操作,页面多的话这些繁琐的事情就特别让人厌烦了.移动互联网的浪潮,

移动端--web开发

最近看到群里对关于 移动端 web开发很是感兴趣,决定写一个关于 移动端的web开发 概念或框架(宝庆对此很是纠结).也是因为自己一直从事pc 浏览器 web一直对 移动端的不是很重视,所以趁此机会也让自己对 移动端的开发 有个清晰的认识. 环境: 1. 移动端的内核:手机浏览器的内核是什么 在文章中 Android 手机 采用 Webkit.其他的QQ,UC,飞豚 浏览器都基于此开发的.而在iOS以及WP7平台上,由于系统封闭,不允许除  系统自带浏览器内核以外的浏览器内核进入,因此各家浏览器

探究移动端web开发

探究移动端web开发 什么使移动端开发呢?这就是在手机等移动端设备上的网页开发.而当今比较流行的通过rem进行移动端的适配,所以这篇文章会主要介绍一些基本概念以及rem适配方案. 第一部分:基本概念 物理像素:这个就是在屏幕上可以控制的最小显示单位,比如显示颜色的最小单位. css像素: 就是我们在设计网页时在css中使用的像素,比如:border: 1px black solid;这里的1px即为css像素,实际上这种像素就是下面我们要介绍的设备独立像素. 设备独立像素(density-ind

移动端 Web 开发前端知识整理

文章来源: http://www.restran.net/2015/05/14/mobile-web-front-end-collections/ 最近整理的移动端 Web 开发前端知识,不定期更新. HTML5 可以做什么 拍照 获取地理位置 手势 canvas 绘图和动画(硬件加速) localstorage,本地缓存 HTML5 动画效果 demo http://fff.cmiscm.com/#!/main CSS3 动画 http://isux.tencent.com/css3/inde

移动端web开发技巧(转)

原文链接:http://liujinkai.com/2015/06/06/mobile-web-skill/ 移动端web开发技巧 这是一个最好的时代,因为我们站在潮流中:但也是一个最坏的时代,因为我们站在潮头上. META相关 1. 添加到主屏后的标题(IOS) <meta name="apple-mobile-web-app-title" content="标题"> 2. 启用 WebApp 全屏模式(IOS) 当网站添加到主屏幕后再点击进行启动时,