boot.js 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. requirejs.config({
  2. baseUrl: '',
  3. // urlArgs: "v=" + (new Date()).getTime(),
  4. urlArgs: 'v=20140320',
  5. paths: {}
  6. })
  7. var $doc = $(document)
  8. // 首页
  9. var pageHome = {
  10. route: '',
  11. classname: 'home',
  12. animate: 'fadeIn',
  13. view: function() {
  14. var $page = this
  15. requirejs(['home'], function(viewData) {
  16. $doc.trigger('spa:initpage', [$page, viewData])
  17. })
  18. }
  19. }
  20. // demo:打开新页面视图
  21. var demoNewPage = {
  22. route: 'demo/newpage',
  23. classname: 'demo-newpage',
  24. animate: 'slideInRight',
  25. view: function() {
  26. var $page = this
  27. requirejs(['demo.newpage'], function(viewData) {
  28. $doc.trigger('spa:initpage', [$page, viewData])
  29. })
  30. }
  31. }
  32. // demo:页面视图转换动画
  33. var demoTransitPage = {
  34. route: 'demo/transitpage',
  35. classname: 'demo-transitpage',
  36. animate: 'default',
  37. view: function() {
  38. var $page = this
  39. requirejs(['demo.transitpage'], function(viewData) {
  40. $doc.trigger('spa:initpage', [$page, viewData])
  41. })
  42. }
  43. }
  44. $doc.trigger('spa:route', [pageHome, demoNewPage, demoTransitPage])
  45. // 导航菜单面板
  46. var panelMenu = {
  47. id: 'menu',
  48. classname: 'menu',
  49. animate: 'overlayInRight',
  50. view: function() {
  51. var $panel = this
  52. requirejs(['menu'], function(menuView) {
  53. $doc.trigger('spa:initpanel', [$panel, viewData])
  54. })
  55. }
  56. }
  57. // demo:侧边栏菜单
  58. var demoPanelSidemenu = {
  59. id: 'demoPanelSidemenu',
  60. classname: 'demo-panel-sidemenu',
  61. animate: 'revealInRight',
  62. view: function() {
  63. var $panel = this
  64. requirejs(['demo.panelsidemenu'], function(viewData) {
  65. $doc.trigger('spa:initpanel', [$panel, viewData])
  66. })
  67. }
  68. }
  69. // demo:提示对话框
  70. var demoPanelAlert = {
  71. id: 'demoPanelAlert',
  72. classname: 'demo-panel-alert',
  73. animate: 'zoomIn',
  74. view: function() {
  75. var $panel = this
  76. requirejs(['demo.panelalert'], function(viewData) {
  77. $doc.trigger('spa:initpanel', [$panel, viewData])
  78. var $dialog = $('.panel', $panel)
  79. //高度居中
  80. $dialog.css({marginTop: ($panel.height() - $dialog.prop('offsetHeight')) / 2})
  81. $panel.on('click touchstart', 'button', function(event) {
  82. $panel.trigger('spa:closepanel')
  83. event.stopPropagation()
  84. event.preventDefault()
  85. })
  86. })
  87. }
  88. }
  89. // demo:确认对话框
  90. var demoPanelConfirm = {
  91. id: 'demoPanelConfirm',
  92. classname: 'demo-panel-confirm',
  93. animate: 'overlayInUp',
  94. view: function() {
  95. var $panel = this
  96. requirejs(['demo.panelconfirm'], function(viewData) {
  97. $doc.trigger('spa:initpanel', [$panel, viewData])
  98. })
  99. }
  100. }
  101. // demo:面板视图转换动画
  102. var demoPanelTransit = {
  103. id: 'demoPanelTransit',
  104. classname: 'demo-panel-transit',
  105. animate: 'overlayInLeft',
  106. view: function() {
  107. var $panel = this
  108. requirejs(['demo.paneltransit'], function(viewData) {
  109. $doc.trigger('spa:initpanel', [$panel, viewData])
  110. })
  111. }
  112. }
  113. $doc.trigger('spa:panel', [panelMenu, demoPanelSidemenu, demoPanelAlert, demoPanelConfirm, demoPanelTransit])
  114. $(function() {
  115. $doc.trigger('spa:boot')
  116. })