【问题标题】:remove blur from textarea on file upload html | css | javascript从文件上传 html 的 textarea 中删除模糊 | CSS | javascript
【发布时间】:2019-05-12 08:27:27
【问题描述】:

我有一个 html 页面,我希望文本看起来清晰而不模糊

当我上传文件时,会从文件中读取文本并显示在 TextArea 上,但文本似乎是模糊的

我使用的概念是,当我键入某个特定关键字时,如果该特定关键字与 textarea 中的某个类型匹配,那么它会以不同的颜色显示,例如关键字“已连接”,如果我在 textarea 中键入它,则显示为绿色,这就是我的功能已定义

问题:当我从文件中获取文本时,文本显示在我的 textarea 上但出现模糊如何修复该模糊

使用此文件并查看模糊内容 您能否上传此文本文件并查看(示例文本文件)链接:sendspace.com/file/67ge9n 您可能会看到模糊内容,如图像 sendspace.com/file/r25qme 所示

const color = {
  "connected successfully": "green",
  "connected": "green",
  "connection failure": "red"
};
let textArea = document.getElementById("myTextArea");
let colorsArea = document.querySelector(".colors");
let backdrop = document.querySelector(".backdrop");

// Event listeners.

textArea.addEventListener("input", function() {
  colorsArea.innerHTML = applyColors(textArea.value);
});

textArea.addEventListener("scroll", function() {
  backdrop.scrollTop = textArea.scrollTop;
});

function applyColors(text) {
  let re = new RegExp(Object.keys(color).join("|"), "gi");

  return text.replace(re, function(m) {
    let c = color[m.toLowerCase()];
    return `<spam style="color:${c}">${m}</spam>`;
  });
}



function rdata() {
  var file = document.getElementById("myFile").files[0];
  var reader = new FileReader();
  reader.onload = function(e) {
    var textArea = document.getElementById("myTextArea");
    textArea.value = e.target.result;
  };
  reader.readAsText(file);
}
table {
  font-family: arial, sans-serif;
  border-collapse: collapse;
  width: 50%;
}

td {
  border: 1px solid #dddddd;
  text-align: left;
  padding: 8px;
}

input[type=text],
select {
  width: 100%;
  padding: 12px 20px;
  margin: 8px 0;
  display: inline-block;
  border: 1px solid #ccc;
  border-radius: 4px;
  box-sizing: border-box;
}

.container,
.backdrop,
#myTextArea {
  font: 12px 'Open Sans', sans-serif;
  letter-spacing: 1px;
  width: 48%;
  height: 250px;
}

#myTextArea {
  margin: 0;
  position: absolute;
  border-radius: 0;
  background-color: transparent;
  z-index: 2;
  color: black;
  /* i change it to red , u can change to any color u want */
  resize: none;
}

.backdrop {
  position: absolute;
  z-index: 1;
  border: 2px solid transparent;
  overflow: auto;
  pointer-events: none;
}

.colors {
  white-space: pre-wrap;
  word-wrap: break-word;
}
<tr>
  <td><input id="myFile" type="file" /></td>

</tr>

<tr>
  <td colspan="2">
    <div class="container">
      <div class="backdrop">
        <div class="colors">
        </div>
      </div>
      <textarea id="myTextArea" onclick="rdata();"></textarea>
    </div>
  </td>
</tr>

【问题讨论】:

  • 您的文本没有模糊,您有 2 个容器,它们的位置绝对在彼此之上。当您键入相同的文本时,两者都会弹出一个轻微的偏移量,从而产生模糊的效果。这 2 个容器是背景和 mytextarea,它们的绝对位置使它们彼此重叠。
  • 我该如何解决@Jonny
  • 您可以将位置更改为相对位置,以查看我在说什么将拆开 2 个容器。您将不得不使用它来将它们定位在您想要的位置

标签: javascript html css


【解决方案1】:

它不是模糊的吗?你的代码是正确的

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2016-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-17
相关资源
最近更新 更多