2015-06-07 5 views
0

У меня есть «а» тег с надписью «shoe_tag», что ссылки на URL-адрес, и следующий JS код ниже:Модал появляется в Chrome/Firefox, но не в сафари?

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

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


}); 

Этот код позволяет мне открыть модальный, а сервер отвечает, что обычно занимает около 4 секунды. В Chrome и Firefox модальная функция откроется, пока браузер ждет ответа сервера, но в Safari не открывается модальный режим. Однако, если я положил оператор отладчика в конце, тогда вызовите «myModal.open()» в веб-консоли, затем появится модальный. Его почти как 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

Можете ли вы создать плункер и поделиться. Тем самым мне будет легче отлаживать. – nikhil

Смежные вопросы