我有一个" a"标记为" shoe_tag"链接到网址,以及下面的以下js代码:
$(".shoe_tag").on('click', function() {
tpos = $(window).scrollTop() + 300;
myModal.open();
$(".scotch-modal").css({top:tpos, position:'absolute'});
});
此代码允许我在服务器响应时打开模态,通常需要大约4秒。在Chrome和Firefox上,模式将在浏览器等待服务器响应时打开,但在Safari上没有模态打开。但是,如果我在最后放置调试器语句,则调用" myModal.open()"在Web控制台中,然后将出现模式。它几乎像Safari跳过这段代码,除非我在控制台中调用它。我已经研究了基于Safari的东西超过一个星期而且难倒了,有什么想法吗?
答案 0 :(得分:1)
我认为浏览器的渲染管道存在问题,请在短时间内尝试显示模式:
$(".shoe_tag").on('click', function() {
var tpos = $(window).scrollTop() + 300;
$(".scotch-modal").css({top:tpos, position:'absolute'});
setTimeout(function(){myModal.open();}, 100);
});
计时器多次挽救了我的生命; - )
答案 1 :(得分:0)
试
var tpos = $("body").scrollTop() + 300;
Webkit浏览器总是将window / html scrollTop渲染为零。