首页 > 移动平台 > 详细

仿原生app,native特效

时间:2015-10-19 12:24:58      阅读:316      评论:0      收藏:0      [点我收藏+]

为解决手机端wap项目中页面跳转响应慢的问题,开发了fr.routeApp-1.0.js,使得wap项目拥有原生app的流畅,跳转时前进后退特效。

html部分


<!--定义容器,class="fr-contain" ,初始化路由ID为0,fr-route="0"设置请求页面地址,fr-href="ddbj/index.html" -->

<
div class="fr-contain" fr-route="0"> <div class="center menuWap"> <span class="btns btns-big btns-green" fr-href="ddbj/index.html">滴滴报价</span> <span class="btns btns-big btns-green" fr-href="fls/index.html">福利社</span> <span class="btns btns-big btns-green" fr-href="gcal/index.html">工程案例</span> <span class="btns btns-big btns-green" fr-href="zgz/index.html">找工长</span> <span class="btns btns-big btns-green" fr-href="fwlc/index.html">服务流程</span> <span class="btns btns-big btns-green" fr-href="ssxy/index.html">舒适学院</span> <span class="btns btns-big btns-green" fr-href="xxtyd/index.html">线下体验店</span> <span class="btns btns-big btns-green" fr-href="mfsj/index.html">免费设计</span> </div> </div>

引用js部分

$(".menuWap span").frRoute({
    baseUrl:"../js/main/",//定义引用js路径
    paths:[],//定义跳转页面需要用到的js文件名
    callBack:function(){

    },//在引入页面之后执行的js,也可以写到需引入的页面
    prevBtn:".backIco",//定义返回上级页面的按钮
    contain:".contain"//定义引入页面的容器
});

引入的html页面,html页面只需要代码部分,无需头和尾

<div class="pad10">
    <p class="center font20 line24 top40"> 滴滴报价</p>

    <span class="btns btns-biggest btns-ye top40 backIco">返回</span>
</div>

 

fr.routeApp-1.0.js

/**
 * Created by wangmiao on 15-10-15.
 */
(function($){
    $.fn.frRoute = function(o){
        var defs = {
            baseUrl:"../js/main/",
            paths:[],
            callBack:function(){
                
            },
            prevBtn:".backIco",
            contain:".contain"
        };
        var obj = this;
        var opt = $.fn.extend({},defs,o);
        var width = $(window).width();
        var frRoute = 0;
        var methods = {
            addJs:function(e){//引入js
                for(i=0;i<e.length;i++){
                    $("body").append(‘<script type="text/javascript" src="‘+opt.baseUrl+‘‘+e[i]+‘.js"></script>‘)
                }
            },
            action:function(actionPage,paths,callback){
                //创建容器
                frRoute = parseInt($(".fr-contain").last().attr("fr-route"))+1;
                console.log(frRoute)
                $("body").append(‘<div class="fr-contain" fr-route="‘+frRoute+‘" style="-webkit-transform:translate3d(‘+width+‘px,0,0);"></div>‘)
                var $currTar = $(".fr-contain[fr-route="+frRoute+"]");
                $currTar.load(actionPage,function(){
                    //划入当前页面
                    $currTar.css({"-webkit-transform":"translate3d(0,0,0)"})
                    //$(".fr-contain").scrollTop(0)
                    //引入js调用
                    if(opt.paths.length>0){
                        methods.addJs(opt.paths)
                    };
                    //回调函数
                    if(callback){callback()}
                })
            },
            backToprevPage:function(e){//返回上一个页面
                e.parents(".fr-contain").css({"-webkit-transform":"translate3d("+width+"px,0,0)"});
                setTimeout(function(){
                    e.parents(".fr-contain").remove();
                },100)
            },
            init:function(){//初始化
                obj.on("touchstart",function(){
                    var nextPage = $(this).attr("fr-href")
                    methods.action(nextPage,opt.paths,opt.callBack)
                });
                $(document).on("touchstart",".backIco",function(){
                    if($(".fr-contain").last().attr("fr-route")=="0"){
                        return;
                    }else{
                        methods.backToprevPage($(this))
                    }
                });
            }
        };
        methods.init()
    }
})(jQuery)

 

仿原生app,native特效

原文:http://www.cnblogs.com/wangmiao2606/p/4891375.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!