返回列表 发布新帖

「怀旧向」HTML像素级复刻QQ2006经典界面

566 0
小K网牛逼 发表于 3 小时前 | 查看全部 阅读模式 <

马上注册,结交更多好友,享用更多功能,让你轻松玩转小K网。

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

×
这是一个使用 HTML + CSS + JavaScript 实现的 QQ2006 像素级复刻项目,重现了80/90后网友的青春记忆——那个伴随我们成长的经典QQ界面!
从登录框的珊瑚蓝渐变,到主面板的好友头像,再到聊天窗口的功能图标,所有素材全部从原版QQ2006安装包提取,力求还原最原始的体验。

「怀旧向」HTML像素级复刻QQ2006经典界面

「怀旧向」HTML像素级复刻QQ2006经典界面

🎯 为什么做这个?
20年前的 QQ2006,是很多80/90后的数字故乡。那时我们还说着“GG/MM”,攒钱买Q秀,为太阳等级熬夜挂机……这个项目不只是UI复刻,更是一次怀旧疗愈。
本项目代码全是业余时间手搓,没有用到 AI,断断续续做了两周。
🌟 未来计划
  • 增加更多交互逻辑,实现基础聊天功能模拟
  • 复刻更多子功能界面,如菜单面板、视频聊天界面等
⚠️ 注意事项
  • 仅供学习交流,请勿用于商业用途
  • 尊重版权,所有素材均来自原版 QQ2006 安装包,版权归腾讯公司所有
🤝 贡献指南
如果你对这个项目感兴趣,想一起打造更完整的 QQ2006 复刻版,欢迎提交 PR 或 Issue。让我们一起为这段数字记忆添砖加瓦!
📜 开源许可
你可以自由地分享和修改代码,但请保留出处。

