site.js
上传用户:shuoshiled
上传日期:2018-01-28
资源大小:10124k
文件大小:2k
源码类别:

中间件编程

开发平台:

JavaScript

  1. /*!  * Ext JS Library 3.0.0  * Copyright(c) 2006-2009 Ext JS, LLC  * licensing@extjs.com  * http://www.extjs.com/license  */ Ext.onReady(function(){
  2. var activeMenu;
  3. function createMenu(name){
  4. var el = Ext.get(name+'-link');
  5. var tid = 0, menu, doc = Ext.getDoc();
  6. var handleOver = function(e, t){
  7. if(t != el.dom && t != menu.dom && !e.within(el) && !e.within(menu)){
  8. hideMenu();
  9. }
  10. };
  11. var hideMenu = function(){
  12. if(menu){
  13. menu.hide();
  14. el.setStyle('text-decoration', '');
  15. doc.un('mouseover', handleOver);
  16. doc.un('mousedown', handleDown);
  17. }
  18. };
  19. var handleDown = function(e){
  20. if(!e.within(menu)){
  21. hideMenu();
  22. }
  23. };
  24. var showMenu = function(){
  25. clearTimeout(tid);
  26. tid = 0;
  27. if (!menu) {
  28. menu = new Ext.Layer({shadow:'sides',hideMode: 'display'}, name+'-menu');
  29. }
  30. menu.hideMenu = hideMenu;
  31. menu.el = el;
  32. if(activeMenu && menu != activeMenu){
  33. activeMenu.hideMenu();
  34. }
  35. activeMenu = menu;
  36. if (!menu.isVisible()) {
  37. menu.show();
  38. menu.alignTo(el, 'tl-bl?');
  39. menu.sync();
  40. el.setStyle('text-decoration', 'underline');
  41. doc.on('mouseover', handleOver, null, {buffer:150});
  42. doc.on('mousedown', handleDown);
  43. }
  44. };
  45. el.on('mouseover', function(e){
  46. if(!tid){
  47. tid = showMenu.defer(150);
  48. }
  49. });
  50. el.on('mouseout', function(e){
  51. if(tid && !e.within(el, true)){
  52. clearTimeout(tid);
  53. tid = 0;
  54. }
  55. });
  56. }
  57. createMenu('products');
  58. createMenu('support');
  59. createMenu('store');
  60. // expanders
  61. Ext.getBody().on('click', function(e, t){
  62. t = Ext.get(t);
  63. e.stopEvent();
  64. var bd = t.next('div.expandable-body');
  65. bd.enableDisplayMode();
  66. var bdi = bd.first();
  67. var expanded = bd.isVisible();
  68. if(expanded){
  69. bd.hide();
  70. }else{
  71. bdi.hide();
  72. bd.show();
  73. bdi.slideIn('l', {duration:0.2, stopFx: true, easing:'easeOut'});
  74. }
  75. t.update(!expanded ? 'Hide details' : 'Show details');
  76. }, null, {delegate:'a.expander'});
  77. });