构建基于Javascript的移动CMS——添加滑动

在和几个有兴趣做移动CMS的小伙伴讨论了一番之后,我们觉得当前比较重要的便是统一一下RESTful API。然而最近持续断网中,又遭遇了一次停电,暂停了对API的思考。在周末无聊的时光了看了《人间失格》,又看了会《一个人流浪,不必去远方》。开始思考所谓的技术以外的事情,或许这将是下一篇讨论的话题。

正在我对这个移动CMS的功能一筹莫展的时候,帮小伙伴在做一个图片滑动的时候,便想着将这个功能加进去,很顺利地找到了一个库。

移动CMS滑动

我们所需要的两个功能很简单

  1. 当用户向右滑动的时候,菜单应该展开
  2. 当用户向左滑动的时候,菜单应该关闭

在官网看到了一个简单的示例,然而并不是用于这个菜单,等到我完成之后我才知道:为什么不用于菜单?

找到了这样一个符合功能的库,虽然知道要写这个功能也不难。相比于自己写这个库,还不如用别人维护了一些时候的库来得简单、稳定。

jQuery Plugin to obtain touch gestures from iPhone, iPod Touch and iPad, should also work with Android mobile phones (not tested yet!)

然而,它并不会其他一些设备上工作。

添加jQuery Touchwipe

添加到requirejs的配置中:

require.config({
    baseUrl: ‘lib/‘,
    paths: {
        jquery: ‘jquery-2.1.1.min‘,
        router: ‘../router‘,
        touchwipe: ‘jquery.touchwipe.min‘
    },
    shim: {
        touchwipe: ["jquery"],
        underscore: {
            exports: ‘_‘
        }
    }
});

require([‘../app‘], function(App){
    App.initialize();
});

(注:上面的代码中暂时去掉了一部分无关本文的,为了简单描述。)

接着,添加下面的代码添加到app.js的初始化方法中

$(window).touchwipe({
        wipeLeft: function() {
            $.sidr(‘close‘);
        },
        wipeRight: function() {
            $.sidr(‘open‘);
        },
        preventDefaultEvents: false
    });

就变成了我们需要的代码。。

