Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 31.12.2018, 11:14
Аспирант
Отправить личное сообщение для VasyOK Посмотреть профиль Найти все сообщения от VasyOK
 
Регистрация: 08.12.2017
Сообщений: 31

При скроле html.scrollTop в IE и Edge всегда 0
Здравствуйте специалисты по высокоуровневому JS!

Вот кусок кода:
$(document).scroll(function(){        
      var $DOK = document.querySelector("html");
      
      var $DOKscrollTop = $DOK.scrollTop;  /*Проблема с этой переменной*/
      
      console.log(
        "DOKscrollTop " + $DOKscrollTop
      );                          
    
});


Проблема: при скроле свойство scrollTop в IE и Edge всегда равно 0.
В Chrome и FireFox - все хорошо.

Может у меня DOCTYPE не такой как надо?
На всякий случай привожу пример, который пилю: http://test.oneprimus.com/



Всех с наступающим!
Ответить с цитированием
  #2 (permalink)  
Старый 31.12.2018, 11:28
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

VasyOK,
Получение текущей прокрутки
Ответить с цитированием
  #3 (permalink)  
Старый 31.12.2018, 11:29
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

В IE document.body.scrollTop
Ответить с цитированием
  #4 (permalink)  
Старый 04.01.2019, 03:59
Аспирант
Отправить личное сообщение для VasyOK Посмотреть профиль Найти все сообщения от VasyOK
 
Регистрация: 08.12.2017
Сообщений: 31

Форумчане, спасибо за ответы!

В коде сверху заменил
var $DOKscrollTop = window.pageYOffset || document.documentElement.scrollTop;

И всё заработало (вроде бы). А что тут обозначает знак "||" ? Я понимаю, что это логический оператор, но не понимаю логику.

laimas, если
$DOKscrollTop = document.body.scrollTop;
- тогда наоборот работает только в IE/Edge
Ответить с цитированием
  #5 (permalink)  
Старый 04.01.2019, 04:27
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от VasyOK
работает только в IE/Edge
Сообщение от VasyOK
не понимаю логику

и

window.pageYOffset || document.documentElement.scrollTop;

как раз вернет свойство document.documentElement.scrollTop в IE, так как в нем свойства window.pageYOffset нет, а для иных window.pageYOffset так как оно есть, не обращаясь даже к тому, что описано после ИЛИ.

Последний раз редактировалось laimas, 04.01.2019 в 05:57.
Ответить с цитированием
  #6 (permalink)  
Старый 05.01.2019, 09:17
Аспирант
Отправить личное сообщение для VasyOK Посмотреть профиль Найти все сообщения от VasyOK
 
Регистрация: 08.12.2017
Сообщений: 31

|| - понятно

А можно как-то самоcтоятельно узнать о свойствах
window.pageYOffset
и
document.documentElement.scrollTop
?

не вижу их в Веб инспекторе.
"scrollTop" - я увидел, когда нажал на тег <html> - показать свойства DOM
а эти как увидеть?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему скрипт отрабатывает в IE только при первом входе на сайт? tygeddar Элементы интерфейса 3 20.09.2012 01:37
Подружить два скрипта (скроллер+скрипт эффекта при наведении) Che jQuery 26 29.08.2012 10:59
Проблема при воспроизведении аудио при использовании jplayer nemish Events/DOM/Window 0 01.12.2011 16:15
getAllResponseHeaders() и status имеют смысл только при readyState==4? mister_maxim AJAX и COMET 7 27.03.2011 19:08
Изменение стиля родительского элемента при :hover дочернего lanzs Элементы интерфейса 2 16.10.2010 13:28