使用JavaScript生成可以编辑可以插入图片点击图片能够放大的网页表格
时间: 2024-03-25 10:36:15 浏览: 68
幻灯片特效代码使用Dreamweaver8做网页时图片的切换效果代码
5星 · 资源好评率100%
可以使用JavaScript和HTML/CSS来实现这个功能。首先,使用HTML和CSS创建一个表格,然后使用JavaScript来添加编辑和插入图片的功能,以及点击图片进行放大的功能。
这里提供一个简单的示例代码:
HTML/CSS代码:
```html
<table id="editable-table">
<tr>
<th>标题1</th>
<th>标题2</th>
<th>标题3</th>
</tr>
<tr>
<td contenteditable="true">内容1</td>
<td contenteditable="true">内容2</td>
<td contenteditable="true">内容3</td>
</tr>
<tr>
<td contenteditable="true">内容4</td>
<td contenteditable="true">内容5</td>
<td contenteditable="true">内容6</td>
</tr>
</table>
<style>
#editable-table {
border-collapse: collapse;
width: 100%;
}
#editable-table th,
#editable-table td {
border: 1px solid black;
padding: 8px;
text-align: center;
}
#editable-table img {
max-width: 100%;
height: auto;
cursor: pointer;
}
#modal {
display: none;
position: fixed;
z-index: 1;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: auto;
background-color: rgba(0, 0, 0, 0.9);
}
#modal-content {
margin: auto;
display: block;
max-width: 80%;
max-height: 80%;
}
#caption {
margin: auto;
display: block;
width: 80%;
text-align: center;
color: #fff;
padding: 10px 0;
}
.close {
color: #fff;
position: absolute;
top: 10px;
right: 25px;
font-size: 35px;
font-weight: bold;
transition: 0.3s;
}
.close:hover,
.close:focus {
color: #bbb;
text-decoration: none;
cursor: pointer;
}
</style>
```
JavaScript代码:
```javascript
// 获取表格中的所有单元格
var cells = document.querySelectorAll("#editable-table td");
// 给每个单元格添加一个事件监听器,当单元格被点击时,创建一个新的可编辑的 div 元素,并将其添加到单元格中
cells.forEach(function (cell) {
cell.addEventListener("click", function () {
var div = document.createElement("div");
div.contentEditable = "true";
div.innerHTML = cell.innerHTML;
cell.innerHTML = "";
cell.appendChild(div);
});
});
// 给每个单元格中的图片添加一个点击事件监听器,当图片被点击时,显示一个模态框,并在其中显示点击的图片
var modal = document.getElementById("modal");
var modalContent = document.getElementById("modal-content");
var captionText = document.getElementById("caption");
var closeBtn = document.getElementsByClassName("close")[0];
cells.forEach(function (cell) {
var imgs = cell.getElementsByTagName("img");
for (var i = 0; i < imgs.length; i++) {
imgs[i].addEventListener("click", function () {
modal.style.display = "block";
modalContent.src = this.src;
captionText.innerHTML = this.alt;
});
}
});
// 当模态框中的关闭按钮被点击时,隐藏模态框
closeBtn.onclick = function () {
modal.style.display = "none";
};
```
这个示例代码中,我们使用了 `contenteditable` 属性来实现表格单元格的编辑功能,使用了 `querySelectorAll` 和 `getElementsByTagName` 方法来获取单元格中的图片,并给它们添加了点击事件监听器。当图片被点击时,我们创建了一个模态框来放大显示图片,使用了 `getElementById` 方法来获取模态框及其内部元素,并给关闭按钮添加了点击事件监听器,当关闭按钮被点击时,隐藏模态框。
阅读全文