1、移动端与PC端的区别

  • PC考虑的是浏览器的兼容性,而移动端开发考虑的更多的是手机兼容性,因为目前不管是android手机还是ios手机,一般浏览器使用的都是webkit内核,所以说做移动端开发,更多考虑的应该是手机分辨率的适配,和不同操作系统的略微差异化;
  • 在部分事件的处理上,移动端多出来的事件是触屏事件,而缺少的是hover事件。 另外包括移动端弹出的手机键盘的处理,这样的问题在PC端都是遇不到的;
  • 在布局上,移动端开发一般是要做到布局自适应的;
  • 在动画处理上,PC端由于要考虑IE的兼容性,所以通常使用JS做动画的通用性会更好一些,但是CSS3做了很大的牺牲, 而在手机端,如果要做一些动画、特效等,第一选择肯定是CSS3, 既简单、效率又高;
  • 一般pc端用jquery,移动端用zepto,因为移动端的流量还是比较重要的, 所以引入的资源或者插件,能小则小,一个30k的资源和一个80k的资源,在移动端的差别还是挺大的;(而未压缩的jquery是262kb, 压缩的jquey是83kb,可见两者的差别之大。)
  • 比如在手机上的300ms的延迟,这在PC端是没有的;

2、如何解决移动端click屏幕产生200-300ms的延迟响应问题?

  • 产生的原因:

    当用户一次点击屏幕之后,浏览器并不能立刻判断用户是要进行双击缩放,还是想要进行单击操作。因此,iOS Safari 就等待 300 毫秒,以判断用户是否再次点击了屏幕。

    于是,300 毫秒延迟就这么诞生了。

  • 造成的问题:按钮点击延迟或者按钮点击失效;
  • 解决方案:
    • 禁用缩放  meta标签
    • 更改默认的视口宽度
    • fastClick.js (常见)
      步骤一:引入js文件:
      步骤二:引入下面任何一种js代码
      //第一种 最好在body前面引入下面的代码
      if ('addEventListener' in document) {
      document.addEventListener('DOMContentLoaded', function() {
      FastClick.attach(document.body);
      }, false);
      }
      //第二种:引入jquery组件
      $(function() {
      FastClick.attach(document.body);
      })
      //第三种
      window.addEventListener( "load", function() {
      FastClick.attach( document.body );
      }, false );
    • touch.js
    • zepto (做移动端的DOM操作 但是做移动端事件的时候非常不建议用zepto里面的touch模块,即用tap事件来取代click事件,因为tap事件会有 “点透” 问题)
                jquery是作用于pc端   277kb
                zepto作用于移动端    56kb
      • 点透:https://www.cnblogs.com/cdwp8/p/4307855.html

        • 概念:列表页面上创建一个弹出层,弹出层有个关闭按钮,你点了这个按钮关闭弹出层后后,这个按钮正下方的内容也会执行点击事件(或打开链接)。
        • 出现的原因:
          可以看出zepto的tap通过兼听绑定在document上的touch事件来完成tap事件的模拟的,及tap事件是冒泡到document上触发的,
          再点击完成时的tap事件(touchstart\touchend)需要冒泡到document上才会触发,而在冒泡到document之前,用户手的接触屏幕(touchstart)
          和离开屏幕(touchend)是会触发click事件的,因为click事件有延迟触发(这就是为什么移动端不用click而用tap的原因)(大概是300ms,
          为了实现safari的双击事件的设计),所以在执行完tap事件之后,弹出来的选择组件马上就隐藏了,此时click事件还在延迟的300ms之中,
          当300ms到来的时候,click到的其实不是完成而是隐藏之后的下方的元素,如果正下方的元素绑定的有click事件此时便会触发,
          如果没有绑定click事件的话就当没click,但是正下方的是input输入框(或者select选择框或者单选复选框),点击默认聚焦而弹出输入键盘,
          也就出现了上面的点透现象。
        • 解决方法:
          • 用click事件取代tap事件,在引入fastclick.js解决300ms延迟;(终极方案)
          • 来得很直接github上有个fastclick可以完美解决https://github.com/ftlabs/fastclick
            • 引入fastclick.js,因为fastclick源码不依赖其他库所以你可以在原生的js前直接加上;

              window.addEventListener( "load", function() {
              FastClick.attach( document.body );
              }, false );
            • 或者有zepto或者jqm的js里面加上;
              $(function() {
              FastClick.attach(document.body);
              });
            • 当然require的话就这样;
              var FastClick = require(‘fastclick‘);
              FastClick.attach(document.body, options);
          •  touchend代替tap事件并阻止掉touchend的默认行为preventDefault();

            $("#cbFinish").on("touchend", function (event) {
            //很多处理比如隐藏什么的
            event.preventDefault();
            });
          • 延迟一定的时间(300ms+)来处理事件;
            $("#cbFinish").on("tap", function (event) {
            setTimeout(function(){
            //很多处理比如隐藏什么的
            },320);
            });

