chatBar.js 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. + function($) {
  2. $.fn.chatBar = function(options) {
  3. var defaultsettings = {
  4. txtPlaceholder: '请输入内容...',
  5. cancelBack: null,
  6. sendBack: null,
  7. cancelValue: '取消',
  8. okValue: '发送',
  9. };
  10. if (this.length == 0) return this;
  11. if (this.length > 1) {
  12. this.each(function() {
  13. $(this).chatBar(options)
  14. });
  15. return this;
  16. }
  17. var opts = $.extend(defaultsettings, options);
  18. var $this = $(this),
  19. el = this;
  20. var wh=$(window).height();
  21. var chatTextWarp =
  22. '<div class="chat-wrap" style="height:'+wh+'px;"><div class="chat-textarea">' +
  23. '<textarea placeholder="' + defaultsettings.txtPlaceholder + '"></textarea>' +
  24. '</div><ul class="chat-btn-group">' +
  25. '<li class="chat-btn-cancel">' + defaultsettings.cancelValue + '</li><li class="chat-btn-send disabled">' +
  26. defaultsettings.okValue + '</li></ul></div>';
  27. $this.append(chatTextWarp);
  28. $this.on("click", ".chat-input", function() {
  29. $("body,html").scrollTop(-(wh*0.5));
  30. if ($(".chat-wrap").length > 0) {
  31. $(".chat-wrap").addClass("chat-show");
  32. $(".chat-textarea textarea").val("").focus();
  33. $(".chat-btn-send").addClass("disabled");
  34. setTimeout(function(){
  35. $("body,html").scrollTop(0);
  36. $(".c-main").hide();
  37. },800)
  38. }/* else {
  39. setTimeout(function() {
  40. $(".chat-wrap").addClass("chat-show");
  41. }, 100);
  42. setTimeout(function() {
  43. $(".chat-textarea textarea").focus();
  44. }, 400);
  45. }*/
  46. });
  47. /* 取消按钮 */
  48. $this.on("click", ".chat-btn-cancel", function() {
  49. setTimeout(function() {
  50. $(".c-main").show();
  51. $(".chat-wrap").removeClass("chat-show");
  52. }, 200)
  53. });
  54. /* 发送按钮 */
  55. $this.on("click", ".chat-btn-send", function() {
  56. setTimeout(function() {
  57. $(".c-main").show();
  58. $(".chat-wrap").removeClass("chat-show");
  59. }, 200)
  60. if (opts.sendBack) {
  61. var sendtxt = $(".chat-textarea textarea").val();
  62. opts.sendBack(sendtxt);
  63. };
  64. });
  65. $this.on("input propertychange", "textarea", function() {
  66. if ($(this).val() != "") {
  67. $(".chat-btn-send").removeClass("disabled");
  68. } else {
  69. $(".chat-btn-send").addClass("disabled");
  70. }
  71. });
  72. return this;
  73. }
  74. }(jQuery);