鱼C论坛

 找回密码
 立即注册
查看: 3786|回复: 2

[技术交流] 关于之前说的MUD游戏的LOG框

[复制链接]
发表于 2021-5-30 08:33:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

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

x
先把图放上,就是中间有蓝字的那个框

                               
登录/注册后可看大图

解决方案就类似这种,先制造一个容器,然后在innerHTML中增加行数.
这里最好的是用textarea,比较符合HTML5的规范(多行文本输入).
  1. <!DOCTYPE html>
  2. <html>
  3.         <head>
  4.                 <meta charset="utf-8" />
  5.                 <script src="js/vue.js" type="text/javascript" charset="utf-8"></script>
  6.                 <script>
  7.                         function printLog(){
  8.                                 pPrint=document.getElementById("Pprint");
  9.                                 old = pPrint.innerHTML
  10.                                 pPrint.innerHTML = old + "wwww" + "<br />";
  11.                         }
  12.                 </script>
  13.                 <style>
  14.                         #Pprint{
  15.                                 width: 15rem;
  16.                                 height: 30rem;
  17.                                 overflow-y: auto;
  18.                         }
  19.                 </style>
  20.         </head>
  21.         <body>
  22.                 <p id="Pprint">iiii</p>
  23.                 <button onclick="printLog()">打印</button>
  24.         </body>
  25. </html>
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-5-30 08:42:34 | 显示全部楼层
出现了一个新问题: 如果用户在线时间过长,这么搞终究会导致溢出。现在的想法是内置一个计数器,到计数器上限就删去最前面的一些行,那这个可能要用到队列结构。。。我再看看吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-2 13:52:54 | 显示全部楼层
解决了
首先不能用textarea,功能限制太死,还是得请div出山
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <script src="js/vue.js" charset="utf-8"></script>
    <script src="../js/less.min.js" charset="UTF-8"></script>
    <script src="../js/vue.js" charset="UTF-8"></script>
    <script src="../js/anime.js" charset="UTF-8"></script>
    <title>滚动消息框</title>
    <!-- CSS -->
    <style>
        #logBox{
            width: 10rem;
            height: 40rem;
            resize: none;
            background-color: aliceblue;
            padding: 0.1875rem;
            border: 0.0625rem solid #a0b3d6;
            word-wrap: break-word;
            overflow-y: auto;
        }
        .important{
            color: #00BFFF;
        }
    </style>
    <!-- JS -->
    <script>
        window.onload = function(){ }
        var printLog = function(text="www",maxLength=20){
            var addin = document.createElement("span");
            addin.innerHTML = text + "<br />";
            addin.className = "normal";
            var logBox = document.getElementById("logBox");
            logBox.appendChild(addin);
            if (logBox.children.length > logBox.maxLength){
                logBox.removeChild(logBox.firstElementChild);
            }
        }
        var clearLog = function(){
            var logBox = document.getElementById("logBox");
            while(logBox.hasChildNodes()){
                logBox.removeChild(logBox.lastElementChild);
            }
            logBox.setAttribute("placeholder","已清空!");
        }
    </script>
</head>
<body>
    <div id="logBox"></div>
    <button onclick="printLog()">打印</button>
    <button onclick="clearLog()">清空</button>
</body>
</html>
原生JS,不用看上面引入的,一个都没用到,就占个坑
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 04:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表