日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

[转载] 使用backbone.js、zepto.js和trigger.io开发HTML5 App

發布時間:2024/10/12 HTML 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [转载] 使用backbone.js、zepto.js和trigger.io开发HTML5 App 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

來源:http://mobile.51cto.com/web-343388.htm

-------------------------------------------------------------------------------

為了力求運行速度快、響應迅即,我們推薦使用backbone.js和zepto.js。

為了讓這個過程更有意思,我們開發了一個小小的示例項目,使用CSS重置樣式、Backbone.js和帶轉場效果的幾個頁面。我們的項目會顯示Trigger推特更新內容和單個的推特消息。與往常一樣,我們將使用同一個HTML5代碼庫創建安卓和iOS應用程序。在這個過程中,我們將介紹如何:

  • 把你的JavaScript文件添加到應用程序中
  • 使用Backbone.js來顯示響應迅即的界面
  • 使用CSS重置樣式,減少跨平臺出現的不一致性
  • 在應用程序中的視圖之間實現示例轉場效果

你可以在此基礎上隨意開發自己的項目——這是開發新項目的良好基礎!代碼放在github上,詳見:https://github.com/trigger-corp/Forge-Bootstrap。

添加的文件

  • Backbone.js,負責處理歷史記錄、用戶操作以及為整個JavaScript框定結構
  • HTML5Boilerplate,旨在減少不同平臺上不一致的渲染默認值帶來的影響
  • Zepto,這個面向移動設備的輕型框架是jQuery的替代方案,可用于DOM(文檔對象模型)處理。

開始上手

