2015-06-07 66 views
0

我有一个“一”的标签标有“shoe_tag”链接到一个URL,下面的下面的JS代码:Modal出现在Chrome/Firefox上,但不是Safari浏览器?

$(".shoe_tag").on('click', function() { 

    tpos = $(window).scrollTop() + 300; 
    myModal.open(); 
    $(".scotch-modal").css({top:tpos, position:'absolute'}); 


}); 

此代码可以让我在服务器响应,这一般需要打开一个模式4秒。在Chrome和Firefox上,模式将在浏览器等待服务器响应时打开,但在Safari上未打开任何模式。但是,如果我在最后放置一个调试器语句,然后在Web控制台中调用“myModal.open()”,那么将出现模式。它几乎像Safari一样跳过这段代码,除非我在控制台中调用它。我一直在研究基于Safari的东西一个多星期,并且难住,有什么想法?

+0

它应该有一直是var tpos而不是tpos – nikhil

回答

1

我认为这是与浏览器的渲染管线有问题,尽量呈现出短的时间内模态:

$(".shoe_tag").on('click', function() { 

    var tpos = $(window).scrollTop() + 300; 
    $(".scotch-modal").css({top:tpos, position:'absolute'}); 
    setTimeout(function(){myModal.open();}, 100); 

}); 

定时器救了我的命很多很多次;-)

0

尝试

var tpos = $("body").scrollTop() + 300; 

WebKit浏览器总是渲染窗口/ HTML scrollTop的为零。

+0

它不是一个位置问题,当我在浏览器中按“返回”时,该模式出于某种原因出现在正确的位置。它就像一旦Safari发出请求,它不会在页面上呈现任何其他内容? – user1835351

+0

你可以创建一个plunker和分享。由此,我将更容易进行调试。 – nikhil

相关问题