让我们一同重温那段青涩时光,用代码致敬经典!
  1. <!DOCTYPE html>
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  5. <title>QQ2006</title>
  6. <meta name="author" content="mengkun">
  7. <link rel="shortcut icon" href="img/qq.png" type="image/x-icon">
  8. <style>
  9. * {
  10.     margin: 0;
  11.     padding: 0;
  12.     font-family: '宋体';
  13.     box-sizing: border-box;
  14. }
  15. html, body {
  16.     width: 100%;
  17.     height: 100%;
  18.     overflow: hidden;
  19. }
  20. body {
  21.     font-size: 12px;
  22.     font-family: '宋体';
  23.     background: url('img/bg.jpeg') center center / cover no-repeat fixed;
  24. }
  25. button {
  26.     outline: none;
  27.     border: none;
  28.     background: transparent;
  29.     background-repeat: no-repeat;
  30.     cursor: pointer;
  31. }
  32. input {
  33.     font-family: 宋体;
  34.     font-size: 12px;
  35.     outline: none;
  36. }
  37. img {
  38.     -webkit-user-drag: none;
  39. }
  40. .drag-parent {
  41.     position: fixed;
  42. }
  43. /*windows xp UI*/
  44. .app__header__buttons{opacity:1;height:22px;display:flex;gap:1px;-webkit-box-align:center;align-items:center;margin-top:-1px;margin-right:1px;}
  45. .app__header__buttons .header__button{margin-right:1px;position:relative;width:22px;height:22px;border:1px solid rgb(255, 255, 255);border-radius:3px;}
  46. .app__header__buttons .header__button:hover{filter:brightness(120%);}
  47. .app__header__buttons .header__button:hover:active{filter:brightness(90%);}
  48. .app__header__buttons .header__button--minimize{box-shadow:rgb(70, 70, 255) 0px -1px 2px 1px inset;background-image:radial-gradient(circle at 90% 90%, rgb(0, 84, 233) 0%, rgb(34, 99, 213) 55%, rgb(68, 121, 228) 70%, rgb(163, 187, 236) 90%, white 100%);}
  49. .app__header__buttons .header__button--minimize::before{content:"";position:absolute;left:4px;top:13px;height:3px;width:8px;background-color:white;}
  50. .app__header__buttons .header__button--maximize{box-shadow:rgb(70, 70, 255) 0px -1px 2px 1px inset;background-image:radial-gradient(circle at 90% 90%, rgb(0, 84, 233) 0%, rgb(34, 99, 213) 55%, rgb(68, 121, 228) 70%, rgb(163, 187, 236) 90%, white 100%);}
  51. .app__header__buttons .header__button--maximize::before{content:"";position:absolute;display:block;left:4px;top:4px;box-shadow:white 0px 3px inset, white 0px 0px 0px 1px inset;height:12px;width:12px;}
  52. .app__header__buttons .header__button--close{box-shadow:rgb(218, 70, 0) 0px -1px 2px 1px inset;background-image:radial-gradient(circle at 90% 90%, rgb(204, 70, 0) 0%, rgb(220, 101, 39) 55%, rgb(205, 117, 70) 70%, rgb(255, 204, 178) 90%, white 100%);}
  53. .app__header__buttons .header__button--close::before{content:"";position:absolute;left:9px;top:2px;transform:rotate(45deg);height:16px;width:2px;background-color:white;}
  54. .app__header__buttons .header__button--close::after{content:"";position:absolute;left:9px;top:2px;transform:rotate(-45deg);height:16px;width:2px;background-color:white;}
  55. .app__header__buttons .header__button--disable{outline:none;opacity:0.5;}
  56. .app__header__buttons .header__button--disable:hover{filter:brightness(100%);}
  57. .xp_form{display:flex;position:absolute;padding:3px;background-color:rgb(8, 49, 217);flex-direction:column;border-top-left-radius:8px;border-top-right-radius:8px;}
  58. .xp_form .header__bg{background:linear-gradient(rgb(0, 88, 238) 0%, rgb(53, 147, 255) 4%, rgb(40, 142, 255) 6%, rgb(18, 125, 255) 8%, rgb(3, 111, 252) 10%, rgb(2, 98, 238) 14%, rgb(0, 87, 229) 20%, rgb(0, 84, 227) 24%, rgb(0, 85, 235) 56%, rgb(0, 91, 245) 66%, rgb(2, 106, 254) 76%, rgb(0, 98, 239) 86%, rgb(0, 82, 214) 92%, rgb(0, 64, 171) 94%, rgb(0, 48, 146) 100%);position:absolute;left:0px;top:0px;right:0px;height:28px;pointer-events:none;border-top-left-radius:8px;border-top-right-radius:8px;overflow:hidden;}
  59. .xp_form .header__bg::before{content:"";display:block;position:absolute;left:0px;opacity:1;background:linear-gradient(to right, rgb(22, 56, 230) 0%, transparent 100%);top:0px;bottom:0px;width:15px;}
  60. .xp_form .header__bg::after{content:"";opacity:1;display:block;position:absolute;right:0px;background:linear-gradient(to left, rgb(22, 56, 230) 0%, transparent 100%);top:0px;bottom:0px;width:15px;}
  61. .xp_form .app__header{user-select:none;display:flex;height:25px;line-height:25px;font-weight:700;font-size:12px;font-family:"宋体";text-shadow:#2f2f2f 1px 1px;color:white;position:absolute;left:3px;right:3px;-webkit-box-align:center;align-items:center;}
  62. .xp_form .app__header__icon{width:15px;height:15px;margin-left:1px;margin-right:3px;}
  63. .xp_form .app__header__title{flex:1 1 0%;pointer-events:none;padding-right:5px;letter-spacing:0.5px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;}
  64. .xp_form .app__content{flex:1 1 0%;position:relative;margin-top:25px;height:calc(100% - 25px);}
  65. .qq-repeat-x {
  66.     repeat: repeat-x;
  67. }
  68. .qq-no-repeat {
  69.     repeat: no-repeat;
  70. }
  71. .qq-flex-bg {
  72.     position: absolute;
  73.     width: 100%;
  74.     height: 100%;
  75.     display: flex;
  76. }
  77. .qq-single-line {
  78.     white-space: nowrap;
  79.     overflow: hidden;
  80. }
  81. .qq-btn {
  82.     font-size: 12px;
  83.     background: linear-gradient(to bottom, #ffffff, #9FD4FF);
  84.     border: 1px solid #00558E;
  85.     border-radius: 3px;
  86.     cursor: pointer;
  87. }
  88. .qq-btn:hover {
  89.     background: linear-gradient(to bottom, #ffffff, #B9E1FF);
  90. }
  91. .qq-btn:active {
  92.     background: linear-gradient(to bottom, #97C5EC, #D2F8FD);
  93. }
  94. .qq-panel {
  95.     width: 160px;
  96.     height: auto;
  97.     font-size: 12px;
  98.     font-family: 宋体;
  99.     position: relative;
  100.     border-radius: 8px;
  101.     overflow: hidden;
  102.     user-select: none;
  103.      
  104.     width: 190px;
  105.     height: 580px;
  106.     display: flex;
  107.     flex-direction: column;
  108. }
  109. .qq-title {
  110.     width: 100%;
  111.     height: 24px;
  112.     display: flex;
  113.     position: relative;
  114. }
  115. .qq-title-left {
  116.     background-image: url('img/BackgroundTitleLeft.png');
  117.     background-repeat: no-repeat;
  118.     width: 64px;
  119. }
  120. .qq-title-center {
  121.     flex: 1;
  122.     background-image: url('img/BackgroundTitleCenter.png');
  123. }
  124. .qq-title-right {
  125.     background-image: url('img/BackgroundTitleRight.png');
  126.     background-repeat: no-repeat;
  127.     width: 14px;
  128. }
  129. .qq-title-btns {
  130.     display: flex;
  131.     gap: 1px;
  132.     position: absolute;
  133.     right: 5px;
  134.     top: 5px;
  135. }
  136. .qq-title-btns > button {
  137.     width: 16px;
  138.     height: 16px;
  139. }
  140. #qq-min {
  141.     background-image: url('img/MinButton_Normal.png');
  142. }
  143. #qq-min:hover {
  144.     background-image: url('img/MinButton_Hover.png');
  145. }
  146. #qq-min:active {
  147.     background-image: url('img/MinButton_Down.png');
  148. }
  149. #qq-color {
  150.     background-image: url('img/ColorButton_Normal.png');
  151. }
  152. #qq-color:hover {
  153.     background-image: url('img/ColorButton_Hover.png');
  154. }
  155. #qq-color:active {
  156.     background-image: url('img/ColorButton_Down.png');
  157. }
  158. #qq-close {
  159.     background-image: url('img/CloseButton_Normal.png');
  160. }
  161. #qq-close:hover {
  162.     background-image: url('img/CloseButton_Hover.png');
  163. }
  164. #qq-close:active {
  165.     background-image: url('img/CloseButton_Down.png');
  166. }
  167. .qq-head {
  168.     width: 100%;
  169.     height: 44px;
  170.     position: relative;
  171.     overflow: hidden;
  172. }
  173. .qq-head-left {
  174.     background-image: url('img/BackgroundTitleLeft2.png');
  175.     width: 64px;
  176. }
  177. .qq-head-center {
  178.     background-image: url('img/BackgroundTitleCenter2.png');
  179.     flex: 1;
  180. }
  181. .qq-head-right {
  182.     background-image: url('img/BackgroundTitleRight2.png');
  183.     width: 14px;
  184. }
  185. #qq-status-pic {
  186.     position: absolute;
  187.     width: 32px;
  188.     height: 32px;
  189.     left: 8px;
  190.     top: 6px;
  191.     cursor: pointer;
  192.     background-image: url('img/avatar/50.png');
  193.     background-size: cover;
  194. }
  195. #qq-status-btn {
  196.     position: absolute;
  197.     width: 11px;
  198.     height: 36px;
  199.     left: 41px;
  200.     top: 4px;
  201.     background-image: url('img/StatusButton_Normal.png');
  202. }
  203. #qq-status-btn:hover {
  204.     background-image: url('img/StatusButton_Hover.png');
  205. }
  206. #qq-status-btn:active {
  207.     background-image: url('img/StatusButton_Down.png');
  208. }
  209. #qq-num {
  210.     position: absolute;
  211.     left: 54px;
  212.     top: 9px;
  213.     width: 109px;
  214.     height: 13px;
  215.     font-family: "MS Sans Serif";
  216.     font-size: 8pt;
  217.     font-weight: 700;
  218.     color: #071E81;
  219. }
  220. #qq-num:hover {
  221.     color: #000000;
  222. }
  223. .qq-head-btns {
  224.     position: absolute;
  225.     left: 54px;
  226.     top: 24px;
  227.     display: flex;
  228.     gap: 6px;
  229. }
  230. .qq-head-btns button {
  231.     height: 16px;
  232. }
  233. .qq-head-btns button > img {
  234.     vertical-align: middle;
  235. }
  236. .qq-head-btns button > label {
  237.     color: #071E81;
  238.     font-family: "MS Sans Serif";
  239.     font-size: 8pt;
  240.     font-weight: 400;
  241.     cursor: pointer;
  242.     height: 16px;
  243.     padding-left: 2px;
  244. }
  245. .qq-head-btns button:hover > label {
  246.     color: #FFFFFF;
  247. }
  248. .qq-body {
  249.     flex: 1;
  250.     position: relative;
  251. }
  252. .qq-body-left {
  253.     background-image: url('img/BackgroundL.png');
  254.     width: 11px;
  255. }
  256. .qq-body-center {
  257.     background-image: url('img/BackgroundC.png');
  258.     flex: 1;
  259. }
  260. .qq-body-right {
  261.     background-image: url('img/BackgroundR.png');
  262.     width: 8px;
  263. }
  264. .qq-panel-bar {
  265.     position: absolute;
  266.     left: 3px;
  267.     top: 4px;
  268.     width: 29px;
  269.     height: 100%;
  270.     display: flex;
  271.     flex-direction: column;
  272. }
  273. .qq-panel-bar button {
  274.     background: url('img/panel-bar/barback2_normal.png');
  275.     height: 37px;
  276.     width: 27px;
  277.     margin-top: -4px;
  278. }
  279. .qq-panel-bar button:hover {
  280.     background: url('img/panel-bar/barback2_over.png');
  281. }
  282. .qq-panel-bar button > img {
  283.     vertical-align: super;
  284.     width: 22px;
  285.     height: 22px;
  286. }
  287. .qq-panel-bar button.active {
  288.     background: url('img/panel-bar/barback_disabled.png');
  289.     z-index: 1;
  290. }
  291. /* 好友列表 */
  292. .qq-friend-box {
  293.     position: absolute;
  294.     left: 29px;
  295.     right: 4px;
  296.     height: 100%;
  297.     background: #fff;
  298.     border: 1px solid #2367c3;
  299.     border-radius: 2px;
  300.     overflow: hidden;
  301.     padding: 1px;
  302.     display: flex;
  303.     gap: 1px;
  304.     flex-direction: column;
  305. }
  306. .qq-friend-box > button {
  307.     text-align: center;
  308.     font-size: 12px;
  309.     width: 100%;
  310.     color: #183c94;
  311.     padding: 1px 0;
  312. }
  313. .qq-friend-list {
  314.     flex: 1;
  315.     overflow-y: auto;
  316. }
  317. .qq-friend-group {
  318.     background-image: url('img/group_close.png');
  319.     background-repeat: no-repeat;
  320.     background-position: 2px 4px;
  321.     padding: 5px 0 5px 20px;
  322.     color: #101c4a;
  323.     cursor: pointer;
  324.     overflow: hidden;
  325.     white-space: nowrap;
  326. }
  327. .qq-friend-group.on {
  328.     background-image: url('img/group_open.png');
  329. }
  330. .qq-friend-item {
  331.     display: flex;
  332.     padding: 4px 0 4px 4px;
  333.     cursor: pointer;
  334. }
  335. .qq-friend-avatar {
  336.     width: 40px;
  337.     height: 40px;
  338. }
  339. .qq-friend-info {
  340.     padding: 0 0 0 5px;
  341.     overflow: hidden;
  342.     white-space: nowrap;
  343. }
  344. .qq-friend-name {
  345.     color: #000400;
  346. }
  347. .qq-friend-item.qq-vip .qq-friend-name {
  348.     color: #f00;
  349. }
  350. .qq-friend-item.qq-vip .qq-friend-motto {
  351.     color: #ff7d7b;
  352. }
  353. .qq-friend-item.qq-offline {
  354.     filter: grayscale(100%);
  355. }
  356. .qq-friend-item.qq-offline .qq-friend-name,
  357. .qq-friend-item.qq-offline .qq-friend-motto {
  358.     color: #a8a8a8;
  359. }
  360. .qq-friend-icons {
  361.     display: flex;
  362.     gap: 3px;
  363. }
  364. .qq-friend-icons div {
  365.     width: 15px;
  366.     height: 15px;
  367.     background-size: contain;
  368.     background-repeat: no-repeat;
  369. }
  370. .qq-icon-music {
  371.     background-image: url('img/mms-bar/MMSBar_MediaRing.png');
  372. }
  373. .qq-icon-ring {
  374.     background-image: url('img/mms-bar/MMSBar_PhoneRing.png');
  375. }
  376. .qq-icon-mobile {
  377.     background-image: url('img/mms-bar/MMSBar_MobileQQ.png');
  378. }
  379. /* 底部的工具栏 */
  380. .qq-toolbar {
  381.     height: 62px;
  382.     position: relative;
  383. }
  384. .qq-toolbar-left {
  385.     background-image: url('img/ToolBarBackgroundL.png');
  386.     width: 15px;
  387. }
  388. .qq-toolbar-center {
  389.     background-image: url('img/ToolBarBackgroundC.png');
  390.     flex: 1;
  391. }
  392. .qq-toolbar-right {
  393.     background-image: url('img/ToolBarBackgroundR.png');
  394.     width: 15px;
  395. }
  396. .qq-toolbar-btns {
  397.     position: absolute;
  398.     display: flex;
  399.     overflow: hidden;
  400.     gap: 8px;
  401.     height: auto;
  402.     left: 10px;
  403.     right: 10px;
  404.     top: 12px;
  405. }
  406. .qq-toolbar-btns > button {
  407.     width: 16px;
  408.     height: 16px;
  409.     background-size: cover;
  410.     flex-shrink: 0;
  411. }
  412. #qq-MenuButton {
  413.     position: absolute;
  414.     left: 0px;
  415.     top: 32px;
  416.     width: 65px;
  417.     height: 24px;
  418.     display: block;
  419.     background-image: url('img/MenuButton_Normal.png');
  420.     background-size: cover;
  421.     cursor: pointer;
  422. }
  423. #qq-MenuButton:hover {
  424.     background-image: url('img/MenuButton_Hover.png');
  425. }
  426. #qq-MenuButton:active {
  427.     background-image: url('img/MenuButton_Down.png');
  428. }
  429. .qq-toolbar-2 {
  430.     top: 37px;
  431.     left: 74px;
  432. }
  433. #qq-SearchButton {
  434.     width: 47px;
  435.     background-image: url('img/SearchButton.png');
  436.     background-size: auto 100%;
  437.     padding-left: 18px;
  438.     color: #fff;
  439.     font-family: 'MS Sans Serif';
  440.     font-weight: 400;
  441.     font-size: 8pt;
  442. }
  443. #qq-SearchButton:hover {
  444.     color: #000;
  445. }
  446. /* QQ 登陆界面 */
  447. .qq-login {
  448.     width: 325px;
  449.     background-color: #ECF6FF;
  450.     user-select: none;
  451.     padding: 0;
  452. }
  453. .qq-login-banner {
  454.     text-align: center;
  455.     height: 47px;
  456.     background-image: url('img/login_banner.png');
  457.     background-size: 100%;
  458.     background-position: top;
  459. }
  460. .qq-login-form {
  461.     background: linear-gradient(to bottom, #E4F3FF, #F0F8FF, #F0F8FF, #F0F8FF, #E4F3FF);
  462.     border: 1px solid #2F74C5;
  463.     padding: 18px;
  464.     margin: 6px;
  465. }
  466. .qq-login-form-row {
  467.     margin-bottom: 18px;
  468.     display: flex;
  469.     align-items: left;
  470.     position: relative;
  471. }
  472. .qq-login-form-row label {
  473.     width: 55px;
  474.     text-align: left;
  475.     margin-right: 7px;
  476. }
  477. .qq-login-form-row input {
  478.     width: 150px;
  479.     height: 18px;
  480.     border: 1px solid #7F9DB9;
  481.     padding: 0 2px;
  482. }
  483. .qq-login-form-row input[type="checkbox"] {
  484.     width: auto;
  485.     height: auto;
  486.     margin-right: 5px;
  487. }
  488. #qq-login-method {
  489.     position: absolute;
  490.     left: 46px;
  491.     top: 4px;
  492. }
  493. #qq-login-num {
  494.     height: 20px;
  495. }
  496. #qq-login-num-select {
  497.     position: absolute;
  498.     width: 17px;
  499.     height: 18px;
  500.     left: 189px;
  501.     top: 1px;
  502.     background: url('img/dropdown.png');
  503. }
  504. #qq-login-num-select:hover {
  505.     background-image: url('img/dropdown_hover.png');
  506. }
  507. #qq-login-num-select:active {
  508.     background-image: url('img/dropdown_active.png');
  509. }
  510. #qq-login-reg, #qq-login-forget {
  511.     width: 60px;
  512.     margin: 0 0 0 10px;
  513. }
  514. #qq-login-forget {
  515.     text-decoration: none;
  516.     white-space: nowrap;
  517.     overflow: hidden;
  518. }
  519. .qq-login-check {
  520.     margin-bottom: 0;
  521. }
  522. .qq-login-check label {
  523.     width: auto;
  524.     text-align: left;
  525. }
  526. .qq-login-buttons {
  527.     display: flex;
  528.     padding: 8px 8px 10px;
  529. }
  530. .qq-login-buttons button {
  531.     height: 20px;
  532.     width: 75px;
  533.     margin: 0 5px;
  534. }
  535. .qq-login-buttons span {
  536.     flex: 1;
  537. }
  538. /* 登陆中 */
  539. .qq-logging {
  540.     width: 190px;
  541.     height: 580px;
  542.     display: flex;
  543.     flex-direction: column;
  544.     border-radius: 8px;
  545.     overflow: hidden;
  546.     user-select: none;
  547. }
  548. .qq-logging .qq-title {
  549.     height: 190px;
  550. }
  551. .qq-logging .qq-title-left {
  552.     background-image: url('img/logging/BITMAP1741_1.png');
  553.     width: 64px;
  554. }
  555. .qq-logging .qq-title-center {
  556.     background-image: url('img/logging/BITMAP1734_1.png');
  557. }
  558. .qq-logging .qq-title-right {
  559.     background-image: url('img/logging/BITMAP1735_1.png');
  560.     width: 12px;
  561. }
  562. .qq-logging .qq-title-btns {
  563.     gap: 0;
  564. }
  565. .qq-logging .qq-flex-bg {
  566.     position: relative;
  567. }
  568. .qq-logging-body {
  569.     flex: 1;
  570. }
  571. .qq-logging .qq-body-left {
  572.     background-image: url('img/logging/BITMAP1736_1.png');
  573.     width: 15px;
  574. }
  575. .qq-logging .qq-body-center {
  576.     background-image: url('img/logging/BITMAP1737_1.png');
  577.     width: 15px;
  578. }
  579. .qq-logging .qq-body-right {
  580.     background-image: url('img/logging/BITMAP1738_1.png');
  581.     width: 15px;
  582. }
  583. .qq-logging .qq-bottom-left {
  584.     background-image: url('img/logging/BITMAP1739_1.png');
  585.     width: 15px;
  586. }
  587. .qq-logging .qq-bottom-center {
  588.     background-image: url('img/logging/BITMAP1740_1.png');
  589.     flex: 1;
  590. }
  591. .qq-logging .qq-bottom-right {
  592.     background-image: url('img/logging/BITMAP1733_1.png');
  593.     width: 15px;
  594. }
  595. .qq-logging-bottom {
  596.     height: 184px;
  597.     overflow: hidden;
  598. }
  599. #qq-logging-main {
  600.     display: flex;
  601.     flex-direction: column;
  602.     align-items: center;
  603.     justify-content: center;
  604.     position: absolute;
  605.     left: 0;
  606.     right: 0;
  607.     top: 24px;
  608.     bottom: 24px;
  609. }
  610. #qq-logging-main p {
  611.     margin: 2px 0 12px;
  612. }
  613. #qq-logging-cancel {
  614.     width: 90px;
  615.     height: 26px;
  616.     border: none;
  617.     outline: none;
  618.     background-image: url('img/logging/BITMAP1742_1.png');
  619. }
  620. #qq-logging-cancel:hover {
  621.     background-image: url('img/logging/BITMAP1744_1.png');
  622. }
  623. #qq-logging-cancel:active {
  624.     background-image: url('img/logging/BITMAP1743_1.png');
  625. }
  626. .qq-im {
  627.     background: #5db7ff;
  628.     width: 500px;
  629.     height: 460px;
  630.     border-radius: 8px;
  631.     overflow: hidden;
  632. }
  633. .qq-im .qq-title-btns {
  634.     gap: 0;
  635. }
  636. .qq-im .qq-title-btns > button {
  637.     width: 17px;
  638.     height: 16px;
  639. }
  640. #qq-im-min {
  641.     background-image: url('img/im/IMMinButton_Normal.png');
  642. }
  643. #qq-im-min:hover {
  644.     background-image: url('img/im/IMMinButton_Hover.png');
  645. }
  646. #qq-im-min:active {
  647.     background-image: url('img/im/IMMinButton_Down.png');
  648. }
  649. #qq-im-max {
  650.     background-image: url('img/im/IMMaxButton_Normal.png');
  651. }
  652. #qq-im-max:hover {
  653.     background-image: url('img/im/IMMaxButton_Hover.png');
  654. }
  655. #qq-im-max:active {
  656.     background-image: url('img/im/IMMaxButton_Down.png');
  657. }
  658. #qq-im-close {
  659.     background-image: url('img/im/IMCloseButton_Normal.png');
  660. }
  661. #qq-im-close:hover {
  662.     background-image: url('img/im/IMCloseButton_Hover.png');
  663. }
  664. #qq-im-close:active {
  665.     background-image: url('img/im/IMCloseButton_Down.png');
  666. }
  667. .qq-title-icon, .qq-title-text {
  668.     position: absolute;
  669.     color: #fff;
  670.     font-weight: bold;
  671.     cursor: default;
  672. }
  673. .qq-title-icon {
  674.     background-image: url('img/im/icon.png');
  675.     width: 16px;
  676.     height: 16px;
  677.     left: 5px;
  678.     top: 5px;
  679. }
  680. .qq-title-text {
  681.     left: 22px;
  682.     top: 6px;
  683. }
  684. .qq-skin,
  685. .qq-contant {
  686.     position: absolute;
  687.     left: 0;
  688.     top: 0;
  689.     width: 100%;
  690.     height: 100%;
  691.     display: flex;
  692.     flex-direction: column;
  693. }
  694. .qq-skin > div {
  695.     display: flex;
  696. }
  697. .qq-skin .qq-title-bg {
  698.     height: 26px;
  699. }
  700. .qq-skin .qq-body-bg {
  701.     flex: 1;
  702. }
  703. .qq-im .qq-title-left {
  704.     background-image: url('img/im/IMBorderTop.png');
  705.     width: 25px;
  706. }
  707. .qq-im .qq-title-center {
  708.     background-image: url('img/im/IMBorderTop.png');
  709.     background-size: 10000px 26px;
  710.     background-position: top;
  711. }
  712. .qq-im .qq-bottom-left,
  713. .qq-im .qq-bottom-center,
  714. .qq-im .qq-bottom-right {
  715.     background-image: url('img/im/IMBorderBottom.png');
  716.     height: 8px;
  717. }
  718. .qq-im .qq-bottom-left {
  719.     width: 10px;
  720. }
  721. .qq-im .qq-bottom-center {
  722.     background-size: 10000px 8px;
  723.     background-position: top;
  724.     flex: 1;
  725. }
  726. .qq-im .qq-bottom-right {
  727.     width: 10px;
  728.     background-position: right;
  729. }
  730. .qq-im-big-toolbar {
  731.     margin: 0 4px;
  732.     padding-left: 6px;
  733.     height: 36px;
  734.     background-image: url('img/im/IMBigToolBarBackground.png');
  735.     display: flex;
  736. }
  737. .qq-im-big-toolbar button {
  738.     color: rgb(7,30,129);
  739.     font-weight: bold;
  740.     background-repeat: no-repeat;
  741.     background-position: center left;
  742.     background-position-x: 2px;
  743.     padding: 0 8px 0 28px;
  744.     border: 1px solid transparent;
  745. }
  746. .qq-im-big-toolbar button:hover {
  747.     border-color: rgb(70,136,201);
  748.     background-color: rgb(130,199,255);
  749. }
  750. .qq-im-big-toolbar button:active {
  751.     border-color: rgb(40,99,157);
  752.     background-color: rgb(83,168,245);
  753. }
  754. #qq-im-msg {
  755.     background-image: url('img/im/IMBigToolbarMQQ.png');
  756. }
  757. #qq-im-video {
  758.     background-image: url('img/im/IMBigToolbarVideo.png');
  759. }
  760. #qq-im-audio {
  761.     background-image: url('img/im/IMBigToolbarQQSQQ.png');
  762. }
  763. #qq-im-file {
  764.     background-image: url('img/im/IMBigToolbarSendFile.png');
  765. }
  766. #qq-im-3d {
  767.     background-image: url('img/im/IMBigToolbar3DShow.png');
  768. }
  769. #qq-im-invite {
  770.     background-image: url('img/im/IMBigToolbarInvite.png');
  771. }
  772. .qq-im-contant {
  773.     display: flex;
  774.     flex: 1;
  775.     gap: 4px;
  776.     padding: 0 8px 8px;
  777.     overflow: hidden;
  778.     min-height: 0;
  779. }
  780. .qq-im-main {
  781.     display: flex;
  782.     flex-direction: column;
  783.     flex: 1;
  784.     gap: 6px;
  785.     min-height: 0;
  786. }
  787. .qq-im-side, .qq-im-chat {
  788.     display: flex;
  789.     flex-direction: column;
  790.     border: 1px solid rgb(53,111,175);
  791.     width: 140px;
  792.     height: 100%;
  793.     overflow: hidden;
  794. }
  795. /* 聊天框聊天区域 */
  796. .qq-im-chat {
  797.     width: 100%;
  798.     border-radius: 4px;
  799.     background-color: #fff;
  800.     overflow: hidden;
  801.     min-height: 0;
  802. }
  803. .qq-im-chat-msg {
  804.     flex: 1;
  805.     display: flex;
  806.     flex-direction: column;
  807.     min-height: 0;
  808. }
  809. .qq-im-friend-info {
  810.     background: linear-gradient(to bottom, #ffffff, #b6d5f5);
  811.     border-bottom: 1px solid #84a6c6;
  812.     padding: 1px 2px;
  813.     color: rgb(7,30,129);
  814.     cursor: pointer;
  815. }
  816. .qq-im-friend-info:hover {
  817.     color: rgb(99,119,190);
  818. }
  819. .qq-im-friend-info img {
  820.     width: 20px;
  821.     height: 20px;
  822.     margin-right: 5px;
  823.     vertical-align: sub;
  824.     float: left;
  825. }
  826. .qq-im-chat-msg-list {
  827.     flex: 1;
  828.     overflow-y: auto;
  829.     overflow-x: hidden;
  830.     padding: 5px;
  831.     min-height: 0;
  832.     max-height: 100%;
  833. }
  834. .qq-im-chat-msg-list li p {
  835.     color: #000;
  836.     padding-left: 15px;
  837.     line-height: 1.4;
  838. }
  839. .qq-im-chat-msg-list li p:first-of-type {
  840.     color: #210f95;
  841.     padding-left: 0;
  842. }
  843. .qq-im-chat-msg-list li.my p:first-of-type {
  844.     color: #2d794b;
  845. }
  846. .qq-im-chat-msg-list li p:first-of-type span {
  847.     font-size: 12px;
  848.     padding-left: 8px;
  849. }
  850. .qq-im-chat-toolbar {
  851.     display: flex;
  852.     align-items: center;
  853.     gap: 4px;
  854.     height: 20px;
  855.     padding-left: 4px;
  856.     background: url('img/im/IMSmallToolbarBackground.png');
  857.     background-size: 10000px 100%;
  858.     background-position: center;
  859. }
  860. .qq-im-chat-toolbar button {
  861.     width: 18px;
  862.     height: 18px;
  863.     border: 1px solid transparent;
  864.     background-image: url('img/im/IMSmallToolbarFace.png');
  865. }
  866. .qq-im-chat-toolbar button:hover {
  867.     border-color: rgb(135,164,197);
  868.     background-color: rgb(183,214,245);
  869. }
  870. .qq-im-chat-toolbar button:active {
  871.     border-color: rgb(109,146,186);
  872.     background-color: rgb(170,200,230);
  873. }
  874. .qq-im-chat-toolbar .im-toolbar-font {
  875.     background-image: url('img/im/IMSmallToolbarFont.png');
  876. }
  877. .qq-im-chat-toolbar .im-toolbar-face {
  878.     background-image: url('img/im/IMSmallToolbarFace.png');
  879. }
  880. .qq-im-chat-toolbar .im-toolbar-other {
  881.     background-image: url('img/im/IMSmallToolbarOtherContent.png');
  882. }
  883. .qq-im-chat-toolbar .im-toolbar-picture {
  884.     background-image: url('img/im/IMSmallToolbarPicture.png');
  885. }
  886. .qq-im-chat-toolbar .im-toolbar-catch {
  887.     background-image: url('img/im/IMSmallToolbarCatch.png');
  888. }
  889. .qq-im-chat-toolbar .im-toolbar-scene {
  890.     background-image: url('img/im/IMSmallToolbarScene.png');
  891. }
  892. .qq-im-chat-toolbar .im-toolbar-bag {
  893.     background-image: url('img/im/IMSmallToolbarSuperbag.png');
  894. }
  895. .qq-im-chat-toolbar .im-toolbar-ptt {
  896.     background-image: url('img/im/IMSmallToolbarPtt.png');
  897. }
  898. .qq-im-chat-toolbar span {
  899.     background: rgb(114,149,188);
  900.     width: 1px;
  901.     height: 80%;
  902. }
  903. .qq-im-chat-send {
  904.     height: 70px;
  905.     padding: 4px;
  906.     border: none;
  907.     outline: none;
  908.     resize: none;
  909. }
  910. .qq-im-btns {
  911.     display: flex;
  912.     height: 20px;
  913.     gap: 5px;
  914. }
  915. .qq-im-btns span {
  916.     flex: 1;
  917. }
  918. .qq-im-btns .qq-btn {
  919.     padding: 0 2px;
  920. }
  921. /* 聊天框右侧栏 */
  922. .qq-im-side-btn {
  923.     position: relative;
  924.     height: 20px;
  925.     width: 100%;
  926.     z-index: 2;
  927.     text-align: left;
  928.     padding-left: 20px;
  929.     background-image: url('img/im/IMSidebarButtonExpand_Normal.png');
  930.     background-size: 1000px 100%;
  931. }
  932. .qq-im-side-btn::before,
  933. .qq-im-side-btn::after {
  934.     position: absolute;
  935.     content: '';
  936.     height: 100%;
  937.     top: 0;
  938.     z-index: -1;
  939. }
  940. .qq-im-side-btn::before {
  941.     background-image: url('img/im/IMSidebarButton_Normal.png');
  942.     width: 50px;
  943.     left: 0;
  944. }
  945. .qq-im-side-btn::after {
  946.     background-image: url('img/im/IMSidebarMenu_Normal.png');
  947.     width: 33px;
  948.     right: 0;
  949. }
  950. .qq-im-side-btn:hover::before {
  951.     background-image: url('img/im/IMSidebarButton_Hover.png');
  952. }
  953. .qq-im-side-btn:hover::after {
  954.     background-image: url('img/im/IMSidebarMenu_Hover.png');
  955. }
  956. .qq-im-show {
  957.     height: 100%;
  958.     background-size: cover;
  959.     background-position: 50%;
  960. }
  961. .qq-im-zone {
  962.     background: #f6f6f6;
  963.     color: #0f0657;
  964. }
  965. .qq-im-zone div {
  966.     line-height: 1.4;
  967.     padding: 0 2px;
  968. }
  969. .qq-im-zone span {
  970.     color: red;
  971. }
  972. </style>
  973. </head>
  974. <body>
  975. <div class="qq-im drag-parent" style="left: 40%; top: 20%; z-index: 9999">
  976.     <div class="qq-skin">
  977.         <div class="qq-title-bg">
  978.             <div class="qq-title-left"></div>
  979.             <div class="qq-title-center"></div>
  980.             <div class="qq-title-right"></div>
  981.         </div>
  982.         <div class="qq-body-bg">
  983.             <div class="qq-body-left"></div>
  984.             <div class="qq-body-center"></div>
  985.             <div class="qq-body-right"></div>
  986.         </div>
  987.         <div class="qq-bottom-bg">
  988.             <div class="qq-bottom-left"></div>
  989.             <div class="qq-bottom-center"></div>
  990.             <div class="qq-bottom-right"></div>
  991.         </div>
  992.     </div>
  993.     <div class="qq-contant">
  994.         <div class="qq-title drag-handle">
  995.             <div class="qq-title-icon"></div>
  996.             <div class="qq-title-text">与 メ乖乖女ソ 聊天中</div>
  997.             <div class="qq-title-btns">
  998.                 <button id="qq-im-min" title="隐藏"></button>
  999.                 <button id="qq-im-max" title="最大化"></button>
  1000.                 <button id="qq-im-close" title="关闭"></button>
  1001.             </div>
  1002.         </div>
  1003.         <div class="qq-im-big-toolbar">
  1004.             <button id="qq-im-msg">短信</button>
  1005.             <button id="qq-im-video">视频</button>
  1006.             <button id="qq-im-audio">语音</button>
  1007.             <button id="qq-im-file">传文件</button>
  1008.             <button id="qq-im-3d">3D秀</button>
  1009.             <button id="qq-im-invite">邀请</button>
  1010.         </div>
  1011.          
  1012.         <div class="qq-im-contant">
  1013.             <div class="qq-im-main">
  1014.                 <div class="qq-im-chat">
  1015.                     <!-- 聊天内容 -->
  1016.                     <div class="qq-im-chat-msg">
  1017.                         <div class="qq-im-friend-info">
  1018.                             <img src="img/avatar/97.png">
  1019.                             <p>メ乖乖女ソ(3453674):为了躲开所有结局的可能,你连开始都直接按了暂停键</p>
  1020.                         </div>
  1021.                         <ul class="qq-im-chat-msg-list">
  1022.                             <li class="my">
  1023.                                 <p>痴情梦丶<span>20:37:01</span></p>
  1024.                                 <p>在吗?</p>
  1025.                             </li>
  1026.                             <li>
  1027.                                 <p>メ乖乖女ソ<span>20:37:08</span></p>
  1028.                                 <p>原来你也在网上冲浪啊~</p>
  1029.                             </li>
  1030.                         </ul>
  1031.                     </div>
  1032.                     <!-- 聊天工具栏 -->
  1033.                     <div class="qq-im-chat-toolbar">
  1034.                         <button class="im-toolbar-font"></button>
  1035.                         <button class="im-toolbar-face"></button>
  1036.                         <button class="im-toolbar-other"></button>
  1037.                         <span></span>
  1038.                         <button class="im-toolbar-picture"></button>
  1039.                         <button class="im-toolbar-catch"></button>
  1040.                         <button class="im-toolbar-scene"></button>
  1041.                         <button class="im-toolbar-bag"></button>
  1042.                         <button class="im-toolbar-ptt"></button>
  1043.                     </div>
  1044.                     <!-- 聊天发送框 -->
  1045.                     <textarea class="qq-im-chat-send"></textarea>
  1046.                 </div>
  1047.                 <div class="qq-im-btns">
  1048.                     <button class="qq-btn">聊天记录(H)</button>
  1049.                     <button class="qq-btn">消息模式(T)</button>
  1050.                     <span></span>
  1051.                     <button class="qq-btn">关闭(C)</button>
  1052.                     <div style="display: flex; gap: 2px;">
  1053.                         <button class="qq-btn" id="btn-send-msg">发送(S)</button>
  1054.                         <button class="qq-btn" style="padding: 0;">↓</button>
  1055.                     </div>
  1056.                 </div>
  1057.             </div>
  1058.             <div class="qq-im-side">
  1059.                 <div style="flex: 1">
  1060.                     <button class="qq-im-side-btn">对方形象</button>
  1061.                     <div class="qq-im-show" style="background-image: url('img/im/show1.gif')"></div>
  1062.                 </div>
  1063.                 <div class="qq-im-zone qq-single-line">
  1064.                     <button class="qq-im-side-btn">个人空间</button>
  1065.                     <div>摘要:若无法为你撑起晴空,那我便陪你共沐风雨</div>
  1066.                     <div>日记:<span>48</span>条/<span>169</span>评论</div>
  1067.                     <div>相册:<span>12</span>张/<span>23</span>评论</div>
  1068.                     <div>收藏:<span>62</span>个</div>
  1069.                 </div>
  1070.                 <div style="flex: 1">
  1071.                     <button class="qq-im-side-btn">我的形象</button>
  1072.                     <div class="qq-im-show" style="background-image: url('img/im/show3.gif')"></div>
  1073.                 </div>
  1074.             </div>
  1075.         </div>
  1076.     </div>
  1077. </div>
  1078. <!-- QQ 主面板 -->
  1079. <div class="qq-panel drag-parent" style="left: 70%; top: 10%;">
  1080.     <!-- 标题栏 -->
  1081.     <div class="qq-title drag-handle">
  1082.         <div class="qq-title-left"></div>
  1083.         <div class="qq-title-center"></div>
  1084.         <div class="qq-title-right"></div>
  1085.         <div class="qq-title-btns">
  1086.             <button id="qq-min" title="隐藏"></button>
  1087.             <button id="qq-color" title="颜色改变"></button>
  1088.             <button id="qq-close" title="关闭"></button>
  1089.         </div>
  1090.     </div>
  1091.     <!-- 用户信息头部 -->
  1092.     <div class="qq-head">
  1093.         <div class="qq-flex-bg">
  1094.             <div class="qq-head-left"></div>
  1095.             <div class="qq-head-center"></div>
  1096.             <div class="qq-head-right"></div>
  1097.         </div>
  1098.         <div id="qq-status-pic" title="修改个人资料"></div>
  1099.         <button id="qq-status-btn" title="更改状态"></button>
  1100.         <label id="qq-num">痴情梦丶(在线)</label>
  1101.         <div class="qq-head-btns">
  1102.             <button id="qq-mail" title="收发邮件">
  1103.                 <img src="img/MailButton.png" /><label>(0)</label>
  1104.             </button>
  1105.             <button id="qq-security" title="安全中心">
  1106.                 <img src="img/security_normal.png" />
  1107.             </button>
  1108.             <button id="qq-payment" title="我的钱包">
  1109.                 <img src="img/payment.png" />
  1110.             </button>
  1111.         </div>
  1112.     </div>
  1113.     <!--主面板区域-->
  1114.     <div class="qq-body">
  1115.         <div class="qq-flex-bg">
  1116.             <div class="qq-body-left"></div>
  1117.             <div class="qq-body-center"></div>
  1118.             <div class="qq-body-right"></div>
  1119.         </div>
  1120.         <div class="qq-panel-bar">
  1121.             <button id="qq-FriendButton" title="QQ好友面板" class="active"><img src="img/panel-bar/FriendButton.png"/></button>
  1122.             <button id="qq-SBuddyButton" title="互动空间"><img src="img/panel-bar/SBuddyButton.png"/></button>
  1123.             <button id="qq-MobileButton" title="我的无线乐园"><img src="img/panel-bar/MobileButton.png"/></button>
  1124.             <button id="qq-RtxButton" title="企业好友面板"><img src="img/panel-bar/RtxButton.png"/></button>
  1125.             <button id="qq-ContentsButton" title="网络杂志面板"><img src="img/panel-bar/ContentsButton.png"/></button>
  1126.             <button id="qq-CustomButton" title="用户自定义面板"><img src="img/panel-bar/CustomButton.png"/></button>
  1127.             <button id="qq-EaseButton" title="音乐中心"><img src="img/panel-bar/EaseButton.png"/></button>
  1128.             <button id="qq-NetDiskButton" title="网络硬盘"><img src="img/panel-bar/NetDiskButton.png"/></button>
  1129.             <button id="qq-AllButton" title="综合业务面板"><img src="img/panel-bar/IntegratePanel.png"/></button>
  1130.             <button id="qq-PanelMngButton" title="面板管理器"><img src="img/panel-bar/BlankPanel.png"/></button>
  1131.         </div>
  1132.          
  1133.         <div class="qq-friend-box">
  1134.             <button class="qq-btn">QQ好友</button>
  1135.             <div class="qq-friend-list">
  1136.                 <div class="qq-friend-group">
  1137.                     我的好友(19/26)
  1138.                 </div>
  1139.                 <div class="qq-friend-group on">
  1140.                     家人(5/13)
  1141.                 </div>
  1142.                 <div class="qq-friend-item">
  1143.                     <img class="qq-friend-avatar" src="img/avatar/16.png"/>
  1144.                     <div class="qq-friend-info">
  1145.                         <p class="qq-friend-name">阿辉</p>
  1146.                         <p class="qq-friend-motto">人生沟坎多因能力不足,门槛高低全凭实力</p>
  1147.                         <div class="qq-friend-icons"></div>
  1148.                     </div>
  1149.                 </div>
  1150.                 <div class="qq-friend-item qq-vip">
  1151.                     <img class="qq-friend-avatar" src="img/avatar/22.png"/>
  1152.                     <div class="qq-friend-info">
  1153.                         <p class="qq-friend-name">哎哟喂</p>
  1154.                         <p class="qq-friend-motto">我爱吃红烧肉</p>
  1155.                         <div class="qq-friend-icons">
  1156.                             <div class="qq-icon-music"></div>
  1157.                             <div class="qq-icon-mobile"></div>
  1158.                         </div>
  1159.                     </div>
  1160.                 </div>
  1161.                 <div class="qq-friend-item">
  1162.                     <img class="qq-friend-avatar" src="img/avatar/5.png"/>
  1163.                     <div class="qq-friend-info">
  1164.                         <p class="qq-friend-name">小王子</p>
  1165.                         <p class="qq-friend-motto">我珍忄昔、祢鳪忄董,我放掱、你却拉住我。。</p>
  1166.                         <div class="qq-friend-icons">
  1167.                             <div class="qq-icon-music"></div>
  1168.                         </div>
  1169.                     </div>
  1170.                 </div>
  1171.                 <div class="qq-friend-item">
  1172.                     <img class="qq-friend-avatar" src="img/avatar/7.png"/>
  1173.                     <div class="qq-friend-info">
  1174.                         <p class="qq-friend-name">happy</p>
  1175.                         <p class="qq-friend-motto"> </p>
  1176.                         <div class="qq-friend-icons">
  1177.                             <div class="qq-icon-mobile"></div>
  1178.                         </div>
  1179.                     </div>
  1180.                 </div>
  1181.                 <div class="qq-friend-item">
  1182.                     <img class="qq-friend-avatar" src="img/avatar/9.png"/>
  1183.                     <div class="qq-friend-info">
  1184.                         <p class="qq-friend-name">木子</p>
  1185.                         <p class="qq-friend-motto">你也在网上冲浪啊</p>
  1186.                         <div class="qq-friend-icons">
  1187.                         </div>
  1188.                     </div>
  1189.                 </div>
  1190.                 <div class="qq-friend-item">
  1191.                     <img class="qq-friend-avatar" src="img/avatar/11.png"/>
  1192.                     <div class="qq-friend-info">
  1193.                         <p class="qq-friend-name">灰</p>
  1194.                         <p class="qq-friend-motto">有事请留言</p>
  1195.                         <div class="qq-friend-icons">
  1196.                             <div class="qq-icon-music"></div>
  1197.                             <div class="qq-icon-mobile"></div>
  1198.                         </div>
  1199.                     </div>
  1200.                 </div>
  1201.                 <div class="qq-friend-item qq-offline">
  1202.                     <img class="qq-friend-avatar" src="img/avatar/18.png"/>
  1203.                     <div class="qq-friend-info">
  1204.                         <p class="qq-friend-name">爱拼才会赢</p>
  1205.                         <p class="qq-friend-motto">我还年轻,所以我可以</p>
  1206.                         <div class="qq-friend-icons">
  1207.                         </div>
  1208.                     </div>
  1209.                 </div>
  1210.                 <div class="qq-friend-item qq-offline">
  1211.                     <img class="qq-friend-avatar" src="img/avatar/100.png"/>
  1212.                     <div class="qq-friend-info">
  1213.                         <p class="qq-friend-name">最深的记忆</p>
  1214.                         <p class="qq-friend-motto">把你留在心中</p>
  1215.                         <div class="qq-friend-icons">
  1216.                             <div class="qq-icon-mobile"></div>
  1217.                         </div>
  1218.                     </div>
  1219.                 </div>
  1220.                 <div class="qq-friend-group">
  1221.                     同学(28/37)
  1222.                 </div>
  1223.                 <div class="qq-friend-group">
  1224.                     陌生人
  1225.                 </div>
  1226.                 <div class="qq-friend-group">
  1227.                     黑名单
  1228.                 </div>
  1229.             </div>
  1230.             
  1231.             <button class="qq-btn">手机好友</button>
  1232.             <button class="qq-btn">群/校友录</button>
  1233.             <button class="qq-btn">最近联系人</button>
  1234.         </div>
  1235.     </div>
  1236.      
  1237.     <!--底部工具栏区域-->
  1238.     <div class="qq-toolbar">
  1239.         <div class="qq-flex-bg">
  1240.             <div class="qq-toolbar-left"></div>
  1241.             <div class="qq-toolbar-center"></div>
  1242.             <div class="qq-toolbar-right"></div>
  1243.         </div>
  1244.         <div class="qq-toolbar-btns">
  1245.             <button id="qq-MobileMsgButton" title="发送手机消息" style="background-image: url('img/MobileMsgButton.png')"></button>
  1246.             <button id="qq-GameButton" title="QQ游戏" style="background-image: url('img/GameButton.png')"></button>
  1247.             <button id="qq-TTButton" title="腾讯TT浏览器" style="background-image: url('img/TTButton.png')"></button>
  1248.             <button id="qq-ChatRoomButton" title="进入聊天室" style="background-image: url('img/ChatRoomButton.png')"></button>
  1249.             <button id="qq-QQHome" title="QQ空间" style="background-image: url('img/QQHome.png')"></button>
  1250.             <button id="qq-QQMusicButton" title="QQ音乐" style="background-image: url('img/QQMusicButton.png')"></button>
  1251.             <button id="qq-QQTVButton" title="网络电视(QQLive)" style="background-image: url('img/QQTVButton.png')"></button>
  1252.             <button id="qq-Pet" title="QQ宠物" style="background-image: url('img/OpenPet.png')"></button>
  1253.         </div>
  1254.         <div id="qq-MenuButton"></div>
  1255.         <div class="qq-toolbar-btns qq-toolbar-2">
  1256.             <button id="qq-MsgManagerButton" title="信息管理器" style="background-image: url('img/MsgManagerButton.png');background-size: auto;width: 19px"></button>
  1257.             <button id="qq-SearchButton" title="查找用户">查找</button>
  1258.         </div>
  1259.     </div>
  1260. </div>
  1261. <!-- QQ 登录窗口 -->
  1262. <div class="xp_form drag-parent" style="z-index: 10; left: 10%; top: 36%;">
  1263.     <div class="header__bg"></div>
  1264.     <header class="app__header drag-handle">
  1265.         <img src="img/qq.png" alt="QQ用户登录" class="app__header__icon" draggable="false">
  1266.         <div class="app__header__title">QQ用户登录</div>
  1267.         <div class="app__header__buttons">
  1268.             <button class="header__button header__button--minimize"></button>
  1269.             <button class="header__button header__button--maximize header__button--disable"></button>
  1270.             <button class="header__button header__button--close"></button>
  1271.         </div>
  1272.     </header>
  1273.     <div class="app__content">
  1274.         <div class="qq-login">
  1275.             <div class="qq-login-banner"></div>
  1276.             <div class="qq-login-form">
  1277.                 <div class="qq-login-form-row">
  1278.                     <label for="qq-login-num">
  1279.                         QQ号码
  1280.                         <img id="qq-login-method" src="img/select.png">
  1281.                     </label>
  1282.                     <input type="text" id="qq-login-num" placeholder="<请在这儿输入QQ号码>">
  1283.                     <button class="qq-btn" id="qq-login-reg">申请号码</button>
  1284.                     <button id="qq-login-num-select"></button>
  1285.                 </div>
  1286.                 <div class="qq-login-form-row" style="align-items: flex-end">
  1287.                     <label for="qq-login-password">QQ密码</label>
  1288.                     <input type="password" id="qq-login-password" placeholder="">
  1289.                     <a href="https://accounts.qq.com/find/password" target="_blank" id="qq-login-forget">忘了密码?</a>
  1290.                 </div>
  1291.                 <div class="qq-login-form-row qq-login-check">
  1292.                     <label style="width: 55px"></label>
  1293.                     <input type="checkbox" id="qq-login-auto" checked>
  1294.                     <label for="qq-login-auto">自动登录</label>
  1295.                     <input type="checkbox" id="qq-login-hide">
  1296.                     <label for="qq-login-hide">隐身登录</label>
  1297.                 </div>
  1298.             </div>
  1299.             <div class="qq-login-buttons">
  1300.                 <button class="qq-btn" style="width: 78px">高级设置 ↓</button>
  1301.                 <span></span>
  1302.                 <button class="qq-btn" id="loginBtn">登录</button>
  1303.                 <button class="qq-btn" id="registerBtn">取消</button>
  1304.             </div>
  1305.         </div>
  1306.     </div>
  1307. </div>
  1308. <!-- 登录中窗口 -->
  1309. <div class="qq-logging drag-parent" style="left: 28%; top: 10%;z-index:999">
  1310.     <!-- 标题栏 -->
  1311.     <div class="qq-title drag-handle">
  1312.         <div class="qq-title-left"></div>
  1313.         <div class="qq-title-center"></div>
  1314.         <div class="qq-title-right"></div>
  1315.         <div class="qq-title-btns">
  1316.             <button id="qq-min"></button>
  1317.             <button id="qq-close"></button>
  1318.         </div>
  1319.     </div>
  1320.      
  1321.     <div class="qq-logging-body qq-flex-bg">
  1322.         <div class="qq-body-left"></div>
  1323.         <div class="qq-body-center"></div>
  1324.         <div class="qq-body-right"></div>
  1325.     </div>
  1326.     <div class="qq-logging-bottom qq-flex-bg">
  1327.         <div class="qq-bottom-left"></div>
  1328.         <div class="qq-bottom-center"></div>
  1329.         <div class="qq-bottom-right"></div>
  1330.     </div>
  1331.     <div id="qq-logging-main">
  1332.         <img src="img/logging/BITMAP1710_1.png">
  1333.         <img src="img/logging/START_GIF1704_1.gif">
  1334.         <p>正在登录</p>
  1335.         <button id="qq-logging-cancel"></button>
  1336.     </div>
  1337. </div>
  1338. <script>
  1339. const playAudio = url => new Audio(url).play().catch(e => console.error('播放失败:', e));
  1340. document.addEventListener('DOMContentLoaded',  () => {
  1341.     document.getElementById('btn-send-msg').onclick = () => {
  1342.         playAudio('sound/msg.mp3');
  1343.     };
  1344.     document.getElementById('qq-MsgManagerButton').onclick = () => {
  1345.         playAudio('sound/system.mp3');
  1346.     };
  1347.     document.getElementById('qq-im-msg').onclick = () => {
  1348.         playAudio('sound/msg.mp3');
  1349.     };
  1350.     document.getElementById('qq-im-video').onclick = () => {
  1351.         playAudio('sound/call.mp3');
  1352.     };
  1353.     document.getElementById('qq-im-audio').onclick = () => {
  1354.         playAudio('sound/call.mp3');
  1355.     };
  1356.     playAudio('sound/msg.mp3');
  1357.     /* 拖拽移动窗口 */
  1358.     document.querySelectorAll('.drag-parent').forEach(parent  => {
  1359.         const handle = parent.querySelector('.drag-handle');
  1360.         if (!handle) return;
  1361.   
  1362.         let isDragging = false;
  1363.         let startX, startY, startLeft, startTop;
  1364.   
  1365.         const getPosition = (el) => {
  1366.             const style = window.getComputedStyle(el);
  1367.             return {
  1368.                 left: parseInt(style.left,  10) || 0,
  1369.                 top: parseInt(style.top,  10) || 0
  1370.             };
  1371.         };
  1372.   
  1373.         handle.addEventListener('mousedown',  (e) => {
  1374.             e.preventDefault();
  1375.             isDragging = true;
  1376.             const pos = getPosition(parent);
  1377.             startLeft = pos.left;
  1378.             startTop = pos.top;
  1379.             startX = e.clientX;
  1380.             startY = e.clientY;
  1381.         });
  1382.   
  1383.         handle.addEventListener('touchstart',  (e) => {
  1384.             e.preventDefault();
  1385.             isDragging = true;
  1386.             const pos = getPosition(parent);
  1387.             startLeft = pos.left;
  1388.             startTop = pos.top;
  1389.             startX = e.touches[0].clientX;
  1390.             startY = e.touches[0].clientY;
  1391.         }, { passive: false });
  1392.   
  1393.         const moveHandler = (e) => {
  1394.             if (!isDragging) return;
  1395.             const clientX = e.clientX  ?? e.touches?.[0]?.clientX;
  1396.             const clientY = e.clientY  ?? e.touches?.[0]?.clientY;
  1397.             
  1398.             parent.style.left  = `${startLeft + (clientX - startX)}px`;
  1399.             parent.style.top  = `${startTop + (clientY - startY)}px`;
  1400.         };
  1401.   
  1402.         document.addEventListener('mousemove',  moveHandler);
  1403.         document.addEventListener('touchmove',  moveHandler, { passive: false });
  1404.   
  1405.         const endHandler = () => isDragging = false;
  1406.         document.addEventListener('mouseup',  endHandler);
  1407.         document.addEventListener('touchend',  endHandler);
  1408.     });
  1409. });
  1410. </script>
  1411. </body>
  1412. </html>
复制代码


回复

您需要登录后才可以回帖 登录 | 立即注册 微信登录

本版积分规则

您需要 登录 后才可以回复,轻松玩转社区,没有帐号?立即注册
快速回复
关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表