javascript - 基于屏幕的 jquery 中心元素,而不是页面大小

标签 javascript jquery zurb-foundation

我有一个使用 Zurb 的 Reveal Plugin 显示的元素,我对它如何定位模态窗口有疑问。

它似乎将元素定位在页面的中心,折叠上方。但是,如果模态窗口由折叠下方的链接激活,则用户无法看到该窗口。有没有办法根据当前滚动位置而不是整个页面使元素居中?

据我所知,这是插件的相关源代码:

变量集(ln 41):

var modal    = $(this),
topMeasure = parseInt(modal.css('top'), 10),                                                                                                
topOffset  = modal.height() + topMeasure,                                                                                                   
locked     = false,                                                                                                                         
modalBg    = $('.reveal-modal-bg'),                                                                                                         
closeButton;   

为 Div 设置动画(ln 61)

 function openAnimation() {                                                                                                                    
    if (!locked) {                                                                                                                              
      lockModal();                                                                                                                              
      if (options.animation === "fadeAndPop") {                                                                                                 
        modal.css({                                                                                                                             
            'top': $(document).scrollTop() - topOffset,                                                                                         
            'opacity': 0,                                                                                                                       
            'visibility': 'visible'                                                                                                             
        });                                                                                                                                     
        modalBg.fadeIn(options.animationSpeed / 2);                                                                                             
        modal.delay(options.animationSpeed / 2).animate({                                                                                       
          "top": $(document).scrollTop() + topMeasure + 'px',                                                                                   
          "opacity": 1                                                                                                                          
        }, options.animationSpeed, function () {                                                                                                
          modal.trigger('reveal:opened');                                                                                                       
        });                                                                                                                                     

      }   
      //etc...

Full Source Code From GitHub

最佳答案

我遇到了同样的问题,我意识到我正在使用 href 链接中带有“#”的标签调用显示函数。

调用它会在调用显示功能之前重新加载页面,因此当按下显示按钮时,显示模态的屏幕位置会跳到屏幕的坐标,导致模态屏幕出现在屏幕的一半之外。

从链接中删除这个“#”可​​以解决问题...

希望对您有所帮助...

关于javascript - 基于屏幕的 jquery 中心元素,而不是页面大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11905050/

相关文章:

jquery - 删除除内容之外的所有 anchor ?

jquery - 获取元素的当前 HTML

javascript - 如何将嵌套回调转换为 promise

javascript - 获取 jQuery 选择器的数组索引

javascript - jQuery 的 hide() 和 show() 的 JavaScript 等价物是什么?

html - 基础 5 列

javascript - Zurb Foundation 6 - 使用 jQuery 关闭模态框

jquery - Foundation 5 Canvas 外滑动

javascript - 最佳地将一组字段添加到表单并在提交时生成 JSON

javascript - 如何使用javascript计算总和