
20.04.2017, 20:21
|
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,842
|
|
|
scrollTop в Safari под Mac ОС всегда равен 0
Здравствуйте.
В заголовке темы, собственно, суть проблемы и отражается.
Юзается jQuery.
Навешивал обработчик события scroll всеми известными способами, толку нет.
Навешивал обработчик и на window, и на html, и на body.
Адрес сайта, к сожалению, дать пока что не могу поскольку он в разработке.
Этот же код великолепно выполняется на другом сайте без каких-либо проблем.
Подскажите как лечится эта проблема в Safari?
Последний раз редактировалось Nexus, 20.04.2017 в 23:10.
|
|

21.04.2017, 10:03
|
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,842
|
|
Rise, jQuery version 2.1.1
Это вариант на котором я остановился (не работает в Safari).
var cont=(!is_win_safari() && is_safari())?'html,body':window;
$(cont).on('scroll',function(e){
var $t=$(this),$m=$('.floating_menu');
if($t.width()<960) return;
if($m.hasClass('hide'))
$m.attr('data-state','hide').show().animate({top:-100},0).hide().removeClass('hide');
if($t.scrollTop()<500)
$('.floating_menu[data-state="show"]').attr('data-state','hide')
.stop(true).show()
.animate({top:-$m.height()},300,function(){$(this).hide();});
else
$('.floating_menu[data-state="hide"]').attr('data-state','show')
.stop(true).show()
.animate({top:0},300);
}).scroll();
|
|

21.04.2017, 15:25
|
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,842
|
|
Сообщение от Rise
|
|
Nexus, если "этот же код великолепно выполняется на другом сайте", значит ты что-то не так делаешь на своем сайте.
|
Разработкой другого сайта, на котором этот код выполняется занимался тоже я)
|
|

21.04.2017, 16:39
|
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,842
|
|
|
Rise, работает.
|
|

22.04.2017, 09:35
|
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,842
|
|
|
Может подобное произойти из-за стилей страницы?
|
|

22.04.2017, 09:38
|
 |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,153
|
|
|
Сообщение от Nexus
|
|
Может подобное произойти из-за стилей страницы?
|
overflow: hidden; ?
|
|

22.04.2017, 09:48
|
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,842
|
|
|
рони, к сожалению нет)
Я понимаю, что невнимательность в большинстве случаев и приводит к ошибкам, но вряд ли она имеет в этом случае место быть.
В этой теме хотел узнать об особенностях самого браузера Safari, возможно в них причина.
Во время поиска решения проблемы видел сообщения, в которых описывали причину бага заключающуюся именно в них.
|
|

22.04.2017, 09:57
|
 |
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,153
|
|
|
Сообщение от Nexus
|
|
=(!is_win_safari() && is_safari())
|
а это подключено?
|
|

22.04.2017, 10:24
|
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,842
|
|
|
рони, да подключено.
Консолью умею пользоваться, ошибок нет.
|
|

24.04.2017, 20:55
|
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,842
|
|
Скрипт подключался асинхронно через $.getScript.
Оказалось, что window!==window.top.
$(window.top).scroll(callback);
Вошпем как-то так, может кому пригодиться сей пост.
Спасибо всем тем, кто пытался помочь.
|
|
|
|