javascript - 如何在点击的地方显示div覆盖,而不是在html中的屏幕顶部

标签 javascript jquery html css

我有以下 css 和 js:

<style type="text/css">
#overlay {
     visibility: hidden;
     position: absolute;
     left: 0px;
     top: 0px;
     width:100%;
     height:100%;
     text-align:center;
     z-index: 1000;
}

#overlay div {
     width:300px;
     margin: 100px auto;
     background-color: #fff;
     border:1px solid #000;
     padding:15px;
     text-align:center;
}
</style>
<script>
function overlay() {
    el = document.getElementById("overlay");
    el.style.visibility = (el.style.visibility == "visible") ? "hidden" : "visible";
}
</script>

我有以下 HTML:

<table>
    <tr>
        <td> Click button</td>
        <td><a href='#' onclick='overlay()'>Click here to show the overlay</a></td>
    </tr>
</table>

问题是,当我单击它时,页面会滚动回顶部并显示对话框。

我希望叠加层能够正确显示。我怎样才能做到这一点?

最佳答案

使用位置固定,使用百分比显示:

#overlay {
     visibility: hidden;
     position: fixed;
     left: 0px;
     top: 0px;
     width:100%;
     height:100%;
     text-align:center;
     z-index: 1000;
}

根据滚动,您可以在函数中返回 false:

function overlay() {
    el = document.getElementById("overlay");
    el.style.visibility = (el.style.visibility == "visible") ? "hidden" : "visible";
    return false;
}

关于javascript - 如何在点击的地方显示div覆盖,而不是在html中的屏幕顶部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32362750/

相关文章:

javascript - jQuery 不适用于事件处理

jquery - 如何向 jQuery 选项卡添加滚动条

html - 如何右对齐水平表格

javascript - 如何实现 Quill Emoji Blot

javascript - 请求的资源不支持http方法 'DELETE'

javascript - jQuery 使用 id 自动完成多个字段,但不使用 class;如果可能的话使用序列化

Javascript 有时会在 HTML 中加载内容,除非元素悬停在检查中

html - 在 <ul> 和 <ol> 中设置元素符号和数字的样式

javascript - 使用 Angular 创建多级网格

php - 更改具有 Null 值的单元格的背景颜色