简述移动端与PC端的区别的更多相关文章

  1. 关于移动端和PC端的交互的区别

    对于现在的移动端设备的普及,移动端上的用户体验成了一个重要的关注点. 看了一些网上的关于移动端的交互和用户体验的知识,这里总结了一些.若有不足的地方,希望大家能够积极补充. PC端和移动端的产品的设计 ...

  2. 前端:移动端和PC端的区别

    在阿里的几次面试中,总是被问到移动端和PC端有什么区别,当时回答的时候主要是回答了在兼容性.网速.适配.页面布局等方面的不同,但是还是很不系统,所以这里做一个总结. 第一: PC考虑的是浏览器的兼容性 ...

  3. jQuery 触发事件 移动端和pc端的区别

    jQuery 触发事件 移动端和pc端的区别 <pre>mousedown event.pageXmousemove event.pageXmouseup event.pageXtouch ...

  4. 移动端和PC端弹出遮罩层后,页面禁止滚动的解决方法及探究

    PC端解决方案 pc端的解决思路就是在弹出遮罩层的时候取消已经存在的滚动条,达到无法滚动的效果. 也就是说给body添加overflow:hidden属性即可,IE6.7下不会生效,需要给html增加 ...

  5. new Date(str)返回的时间结果在移动端比PC端快了8小时

    最近开发过程中,后端传过来一个“2018-03-15T17:53:19.6307928”字符串,需要将字符串转换成“2018-03-15  17:53”的格式展示出来.首先我使用了var time=n ...

  6. JavaScript判断移动端及pc端访问不同的网站

    JavaScript判断移动端及pc端访问不同的网站 现在很多网站都是分为两个版本,一个pc端的一个移动端的(响应式除外),针对这两个版本,就需要对访问的设备进行判断,如果是pc,就直接访问pc网站, ...

  7. js判断游览器是移动端还是PC端

    js判断网页游览器是移动端还是PC端 <script type="text/javascript"> function browserRedirect() { var ...

  8. 检测当前运行环境——移动端与PC端。

    方法1: $(function checkBrowser(){ var browser={ versions:function(){ var u = navigator.userAgent, app ...

  9. 【Javascript Demo】移动端访问PC端网页时跳转到对应的移动端网页

    不想通过CSS自适应在PC端和移动端分别显示不同的样式,那么只能通过在移动端访问PC端网页时跳转到对应的移动端网页了,那么怎么跳转呢,网上也有很多文章说明,下面是本人测试有效的方式. 1.效果图 PC ...

随机推荐

  1. nginx_mirror_module流量复制在项目中的应用

    参考文档:https://my.oschina.net/andChow/blog/2873870 https://blog.csdn.net/lancerh/article/details/88645 ...

  2. CSS居中完全指南——构建CSS居中决策树

    CSS居中完全指南--构建CSS居中决策树 本文总结CSS居中,包括水平居中和垂直居中.本文相当于CSS决策树,下次再遇到CSS居中问题时有章可循. 参考Centering in CSS: A Com ...

  3. vue-cli项目中引入全局scss

    加载一个全局设置文件 在每个组件里加载一个设置文件,而无需每次都将其显式导入,是一个常见的需求.比如为所有组件全局使用 scss 变量.为了达成此目的: npm install sass-resour ...

  4. java8 时间日期操作包总结

  5. SpringCloud学习系列-Eureka服务注册与发现(4)

    actuator与注册微服务信息完善 1.主机名称:服务名称修改 当前问题 含有主机名称 修改修改microservicecloud-provider-dept-8001 的yml文件 修改内容 eu ...

  6. 【NOIP2016提高A组8.11】钱仓

    题目 分析 发现,一定有一个点作为起点,所有的路径都不经过这个起点. 接着贪心求答案, 如果\(c_i>1\),将其中\(c_i-1\)个钱往后"铺". 易证\(x^2+y^ ...

  7. 【NOIP2013模拟】DY引擎

    题目 BOSS送给小唐一辆车.小唐开着这辆车从PKU出发去ZJU上课了. 众所周知,天朝公路的收费站超多的.经过观察地图,小唐发现从PKU出发到ZJU的所有路径只会有N(2<=N<=300 ...

  8. OmniGraffle 7使用的探索

    进去后可以将界面简化为4个主要区域:工具栏.工具栏.检查器和画布. 1.画布是在项目中创建.编辑和移动对象的地方 2.删除画布  选择编辑 画布删除画布 3.OmniGraffle项目至少需要一个画布 ...

  9. 关于Ubuntu 14.04 安装Oracle 11gR2安装步骤(从开始到放弃--最终使用docker获取)

    最近在复习Oracle的相关内容,好准备在下一份工作中能够熟练一些,所以准备在自己虚拟机中安装Oracle的11gR2版本,主要参考内容为: https://blog.csdn.net/qq_4025 ...

  10. python-jsonpath、findall返回值提取

    findall import re """ "d"表示取数字0-9, "D"表示不要数字, "w"在正则里面代 ...