javascript - 动态设置弹出div的位置

标签 javascript jquery html css

我正在寻找关于如何设置通过单击另一个 div 显示的弹出 div 位置的解决方案,但它的位置取决于窗口的位置。

这里是我的 div 的一些例子:

 <div id="header"></div>

 <div id="open">Click here to open the popup</div>

 <div id="popup">
      <div class="popup-wrapper">
          <div class="content">
             <h1>TEST</h1>
          </div>
      </div>
 </div>

 <div id="footer"></div>

例如:

  1. 如果用户单击 #open div 以显示 #popup div,浏览器窗口滚动条的位置在底部,我想要#popup div 显示在 #open div 的顶部。

  2. 但是,如果用户单击“#open”div 以显示 #popup div,浏览器窗口的位置位于顶部,我希望 #popup div 显示在 #open div 的底部。

这是我使用的脚本:

$("#popup").click(function(e) {
     if ($(e.target).closest(".content" /*or any other selector here*/).length > 0){
         return false;
     }
     $("#popup").fadeOut(200);
     $("body").addClass("no-scroll");
});

//This is just to open the popup
$('#open').click(function() {
    $("#popup").show();
}); 

这是带有 css 的完整代码 FIDDLE

最佳答案

检查用户的滚动条位置。然后根据滚动条的位置显示弹出窗口。尚未测试下面的代码,但与此类似。

var scrollTop = (window.pageYOffset !== undefined) ? window.pageYOffset : (document.documentElement || document.body.parentNode || document.body).scrollTop;

if(scrollTop == 0){
   // Window on top. Display popup
}

if(scrollTop == $(window).height()){
   // Window on bottom. Display popup
} 

关于javascript - 动态设置弹出div的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24679815/

相关文章:

javascript - 两个 Highcharts 更新问题

javascript - 通过JavaScript解析XML并获取节点值

javascript - document.ready 和 ExecuteOrDelayScriptLoaded

html - 如何使用CSS创建按钮背景

javascript - 如何使用jquery追加功能添加图像的src?

javascript - Mongoose 随机不起作用?

javascript - Google Apps 脚本和 JavaScript 中的 base64 编码的不同结果

javascript - 如何在 JavaScript/Jquery 中切片已经存在于另一个数组中的数组元素

jquery - 父对象的链接点击功能重定向到href

javascript - 我可以在用户单击链接后操作 DOM 吗?