想處理應用程序中的JavaScripts和CSS,只要把它們添加到你的index.html中,就像你在普通網站中進行操作那樣:

  • <link?rel="stylesheet"?href="css/reset.css">?
  • <link?rel="stylesheet"?href="css/demo.css">?
  • <script?type="text/javascript"?src="js/lib/zepto.min.js"></script>?
  • <script?type="text/javascript"?src="js/lib/underscore-min.js"></script>?
  • <script?type="text/javascript"?src="js/lib/backbone-min.js"></script>?
  • <script?type="text/javascript"?src="js/demo.js"></script>?
  • 里,我們只使用了HTML5樣板重置樣式(reset.css)、JavaScript庫和我們自己的兩個文件:demo.cssdemo.js

    使用Backbone時,你的入口點應該設置好應用程序正常運行所需要的各方面,然后開始運行Backbone的歷史系統。

    比如說,在該項目中,我們使用$(Demo.init),在應用程序啟動時運行下列函數,只運行一次:

  • //?應用程序啟動時,只調用一次?
  • init:?function?()?{?
  • ????//?獲取Trigger推特更新內容?
  • ????forge.request.ajax({?
  • ????????url:?"https://twitter.com/statuses/user_timeline/14972793.json",?
  • ????????dataType:?"json",?
  • ????????success:?showIndex?
  • ????});?
  • //?一旦我們有了Trigger推特更新內容,就調用?
  • ????function?showIndex(data)?{?
  • ????????//?把初始數據保存起來?
  • ????????Demo.items?=?new?Demo.Collections.Items(data);?
  • ????????//?建立Backbone?
  • ????????Demo.router?=?new?Demo.Router();?
  • ????????Backbone.history.start();?
  • ????}?
  • }?
  • 這里,我們使用request.ajax函數來檢索我們的推特消息,并將數據存儲在一個集合中,然后開始運行Backbone。

    使用Backbone.js

    Backbone.history.start()啟動Backbone的window.onhashchange事件訂閱。當URL的某片段變化時,就使用routes.js中定義的路由:

  • routes:?{?
  • ????""?:?"index",??????????//?入口點:沒有哈希分片或#?
  • ????"item/:item_id":"item"??//?#item/id?
  • },?
  • 路由將URL映射到函數。我們在這里定義了兩個路由:一個對應#index(),另一個對應#item/[item_id]。然后,將item_id作為一個參數傳遞到item()。路由負責為你整個應用程序安排好URL。

    使用Backbone來管理Forge應用程序里面的視圖是個好辦法:我們不僅在歷史堆棧里面構建URL(比如說,這意味著“后退”按鈕在安卓平臺上可以按預期的方式工作),我們還能夠全面控制在應用程序中顯示的內容,又不必借助慢騰騰的頁面裝入機制。

    不過,特別是在移動平臺上,你的用戶期望以某種動態轉場效果從一個視圖切換到下一個視圖;為此,你可以把Backbone視圖組織成頁面。

    頁面視圖

    該代碼片段顯示了我們如何在這個項目中實現頁面,當一個頁面變得活躍時,就使用動畫轉場效果。你還可以在此看到我們使用Zepto用于DOM處理。

  • Demo.Views.Page?=?Backbone.View.extend({?
  • ????className:?"page",?
  • ????initialize:?function?()?{?
  • ????????this.render();?
  • ????},?
  • ????show:?function?()?{?
  • ????????$('.page').css({"position":?"absolute"});?
  • ????????var?direction_coefficient?=?this.options.back???1?:?-1;?
  • ????????if?($('.page').length)?{?
  • ????????????var?$old?=?$('.page').not(this.el);?
  • ????????????//?這個解決辦法來之不易-?
  • ????????????//?僅僅使用.css(property,?'')不管用!?
  • ????????????$old.get(0).style["margin-left"]?=?""?
  • ????????????$old.get(0).style["-webkit-transform"]?=?""?
  • ????????????this.$el.appendTo('body').hide();?
  • ????????????this.$el.show().css(?
  • ????????????????{"margin-left":?320?*?direction_coefficient});?
  • ????????????this.$el.anim(?
  • ????????????????{translate3d:?-320?*?direction_coefficient?+'px,0,0'},?
  • ????????????????0.3,?'linear');?
  • ????????????$old.anim(?
  • ????????????????{translate3d:?-320?*?direction_coefficient?+?'px,0,0'},?
  • ????????????????0.3,?'linear',?function()?{?
  • ????????????????????$old.remove();?
  • ????????????????????$('.page').css({"position":?"static"});?
  • ????????????});?
  • ????????}?else?{?
  • ????????????this.$el.appendTo('body').hide();?
  • ????????????this.$el.show();?
  • ????????}?
  • ????????window.scrollTo(0,?0);?
  • ????}?
  • });?
  • 如果你希望,可以在你自己的視圖中實現這個頁面,并使用show()方法從一個頁面切換到另一個頁面。

    比如說,在該項目中,我們為所有推特消息的初始視圖創建了一個頁面,并且當用戶選擇每一單個的推特消息時也為它創建一個頁面。

    使用Forge API的其他部分

    我們已經看到了使用forge.request.ajax來請求遠程服務器。該項目還充分利用了另外一些Forge API。

    在expand_item()中,我們使用forge.tabs.open(),以一種跨平臺的方式打開外部頁面新標簽頁。open()的說明文檔在此。

    最后,我們使用了click_or_tap()函數中的forge.is,以便我們能夠監聽移動設備上的輕觸事件(tap event),以及其他設備上的點擊事件(click event)。易于檢測平臺的說明文檔在此。

  • click_or_tap:?function(obj)?{?
  • //?至于對象屬性,為屬性添加“點擊”,并使用原始值?
  • ????var?new_obj?=?{};?
  • ????for(var?property?in?obj)?{?
  • ????????if?(obj.hasOwnProperty(property))?{?
  • ????????????if?(forge.is.mobile())?{?
  • ????????????????new_obj["tap?"?+?property]?=?obj[property];?
  • ????????????}?
  • ????????????else?{?
  • ????????????????new_obj["click?"?+?property]?=?obj[property];?
  • ????????????}?
  • ????????}?
  • ????}?
  • ????return?new_obj?
  • }?
  • 這很重要,因為點擊事件的反應在移動設備上不如輕觸來得迅即。

    構建和運行應用程序

    為了自行構建和運行應用程序,請先取我們網站上注冊(https://trigger.io/);如果你還沒有Trigger.io Forge框架,就安裝該框架,開始建立Forge環境(操作步驟詳見http://docs.trigger.io/en/v1.3/forge/index.html)。

    然后,

    • 為你的應用程序創建一個新的目錄,使用cd命令進入到該目錄,運行“forgecreate -n Demo”,在你的帳戶中創建Demo(演示)應用程序。

    • 把教程代碼拷貝到src目錄中,覆蓋forge之前創建的樣板代碼。

    • 運行forge build,構建應用程序的每個版本(這步操作第一次速度很慢——但隨后的構建過程快若閃電!)

    • 運行forge run android或forge run ios,查看應用程序(你需要先安裝安卓模擬器或iPhone模擬器——欲知詳情,請參閱我們的說明文檔:http://docs.trigger.io/en/v1.3/android/getting-started.html)。

    • 如果你連接上了安卓手機,forge run android會將該應用程序部署到你的手機上,進行測試(確保打開了USB調試模式)。

    • 盡情享受吧!

    就是這樣

    你可以隨意處理源代碼。我們希望一切都很清楚。

    轉載于:https://www.cnblogs.com/jiemao/archive/2012/08/17/2643498.html

    總結

    以上是生活随笔為你收集整理的[转载] 使用backbone.js、zepto.js和trigger.io开发HTML5 App的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 国产欧美久久久精品免费 | 国产精品美女网站 | 日本三级中国三级99人妇网站 | 国产亚洲黄色片 | 黄色一级片a | 狠色综合| 亚洲社区在线观看 | 国产精品人成在线观看免费 | 亚洲中文字幕无码av | 99久久综合国产精品二区 | 四川话毛片少妇免费看 | 日韩精品一区二区三区在线视频 | 99久久99久久精品国产片果冰 | 在线成人看片 | 久久综合狠狠综合久久综合88 | 日韩在线免费视频观看 | 怡红院成人在线 | 欧美大浪妇猛交饥渴大叫 | 用舌头去添高潮无码视频 | 蜜臀在线观看 | 国产美女一区二区三区 | 亚洲永久精品视频 | 国产高清一区 | 999国产在线| 久久精品一日日躁夜夜躁 | 亚洲精品一二 | 朝桐光一区二区三区 | 男人天堂b | 亚洲作爱网| 小泽玛丽亚在线观看 | 色欲av永久无码精品无码蜜桃 | 国产鲁鲁视频在线观看免费 | 黄色裸体视频 | 人人妻人人澡人人爽欧美一区双 | 国产同性人妖ts口直男 | 六月婷婷中文字幕 | 干干天天| 不卡av网| 麻豆传媒映画官网 | 边啃奶头边躁狠狠躁 | 日本成人高清 | 欧美日韩另类在线 | 男女性高潮免费网站 | 亚洲精品国产欧美 | 高清国产mv在线观看 | 69视频网址 | 欧美10p | 亚洲av无码一区二区三区网站 | 国产网友自拍视频 | 91美女片黄在线观看游戏 | 成人国产免费视频 | 小泽玛利亚一区二区三区在线观看 | 夜夜操天天 | 中文字幕永久在线播放 | 老司机精品福利视频 | 国产ts丝袜人妖系列视频 | 特级特黄aaaa免费看 | 九一精品国产 | 影音先锋在线视频观看 | 日韩有码第一页 | 综合久久久久久久久久久 | 久久天堂av | 123超碰| 女同性做受全过程动图 | 总裁憋尿呻吟双腿大开憋尿 | www麻豆视频 | 国产私人影院 | 暴操白虎| jizz视频在线观看 | 污污网站在线看 | 18成人在线 | 久久久久久影院 | 4438五月天| 99国产精品久久久久久久成人热 | 九九热精品视频在线观看 | 成人做爰视频www网站小优视频 | 日韩成人一区 | 欧美抠逼视频 | 激情999 | jizz性欧美17 | 日韩中文字幕影院 | 在线观看aaa | 国产白袜脚足j棉袜在线观看 | 台湾佬美性中文娱乐网 | 美女扒开尿口让男人爽 | 日韩欧美日本 | 99热一区二区 | 日本加勒比一区 | 国产伊人一区 | 一女被多男玩喷潮视频 | 一级黄av | 美女诱惑av | 国产成人精品无码免费看在线 | 成人国产在线观看 | 欧美呦呦 | 精品久久久久一区二区国产 | 香蕉二区 | 无码少妇一级AV片在线观看 | 欧美视频一二三区 |