javascript - JavaScript 表格在加载/刷新时闪烁。我怎样才能避免这种情况发生?
问题描述
我已经成功地将这个代码片段与我的数据表集成在一起。唯一的问题是,在页面加载或刷新时,屏幕上的所有表格似乎都在闪烁,甚至在输入任何搜索/过滤/查询词之前。已尝试使用 CSS 隐藏/显示以及在 JAVASCRIPT 和 HTML 中显示结果的变体,但没有最终修复。我很想知道如何解决这个问题并保持 mark.js 突出显示效果。
JAVASCRIPT
var input, table, rows, markInstance;
window.onload = function init() {
input = document.getElementById("myInput");
table = document.getElementById('myTable');
rows = table.querySelectorAll('tr');
markInstance = new Mark(table);
clear();
}
function ContactsearchFX() {
clear();
if (input.value.length == 0) return;
filterRows(input.value);
highlightMatches(input.value);
}
function clear() {
markInstance.unmark();
for (var i = 0; i < rows.length; i++) {
rows[i].style.display = 'none';
}
}
function filterRows(text) {
var part = text.toUpperCase();
for (i = 0; i < rows.length; i++) {
var row = rows[i];
var td = row.getElementsByTagName("td")[0];
if (td) {
var content = td.innerText.toUpperCase();
if (content.includes(part)) {
row.style.display = "";
}
}
}
}
function highlightMatches(text) {
markInstance.mark(text);
}
CSS
.input-wrap {
margin-bottom: 12px;
}
.hints {
display: none;
margin-top: 12px;
}
myInput:invalid~.hints {
display: block;
}
mark {
background: orange;
font-weight: bold;
color: black;
}
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/mark.js/8.11.1 /mark.js"></script>
<div class="input-wrap">
<label>
Search Titles:
<input id="myInput" type="text" required
onkeyup="ContactsearchFX()"
placeholder="Search Titles" />
<span class="hints">
Hints: type "git", "bit", "forge" ...
</span>
</label>
</div>
<table id="myTable" style="width: 100%" class="style1">
<tr>
<td> * DATA <TABLES> NESTED IN HERE *
</td>
</tr>
</table>
ps用mark.js没问题
解决方案
推荐阅读
- python-3.x - 为什么散点图没有显示在pairplot内
- java - 有没有一种方法可以在不知道对象数量的情况下将所有实例化对象一起收集到 ArrayList 中?
- python - 我为我的掷骰子游戏添加变量过于复杂
- arrays - 为什么 strcmp() 不适用于我的数组输入?
- android - 获取数据库类的getInstance函数的应用程序上下文(android kotlin)
- python - 字典条目存储为参考后如何获取密钥
- json - 通过 XML 解析 json
- javascript - ReactJS Custom Hook 没有呈现预期的输出
- python - 高速公路:socket.gaierror:[Errno 11001] getaddrinfo 失败
- python - cv2.approxPolydp() 返回什么?