jquery.message2.js 5.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. (function () {
  2. var ua = navigator.userAgent.toLowerCase(); var is = (ua.match(/\b(chrome|opera|safari|msie|firefox)\b/) || ['', 'mozilla'])[1]; var r = '(?:' + is + '|version)[\\/: ]([\\d.]+)'; var v = (ua.match(new RegExp(r)) || [])[1]; jQuery.browser.is = is; jQuery.browser.ver = v; jQuery.browser[is] = true;
  3. })(); (function (jQuery) { /* * * jQuery Plugin - Messager * * Author: corrie Mail: corrie@sina.com Homepage: www.corrie.net.cn * * Copyright (c) 2008 corrie.net.cn * * @license http://www.gnu.org/licenses/gpl.html [GNU General Public * License] * * * * $Date: 2008-12-26 * * $Vesion: 1.5 @ how to use and example: Please Open index.html * */ this.version = '@1.5'; this.layer = {
  4. 'width': 200, 'height': 100
  5. }; this.title = '信息提示'; this.time = 4000; this.anims = {
  6. 'type': 'slide', 'speed': 600
  7. }; this.timer1 = null; this.inits = function (title, text) {
  8. if ($("#message").is("div")) {
  9. return;
  10. } $(document.body) .prepend( '<div id="message" style="border:#b9c9ef 1px solid;z-index:100;width:' + this.layer.width + 'px;height:' + this.layer.height + 'px;position:absolute; display:none;background:#cfdef4; bottom:0; right:0; overflow:hidden;"><div style="border:1px solid #fff;border-bottom:none;width:100%;height:25px;font-size:12px;overflow:hidden;color:#1f336b;"><span id="message_close" style="float:right;padding:5px 0 5px 0;width:16px;line-height:auto;color:red;font-size:12px;font-weight:bold;text-align:center;cursor:pointer;overflow:hidden;">×</span><div style="padding:5px 0 5px 5px;width:100px;line-height:18px;text-align:left;overflow:hidden;">' + title + '</div><div style="clear:both;"></div></div> <div style="padding-bottom:5px;border:1px solid #fff;border-top:none;width:100%;height:auto;font-size:12px;"><div id="message_content" style="margin:0 5px 0 5px;border:#b9c9ef 1px solid;padding:10px 0 10px 5px;font-size:12px;width:' + (this.layer.width - 17) + 'px;height:' + (this.layer.height - 50) + 'px;color:#1f336b;text-align:left;overflow:hidden;">' + text + '</div></div></div>'); $("#message_close").click(function () {
  11. setTimeout('this.close()', 1);
  12. }); $("#message").hover(function () {
  13. clearTimeout(timer1); timer1 = null;
  14. }, function () {
  15. if (time > 0) timer1 = setTimeout('this.close()', time);
  16. }); $(window).scroll( function () {
  17. var bottomHeight = "-" + document.documentElement.scrollTop; $("#message").css("bottom", bottomHeight + "px");
  18. });
  19. }; this.show = function (title, text, time) {
  20. if ($("#message").is("div")) {
  21. return;
  22. } if (title == 0 || !title) title = this.title; this.inits(title, text); if (time >= 0) this.time = time; switch (this.anims.type) {
  23. case 'slide': $("#message").slideDown(this.anims.speed); break; case 'fade': $("#message").fadeIn(this.anims.speed); break; case 'show': $("#message").show(this.anims.speed); break; default: $("#message").slideDown(this.anims.speed); break;
  24. } var bottomHeight = "-" + document.documentElement.scrollTop; $("#message").css("bottom", bottomHeight + "px"); if ($.browser.is == 'chrome') {
  25. setTimeout(function () {
  26. $("#message").remove(); this.inits(title, text); $("#message").css("display", "block");
  27. }, this.anims.speed - (this.anims.speed / 5));
  28. } this.rmmessage(this.time);
  29. }; this.lays = function (width, height) {
  30. if ($("#message").is("div")) {
  31. return;
  32. } if (width != 0 && width) this.layer.width = width; if (height != 0 && height) this.layer.height = height;
  33. } this.anim = function (type, speed) {
  34. if ($("#message").is("div")) {
  35. return;
  36. } if (type != 0 && type) this.anims.type = type; if (speed != 0 && speed) {
  37. switch (speed) {
  38. case 'slow': ; break; case 'fast': this.anims.speed = 200; break; case 'normal': this.anims.speed = 400; break; default: this.anims.speed = speed;
  39. }
  40. }
  41. } this.rmmessage = function (time) {
  42. if (time > 0) {
  43. timer1 = setTimeout('this.close()', time);
  44. }
  45. }; this.close = function () {
  46. switch (this.anims.type) {
  47. case 'slide': $("#message").slideUp(this.anims.speed); break; case 'fade': $("#message").fadeOut(this.anims.speed); break; case 'show': $("#message").hide(this.anims.speed); break; default: $("#message").slideUp(this.anims.speed); break;
  48. } ; setTimeout('$("#message").remove();', this.anims.speed); this.original();
  49. } this.original = function () {
  50. this.layer = {
  51. 'width': 200, 'height': 100
  52. }; this.title = '信息提示'; this.time = 4000; this.anims = {
  53. 'type': 'slide', 'speed': 600
  54. };
  55. }; jQuery.messager = this; return jQuery;
  56. })(jQuery);