【问题标题】:Dialog opens outside viewport对话框在视口外打开
【发布时间】:2016-01-14 14:21:04
【问题描述】:

如果您在一个大页面上并且一直向下滚动。底部是一个打开对话框的按钮。在我的例子中,这个对话框在页面顶部的视口之外打开

DEMO

JS:

var showDialogButton = document.getElementById('showDialogButton');

showDialogButton.addEventListener('click', function() {
  var bronteDialog = document.getElementById('bronteDialog');
  var anchorPoint = document.getElementById('anchor');
  bronteDialog.show(anchorPoint);
});

事实证明,show 函数接受一个参数,该参数是对话框的锚点。但无论我做什么,对话框都在顶部。任何帮助将不胜感激!

【问题讨论】:

    标签: javascript html dialog


    【解决方案1】:

    您可以将其添加到 CSS 中:

    dialog {
      position: fixed;
    }
    

    【讨论】:

    • 谢谢,成功了。你也知道锚论点是什么吗?
    • 不确定。似乎HTMLDialogElement 是一个实验性功能,所以它没有完全发挥作用并不让我感到惊讶:developer.mozilla.org/en-US/docs/Web/API/HTMLDialogElement
    • 是的。我认为仍然很奇怪的是,当您使用showModal (DEMO) 时,对话框很好地居中。但是对于show,你必须自己做(不知何故)。或者你认为这有意义吗?
    • 这很有趣。我认为这仅取决于浏览器选择实现该功能的方式。也许他们认为人们通常会想要一个默认居中的模态,因为与模态后面的元素的交互不再可以交互,而非模态应该只是浮动到任何地方,直到用户决定将它放在哪里,因为交互仍然是可能的?只是猜测,但这是我的猜测:)
    • 这确实是唯一合乎逻辑的解释,thnx
    猜你喜欢
    • 2016-10-01
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 2014-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多