首页 > 语言 > JavaScript > 正文

JavaScript模拟可展开、拖动与关闭的聊天窗口实例

2024-05-06 16:19:58
字体:
来源:转载
供稿:网友

这篇文章主要介绍了JavaScript模拟可展开、拖动与关闭的聊天窗口,实例分析了javascript实现可拖动的div层相关技巧,非常具有实用价值,需要的朋友可以参考下

用JavaScript实现的仿QQ聊天窗口,可以展开层、拖动层、关闭层,还可以简单发消息,很不错吧,而且代码也不多,适合新手研究,也比较实用,你可以在此基础上扩展很多JS+CSS应用。

 

 
  1. <!--CTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dt--> 
  3. <html> 
  4. <head> 
  5. <title>层展开、层拖动、层关闭</title> 
  6. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  7. <style type="text/css" media="all" rel="stylesheet"
  8. <!-- 
  9. body { 
  10. text-align:left; 
  11. margin:0; 
  12. font:normal 12px Verdana, Arial; 
  13. background:#FFEEFF 
  14. form { 
  15. margin:0; 
  16. font:normal 12px Verdana, Arial; 
  17. table,input { 
  18. font:normal 12px Verdana, Arial; 
  19. a:link,a:visited{ 
  20. text-decoration:none; 
  21. color:#333333; 
  22. a:hover{ 
  23. text-decoration:none; 
  24. color:#FF6600 
  25. #main { 
  26. width:400px; 
  27. position:absolute; 
  28. left:600px; 
  29. top:100px; 
  30. background:#EFEFFF; 
  31. text-align:left; 
  32. filter:Alpha(opacity=90) 
  33. #ChatHead { 
  34. text-align:right; 
  35. padding:3px; 
  36. border:1px solid #003399; 
  37. background:#DCDCFF; 
  38. font-size:11px; 
  39. color:#3366FF; 
  40. cursor:move; 
  41. #ChatHead a:link,#ChatHead a:visited, { 
  42. font-size:14px; 
  43. font-weight:bold; 
  44. padding:0 3px 
  45. #ChatBody { 
  46. border:1px solid #003399; 
  47. border-top:none; 
  48. padding:2px; 
  49. #ChatContent { 
  50. height:200px; 
  51. padding:6px; 
  52. overflow-y:scroll; 
  53. word-breakbreak-all 
  54. #ChatBtn { 
  55. border-top:1px solid #003399; 
  56. padding:2px 
  57. --> 
  58. </style><script language="javascript" type="text/javascript"
  59. <!-- 
  60. function $(d){return document.getElementById(d);} 
  61. function gs(d){var t=$(d);if (t){return t.style;}else{return null;}} 
  62. function gs2(d,a){ 
  63. if (d.currentStyle){  
  64. var curVal=d.currentStyle[a] 
  65. }else{  
  66. var curVal=document.defaultView.getComputedStyle(d, null)[a] 
  67. }  
  68. return curVal; 
  69. function ChatHidden(){gs("ChatBody").display = "none";} 
  70. function ChatShow(){gs("ChatBody").display = "";} 
  71. function ChatClose(){gs("main").display = "none";} 
  72. function ChatSend(obj){ 
  73. var o = obj.ChatValue; 
  74. if (o.value.length>0){ 
  75. $("ChatContent").innerHTML += "<strong>Akon说:</strong>"+o.value+"<br/>"
  76. o.value=''
  77. if (document.getElementById){ 
  78. function(){ 
  79. if (window.opera){ document.write("<input type='hidden' id='Q' value=' '>"); } 
  80. var n = 500; 
  81. var dragok = false
  82. var y,x,d,dy,dx; 
  83. function move(e) 
  84. if (!e) e = window.event; 
  85. if (dragok){ 
  86. d.style.left = dx + e.clientX - x + "px"
  87. d.style.top = dy + e.clientY - y + "px"
  88. return false
  89. function down(e){ 
  90. if (!e) e = window.event; 
  91. var temp = (typeof e.target != "undefined")?e.target:e.srcElement; 
  92. if (temp.tagName != "HTML"|"BODY" && temp.className != "dragclass"){ 
  93. temp = (typeof temp.parentNode != "undefined")?temp.parentNode:temp.parentElement; 
  94. if('TR'==temp.tagName){ 
  95. temp = (typeof temp.parentNode != "undefined")?temp.parentNode:temp.parentElement; 
  96. temp = (typeof temp.parentNode != "undefined")?temp.parentNode:temp.parentElement; 
  97. temp = (typeof temp.parentNode != "undefined")?temp.parentNode:temp.parentElement; 
  98. if (temp.className == "dragclass"){ 
  99. if (window.opera){ document.getElementById("Q").focus(); } 
  100. dragok = true
  101. temp.style.zIndex = n++; 
  102. d = temp; 
  103. dx = parseInt(gs2(temp,"left"))|0; 
  104. dy = parseInt(gs2(temp,"top"))|0; 
  105. x = e.clientX; 
  106. y = e.clientY; 
  107. document.onmousemove = move; 
  108. return false
  109. function up(){ 
  110. dragok = false
  111. document.onmousemove = null
  112. document.onmousedown = down; 
  113. document.onmouseup = up; 
  114. )(); 
  115. --> 
  116. </script> 
  117. </head> 
  118. <body> 
  119. <div class="dragclass" id="main" style="LEFT: 588px; TOP: 298px"
  120. <div id="ChatHead"><a onclick="ChatHidden();" href="#">-</a> 
  121. <a onclick="ChatShow();" href="#">+</a> 
  122. <a onclick="ChatClose();" href="#">x</a> </div> 
  123. <div id="ChatBody"
  124. <div id="ChatContent">HI! Hello ! Welcome to www.vevb.com</div> 
  125. <div id="ChatBtn"
  126. <form action="" method="post" name="chat"
  127. </form> 
  128. </div> 
  129. </div> 
  130. </div> 
  131. </body> 
  132. </html> 

希望本文所述对大家的javascript程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选