• 控制器主要逻辑示例

    //声明zjs命名空间

    if (!window.zjs) { zjs = {} };

    if (!window.zjss) { zjss = {} };

     

    //上次访问的页面 默认为首页 

    var lastPageid = "index";

     

    var tsfm0 = { 'transform': 'translate3d(0, 0px, 0px)', '-webkit-transform': 'translate3d(0, 0px, 0px)' };

    var tsfm100 = { 'transform': 'translate3d(100%, 0px, 0px)', '-webkit-transform': 'translate3d(100%, 0px, 0px)' };

    var tsfmf100 = { 'transform': 'translate3d(-100%, 0px, 0px)', '-webkit-transform': 'translate3d(-100%, 0px, 0px)' };

    //向左切换页面转场 $now为当前页面 $target为目标页面

    zjs.goNextPage = function ($target, targetid) {

        if (zjs.pageScrollCenter[lastPageid]) {

            zjs.pageScrollCenter[lastPageid] = $(window).scrollTop();

        }

        var $now = $("div.view").children("div#" + lastPageid);

        $now.css(tsfm0).show().animate(tsfmf100, 300, "ease-in-out", function () { $now.hide(); });

        $target.css(tsfm100).show().animate(tsfm0, 300, "ease-in-out", function () {

            $target.removeAttr("style");

            if (zjs.pageScrollCenter[targetid]) {

                $(window).scrollTop(zjs.pageScrollCenter[targetid]);

            }

        });

    };

    //向右切换页面转场 $now为当前页面 $target为目标页面

    zjs.goBackPage = function ($target, targetid) {

        var $now = $("div.view").children("div#" + lastPageid);

        $now.css(tsfm0).show().animate(tsfm100, 300, "ease-in-out", function () { $now.hide(); });

        $target.css(tsfmf100).show().animate(tsfm0, 300, "ease-in-out", function () {

            $target.removeAttr("style");

            if (zjs.pageScrollCenter[targetid]) {

                $(window).scrollTop(zjs.pageScrollCenter[targetid]);

            }

        });

    };

    zjs.pageScrollCenter = { "index": 1 };//是否记录滚动条位置

    zjs.pageEventCenter = { //页面事件中心 当页面加载完以后 就调用对应的页面加载事件 比如初始化表单或者表格

        "index": function () {//首页加载事件 首页加载时 需要加载幻灯片

            if (!window.ctableIndexList) {

                zjs.documentReady();

            }

        },

        "sexercise": function () { //新闻资讯列表页

            if (!window.ctablesexerciseList) {

                zjs.documentReady();

            }

        },

        "sexerciseinfo": function () { //新闻资讯详情页

            if (!window.cformsexercisedetail) {

                zjs.documentReady();

            } else {

                window.cformsexercisedetail.search();

            }

        }

    };//end zjs.pageEventConter 页面事件中心

     

    //页面切换函数

    zjs.pageChange = function (isback) {

        var pageid = "index";//如果没有页面 就是回到首页

        var gps = zjs.getQueryStr();

        if (gps.page) {//如果页面 就进页面

            pageid = gps.page;

        }

     

        if ($("div.view").children("div#" + pageid).length > 0) {

            //如果加载过 就从缓存中取

            var $chil = $("div.view").children("div#" + pageid);

            if (lastPageid == pageid) { }//如果目标页面不是本页面 再转场

            else {

                if (isback) {

                    zjs.goBackPage($chil, pageid);//当前向右退场 新页面从左入场

                } else {

                    zjs.goNextPage($chil, pageid);//当前向左退场 新页面从右入场

                }

            }

            if (zjs.pageEventCenter[pageid])

                zjs.pageEventCenter[pageid].call();

     

            zjs.changeheader(pageid);

     

            lastPageid = pageid;//把当前页面 变为历史页面

        } else {

            //否则就用get请求拿到页面 并加载

            $.ajax({

                async: false, url: "/mobile/" + pageid + ".html?tm=" + (new Date()).getTime(),

                success: function (data) {

                    $("div.view").append(data);

                    var $chil = $("div.view").children("div#" + pageid);

                    if ($("div.view").children().length > 1) {

                        //如果页面中已有元素 就走一下转场 新加载的页面 不可能有退场 只有入场

                        zjs.goNextPage($chil);//当前向左退场 新页面从右入场

继续阅读

    uiZjs