define([
    ‘jquery‘,
    ‘underscore‘,
    ‘backbone‘,
    ‘router‘,
    ‘jquerySidr‘,
    ‘touchwipe‘
], function($, _, Backbone, Router){

    var initialize = function(){
        $(window).touchwipe({
            wipeLeft: function() {
                $.sidr(‘close‘);
            },
            wipeRight: function() {
                $.sidr(‘open‘);
            },
            preventDefaultEvents: false
        });
        $(document).ready(function() {
            $(‘#sidr‘).show();
            $(‘#menu‘).sidr();
            $("#sidr li a" ).bind(‘touchstart click‘, function() {
                if(null != Backbone.history.fragment){
                    _.each($("#sidr li"),function(li){
                        $(li).removeClass()
                    });

                    $(‘a[href$="#/‘+Backbone.history.fragment+‘"]‘).parent().addClass("active");
                    $.sidr(‘close‘);
                    window.scrollTo(0,0);
                }
            });
        });
        Router.initialize();
    };

    return {
        initialize: initialize
    };
});

便可以实现我们需要的

  1. 当用户向右滑动的时候,菜单应该展开
  2. 当用户向左滑动的时候,菜单应该关闭

其他

然而在Windows Phone的IE浏览器中,左滑动和右滑动分别是前进和后退。

CMS效果: 墨颀 CMS

QQ讨论群: 344271543

项目: https://github.com/gmszone/moqi.mobi

构建基于Javascript的移动CMS——添加滑动

时间: 2024-10-08 20:31:49

构建基于Javascript的移动CMS——添加滑动的相关文章

构建基于Javascript的移动CMS——生成博客(二).路由

在有了上部分的基础之后,我们就可以生成一个博客的内容--BlogPosts Detail.这样就完成了我们这个移动CMS的几乎主要的功能了,有了上节想必对于我们来说要获取一个文章已经不是一件难的事情了. 获取每篇博客 于是我们照猫画虎地写了一个BlogDetail.js define([ 'jquery', 'underscore', 'mustache', 'text!/blog_details.html' ],function($, _, Mustache, blogDetailsTempl

构建基于Javascript的移动CMS——生成博客(一)

在墨颀 CMS中的动态的文章是从我博客的API加载过来的,因为当前没有其他好的CMS当接口.之前直接拿博客的DB文件+Nodejs+RESTify生成了一个博客的API,而且可以支持跨域请求. 简单的博客构成 这次我们可以简单的做一个可以供移动平台阅读的博客,除了不能写作以外(ps:不能写作还能叫博客么).对于写博客的人来说更多的只是写,而对于读者来说,他们只需要读,所以在某种意义上可以将博客的写和读分离开来. 对于用户来说,博客是由两个页面构建的: 博文列表(blogposts list) 博

构建基于Javascript的移动CMS——生成博客(三).重构

当前墨颀CMS的一些基础功能设计已经接近尾声了,在完成博客的前两部分之后,我们需要对此进行一个简单的重构.为的是提取出其中的获取Blog内容的逻辑,于是经过一番努力之后,终于有了点小成果. 墨颀CMS 重构 我们想要的结果,便是可以直接初始化及渲染,即如下的结果: initialize: function(){ this.getBlog(); }, render: function(response){ var about = { about:aboutCMS, aboutcompany:url

构建基于Javascript的移动web CMS——模板

在上一篇<构建基于Javascript的移动CMS--Hello,World>讲述了墨颀 CMS的大概组成,并进行了一个简单的演示样例,即Hello,World.这一次,我们将把CMS简单的放到一个能够执行的服务器环境中,也就是说我们须要一个简单的执行环境,以便于进行更有意思的东西--加入?模板. 開始之前 环境准备 类Unix系统 由于电脑上已经装有python了,这里便用python起一个简单的server,对于GNU/Linux.Mac OS等类unix系统来说,都能够这样执行: pyt

构建基于Javascript的移动web CMS——Hello,World

在一篇构建基于Javascript的移动web CMS入门--简介中简单的介绍了关于墨颀CMS的一些原理,其极框架组成,于是开始接着应该说明一下这个CMS是如何一步步搭建起来. RequireJS 使用 库及依赖 这里用的是bower的JS来下载库,详细可以参考一下bower install js使用bower管理js 这篇文章. 需要下载的库有 RequireJS Backbone Underscore Mustache jQuery 使用RequireJS 引用官网的示例 <!DOCTYPE

构建基于Javascript的移动web CMS——加载JSON文件

在上一篇中说到了如何创建一个Django Tastypie API给移动CMS用,接着我们似乎也应该有一个本地的配置文件用于一些简单的配置,如"获取API的URL"."产品列表"."SEO"(在一开始的时候发现这是不好的,后面又发现Google的爬虫可以运行Javascript,不过也是不推荐的.)这些东西是不太需要修改的,直接写在代码中似乎又不好,于是放到了一个叫作configure.json的文件里. RequireJS Plugins 网上

构建基于JAVASCRIPT的移动WEB CMS入门——简介(转载)

构建基于JAVASCRIPT的移动WEB CMS入门——简介 发布时间:2014-07-17 14:16:18.035763 看到项目上的移动框架,网上寻找了一下,发现原来这些一开始都有.于是,找了个示例开始构建一个移动平台的CMS——墨颀 CMS,方便项目深入理解的同时,也可以自己维护一个CMS系统. 构建框架 尝试过用AngularJS和EmberJS,发现对于使用AngluarJS以及EmberJS来说,主要的问题是要使用自己熟悉的东西没那么容易引入.而且考虑到谷歌向来对自己的项目的支持不

构建基于Javascript的移动web CMS——添加jQuery插件

当看到墨颀 CMS的菜单,变成一个工具栏的时候,变觉得这一切有了意义.于是就继续看看这样一个CMS的边栏是怎么组成的. RequireJS与jQuery 插件示例 一个简单的组合示例如下所示,在main.js中添加下面的内容 requirejs.config( { "shim": { "jquery-cookie" : ["jquery"] } } ); 接着在另外的文件中添加 define(["jquery"], funct

构建基于Javascript的移动web CMS入门——简介

看到项目上的移动框架,网上寻找了一下,发现原来这些一开始都有.于是,找了个示例开始构建一个移动平台的CMS--墨颀 CMS,方便项目深入理解的同时,也可以自己维护一个CMS系统. 构建框架 尝试过用AngularJS和EmberJS,发现对于使用AngluarJS以及EmberJS来说,主要的问题是要使用自己熟悉的东西没那么容易引入.而且考虑到谷歌向来对自己的项目的支持不是很好~~,所以便放弃了AngluarJS的想法. 于是开始寻找一些方案,但是最后还是选择了一个比较通用的方案. Requir