移动端页面已经进行的第三次改版,这个版本遇到的最大难题就是页面跳转的问题。

项目需求: 页面上有分别有优惠估价、我要估价、历史竞拍这三个Tab选项卡,当用户点击估价,选择品牌以后,前端需要去请求品牌接口,获取品牌数据,进一步获取车系和车型。

项目实现:考虑到每个接口之间的数据传递问题。考虑把品牌车型车系的代码全部放在一个页面上。同事首先想到的是使用“前端路由” 这个东西。上网百度百度一下什么是前端路由。(可以读下这篇文字http://www.tuicool.com/articles/N7nAJbi)主要是通过"hash"和 HTML5 的 history API。但是因为项目时间周期比较紧,没有研究出来是怎么实现的。最后还是跟服务端商量,做成了一个独立的页面。通过向地址上添加?id="" 参数的形式获取所有数据。

解决方法优缺点:

1、由于“我要估价”在tab选项的中间。当用户点击品牌估价返回以后页面被刷新顶部,第二种解决方式的缺点在于返回的时候需要把tab选项卡切到 “我要估价”并且将滚动条滚动到“我要估价”的位置。

2、使用前端路由的好处是页面间的返回不会发生跳转。



获取地址?后的一个或者多个参数,可以使用下面这段代码,使用方式:var p = parseUrl(); var id = p.id

    function parseUrl(){
var url = window.location.search; //获取从问号开始的所有字符串
var i = url.indexOf('?'); //查找是否有?
if(i ==-1 ) return {}; //没有就不做任何事情
var querystr = url.substr(i+1); //如果有问号则获取不包括问号以后的所有
var arr1 = querystr.split('&'); //字符串以& 分割为数据
var arr2 = {};
for (i in arr1){
var ta = arr1[i].split('='); //在将每组数据在进行=分割
arr2[ta[0]]=ta[1]; // 获取对应的key 和value
}
return arr2;
}

window.location 的属性和方法



移动端输入框点击会弹出键盘。项目中有一个有悬浮设置为position:fixed的文件,弹出键盘以后导致fixed的失效。这时候可以判断用户获得焦点的时候将浮动的对象位置改为absolute,失去焦点的时候则还原

changePosition(footSaleTel);
function changePosition(obj){
obj.bind('focus', function(event) {
driftPosition.css({"position": "absolute"});
}).bind("blur", function(){
driftPosition.css({"position": "fixed"});
});
}

ios 对按钮聚焦和失去焦点不能使用focus 和 blur事件。考虑使用 touchstart 和 touchend

合并两个对象的值。在jquery 中 可以使用$.extend(a,b); 如果第二个参数的元素在第一个中也有的话,第二个就会覆盖第一个,

var a = {'a':1,'b': 2};

var b = {'a': 2,'c': 3};

var c = $.extend(a, b);

合并两个数组,在jquery 中可以使用$.merge(a,b), 如果两个参数中有相同的部分。则会把相同额部分都罗列出来,可以使用$.unique() 去掉相同的部分。

移动端页面V2.0项目改版总结的更多相关文章

  1. 【Beta】“北航社团帮”测试报告——小程序v2.0与网页端v1.0

    目录 测试计划.过程和结果 后端测试--单元测试与覆盖率 后端测试--压力测试 展示部分数据 平均数据 前端测试--小程序v2.0 授权登录与权限检查 新功能的测试 兼容性测试 性能测试 前端测试-- ...

  2. [Android]Android端ORM框架——RapidORM(v2.0)

    以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/5626716.html [Android]Android端ORM ...

  3. 【Beta】“北航社团帮”发布声明——小程序v2.0与网页端v1.0

    目录 Beta版本新功能 小程序v2.0新功能 新功能列表 功能详情图 新功能动图展示 网页端v1.0功能 登录方式 社团信息的修改 新闻的录入和修改 活动的录入和修改 这一版修复的缺陷 Beta版本 ...

  4. 百度地图V2.0实践项目开发工具类bmap.util.js V1.4

    /** * 百度地图使用工具类-v2.0(大眾版) * * @author boonya * @date 2013-7-7 * @address Chengdu,Sichuan,China * @em ...

  5. angular4.0项目build发布后,刷新页面报错404

    angular4.0项目执行npm run build后,进入页面正常显示. 但是当刷新页面时,报错404,页面未找到. 出现这个问题的原因,应该是找不到路由地址导致的,然后找到了下面的解决方案. 找 ...

  6. Asp.Net Core 2.0 项目实战(11) 基于OnActionExecuting全局过滤器,页面操作权限过滤控制到按钮级

    1.权限管理 权限管理的基本定义:百度百科. 基于<Asp.Net Core 2.0 项目实战(10) 基于cookie登录授权认证并实现前台会员.后台管理员同时登录>我们做过了登录认证, ...

  7. net core体系-web应用程序-4asp.net core2.0 项目实战(1)-13基于OnActionExecuting全局过滤器,页面操作权限过滤控制到按钮级

    1.权限管理 权限管理的基本定义:百度百科. 基于<Asp.Net Core 2.0 项目实战(10) 基于cookie登录授权认证并实现前台会员.后台管理员同时登录>我们做过了登录认证, ...

  8. 错误 : 资产文件“项目\obj\project.assets.json”没有“.NETCoreApp,Version=v2.0”的目标。确保已运行还原,且“netcoreapp2.0”已包含在项目的 TargetFrameworks 中。

    升级 vs201715.6.3之后发布出现 错误 : 资产文件“项目\obj\project.assets.json”没有“.NETCoreApp,Version=v2.0”的目标.确保已运行还原,且 ...

  9. ICG_System之全自动代码生成器V2.0版本

    大家好! 早在2014年本人就已经利用业余时间开发自己的ICG之代码生成器系统.依靠bootstrap的崛起本人也在不断完善此应用.目的是为了减少开发人员的工作量. 减少不必要的复制粘贴操作,该系统已 ...

随机推荐

  1. OD: DEP & Ret2Libc

    Data Execution Prevention,数据执行保护,专门用来弥补计算机对数据和代码混淆这一天然缺陷. DEP 的原理是将数据所在的内存页(默认的堆.各种堆栈页.内存池页)标记为不可执行, ...

  2. Jsp笔记(1)

    1. jsp页面中出现中文乱码怎么解决? <%@ page contentType="text/html; charset=GB2312"%> <%@ page ...

  3. Windows免密码远程桌面

    1.WinKey + R,在对话框中输入“gpedit.msc”,点“确定”:   2.展开:计算机配置--Windows设置--安全设置--本地策略--安全选项,找到“帐户:使用空白密码的本地账户只 ...

  4. [转载] HDFS and Erasure Codes (HDFS-RAID)

    The Hadoop Distributed File System has been great in providing a cloud-type file system. It is robus ...

  5. 关于js闭包杂记

    闭包:一个函数oneF里return了另一个函数innerF,然后在oneF外面运行了函数innerF,如果innerF里有用到在oneF里定义的变量,则此时依然可以引用到, 但是变量值不是定义函数i ...

  6. 【创建型】Prototype模式

    原型模式主要是用原型实例指定创建原型对象的种类,并且通过拷贝原型创建新对象.最简单的理解就是克隆.就如cocos2d-x中的 class Clonable::clone();该模式的主要目的是可以在运 ...

  7. 《python基础教程》笔记之 基础知识

    数字相关 在Python程序前加上 from __future__ import division 或者在解释器里面直接执行它,或者通过命令行运行Python时使用命令开关-Qnew,会使单斜线不再整 ...

  8. 自己动手开发编译器(五)miniSharp语言的词法分析器

    稍微说明一点,整型常量和上面的标识符的词法,在调用lex.DefineToken时都多传了一个参数.这个参数是可选的描述信息,如果不传会直接使用正则表达式的字符串形式.而标识符的正则表达式有4万多个字 ...

  9. 转:Linux内存管理之mmap详解

    一. mmap系统调用 1. mmap系统调用 mmap将一个文件或者其它对象映射进内存.文件被映射到多个页上,如果文件的大小不是所有页的大小之和,最后一个页不被使用的空间将会清零.munmap执行相 ...

  10. Android json操作之取得一个对象

    1:服务端返回的json数据格式如下: {"id":"1001","name":"zhangsan","sco ...