Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.04.2017, 21:21
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,459

scrollTop в Safari под Mac ОС всегда равен 0
Здравствуйте.
В заголовке темы, собственно, суть проблемы и отражается.

Юзается jQuery.
Навешивал обработчик события scroll всеми известными способами, толку нет.
Навешивал обработчик и на window, и на html, и на body.

Адрес сайта, к сожалению, дать пока что не могу поскольку он в разработке.

Этот же код великолепно выполняется на другом сайте без каких-либо проблем.


Подскажите как лечится эта проблема в Safari?

Последний раз редактировалось Nexus, 21.04.2017 в 00:10.
Ответить с цитированием
  #2 (permalink)  
Старый 21.04.2017, 01:19
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,469

Nexus, какая версия jQuery, на чем вызывается scrollTop? Пример запили.
Ответить с цитированием
  #3 (permalink)  
Старый 21.04.2017, 11:03
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,459

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();
Ответить с цитированием
  #4 (permalink)  
Старый 21.04.2017, 13:20
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,469

Nexus, если "этот же код великолепно выполняется на другом сайте", значит ты что-то не так делаешь на своем сайте.
Ответить с цитированием
  #5 (permalink)  
Старый 21.04.2017, 16:25
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,459

Сообщение от Rise Посмотреть сообщение
Nexus, если "этот же код великолепно выполняется на другом сайте", значит ты что-то не так делаешь на своем сайте.
Разработкой другого сайта, на котором этот код выполняется занимался тоже я)
Ответить с цитированием
  #6 (permalink)  
Старый 21.04.2017, 17:10
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,469

Nexus, test.html:
<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>TEST</title>
	<script src="https://code.jquery.com/jquery-2.2.1.min.js"></script>
</head>
<body>

<script>
$('body').append(new Array(100).join('<br>'));

var $window = $(window).on('scroll', function() {
	console.log($window.scrollTop());
});
</script>

</body>
</html>
Работает это в твоем Safari под Mac ОС?
Ответить с цитированием
  #7 (permalink)  
Старый 21.04.2017, 17:39
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,459

Rise, работает.
Ответить с цитированием
  #8 (permalink)  
Старый 22.04.2017, 10:35
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,459

Может подобное произойти из-за стилей страницы?
Ответить с цитированием
  #9 (permalink)  
Старый 22.04.2017, 10:38
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 29,882

Сообщение от Nexus
Может подобное произойти из-за стилей страницы?
overflow: hidden; ?
Ответить с цитированием
  #10 (permalink)  
Старый 22.04.2017, 10:48
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,459

рони, к сожалению нет)
Я понимаю, что невнимательность в большинстве случаев и приводит к ошибкам, но вряд ли она имеет в этом случае место быть.

В этой теме хотел узнать об особенностях самого браузера Safari, возможно в них причина.
Во время поиска решения проблемы видел сообщения, в которых описывали причину бага заключающуюся именно в них.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Flexbox под Safari + hover Spirtikys (X)HTML/CSS 0 06.10.2016 10:11
jPlayer под Safari paveltkachev Библиотеки/Тулкиты/Фреймворки 0 09.12.2015 15:27
scrollTop - почему то всегда показывает 0! Siend jQuery 4 30.12.2014 00:59
Стили для select for Safari for Mac Os dr_gluk (X)HTML/CSS 2 22.12.2011 12:48
баг javascript+jQuery под mac os runner Opera, Safari и др. 0 11.06.2010 18:15