// 关闭悬浮窗 popup.onclick = function () { document.body.removeChild(popup); isPopupVisible = false; // 标记悬浮窗为隐藏状态 }; imgContainer.appendChild(img); popup.appendChild(imgContainer); document.body.appendChild(popup); }当我点开图片放大后,我点击悬浮窗外采关闭悬浮窗,点击图片无效
时间: 2024-04-17 13:28:01 浏览: 141
要实现点击悬浮窗外部任何地方都能关闭悬浮窗,您可以按照以下步骤进行操作:
1. 添加遮罩层:
在`showPopup`函数中创建一个遮罩层元素,并将其添加到`popup`元素之前。
```javascript
var overlay = document.createElement("div");
overlay.style.position = "fixed";
overlay.style.top = "0";
overlay.style.left = "0";
overlay.style.width = "100%";
overlay.style.height = "100%";
overlay.style.backgroundColor = "rgba(0, 0, 0, 0.8)";
overlay.style.zIndex = "9998"; // 设置遮罩层的z-index低于悬浮窗,但高于其他元素
popup.parentNode.insertBefore(overlay, popup);
```
这将创建一个全屏的遮罩层,并且设置其背景颜色为半透明黑色。将遮罩层的z-index设为低于悬浮窗,但高于其他元素,以便遮挡悬浮窗之外的内容。
2. 修改关闭悬浮窗事件:
修改`popup.onclick`事件处理程序,使其同时关闭悬浮窗和遮罩层。
```javascript
popup.onclick = function () {
document.body.removeChild(popup);
document.body.removeChild(overlay);
isPopupVisible = false; // 标记悬浮窗为隐藏状态
};
```
这样,当您点击悬浮窗时,将同时移除悬浮窗和遮罩层。
3. 添加遮罩层点击事件:
为遮罩层添加点击事件处理程序,使其在点击遮罩层时关闭悬浮窗。
```javascript
overlay.onclick = function () {
document.body.removeChild(popup);
document.body.removeChild(overlay);
isPopupVisible = false; // 标记悬浮窗为隐藏状态
};
```
这样,无论您点击悬浮窗外的任何地方,包括遮罩层,都会关闭悬浮窗。
请确保将上述修改应用到您的代码中,并重新加载页面。这样,当您点开图片放大后,无论点击悬浮窗外的哪个位置,都能关闭悬浮窗。
如果还有其他问题,请告诉我。
阅读全文