Javascript.RU

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

Находится ли блок в видимой части
Хотелось бы узнать, какими способами можно определить, находится ли блок в видимой части.
Я имею в виду не просто в пределы значений clientWidth/Height, а например, если блок находится в нижней части и не видим при начальной загрузке, то можно прокрутить вниз, и когда этот блок окажется в видимой части, то чтобы можно было выполнить определенную функцию javascript.
Надеюсь, понятно расписал.
Ответить с цитированием
  #2 (permalink)  
Старый 25.02.2014, 02:19
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

.getBoundingClientRect()
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 25.02.2014, 14:56
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

quizzer,
Макет показывающий насколько виден блок
Ответить с цитированием
  #4 (permalink)  
Старый 26.02.2014, 01:35
Новичок на форуме
Отправить личное сообщение для quizzer Посмотреть профиль Найти все сообщения от quizzer
 
Регистрация: 16.10.2013
Сообщений: 3

рони, эх, если бы еще на чистом javascript, jquery мне не вариант, но в целом я понял как делать, попробую реализовать
Ответить с цитированием
  #5 (permalink)  
Старый 26.02.2014, 02:02
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

quizzer,
там практически всё на раз меняется -- все что нужно для замены Размеры и прокрутка для страницы и Координаты
Ответить с цитированием
  #6 (permalink)  
Старый 26.02.2014, 02:38
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

quizzer, формула 100% видимости - обьект полностью видим.
var $myElement = document.getElementById(id),
  landmark = $myElement.getBoundingClientRect(),
  visibility = landmark.top > 0 && landmark.left > 0 && landmark.bottom <  document.documentElement.clientHeight   && landmark.right < document.documentElement.clientWidth
Ответить с цитированием
  #7 (permalink)  
Старый 26.02.2014, 02:50
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

quizzer,
формула видимости хоть какой-то части обьекта
function checkViewport(id) {
     var $myElement = document.getElementById(id),
         landmark = $myElement.getBoundingClientRect(),
         visibility = landmark.top + $myElement.scrollHeight > 0 && landmark.left + $myElement.scrollWidth > 0 && landmark.bottom - $myElement.scrollHeight < document.documentElement.clientHeight && landmark.right - $myElement.scrollWidth < document.documentElement.clientWidth
     return visibility
 }

Последний раз редактировалось рони, 26.02.2014 в 02:55.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Копирование блоков в блок maximus Events/DOM/Window 1 14.09.2013 19:40
как скрыть блок div по ключевому слову Sacred13 Элементы интерфейса 6 06.08.2013 19:13
Показать/скрыть блок Lelja_05 jQuery 10 01.07.2013 20:05
Нахождение элемента в видимой части контейнера со скроллом kidar2 Events/DOM/Window 0 21.05.2010 10:50
высота видимой части окна alex-crimea Общие вопросы Javascript 9 15.03.2010 20:16