UpdatePanelAnimation.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. Type.registerNamespace("ScriptLibrary");
  2. ScriptLibrary.BorderAnimation = function(startColor, endColor, duration) {
  3. this._startColor = startColor;
  4. this._endColor = endColor;
  5. this._duration = duration;
  6. }
  7. ScriptLibrary.BorderAnimation.prototype = {
  8. animatePanel: function(panelElement) {
  9. var s = panelElement.style;
  10. var startColor = this._startColor;
  11. var endColor = this._endColor;
  12. s.borderColor = startColor;
  13. window.setTimeout(
  14. function() {{ s.borderColor = endColor; }},
  15. this._duration
  16. );
  17. }
  18. }
  19. ScriptLibrary.BorderAnimation.registerClass('ScriptLibrary.BorderAnimation', null);
  20. var panelUpdatedAnimation = new ScriptLibrary.BorderAnimation('blue', 'gray', 1000);
  21. var postbackElement;
  22. Sys.Application.add_load(ApplicationLoadHandler);
  23. function ApplicationLoadHandler() {
  24. Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(beginRequest);
  25. Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(pageLoaded);
  26. }
  27. function beginRequest(sender, args) {
  28. postbackElement = args.get_postBackElement();
  29. }
  30. function pageLoaded(sender, args) {
  31. var updatedPanels = args.get_panelsUpdated();
  32. if (typeof(postbackElement) === "undefined") {
  33. return;
  34. }
  35. else if (postbackElement.id.toLowerCase().indexOf('animate') > -1) {
  36. for (i=0; i < updatedPanels.length; i++) {
  37. panelUpdatedAnimation.animatePanel(updatedPanels[i]);
  38. }
  39. }
  40. }
  41. if(typeof(Sys) !== "undefined") Sys.Application.notifyScriptLoaded();