2013-03-02 3 views
0

Я обрабатываю сайт с помощью js и хочу оптимизировать цикл рендеринга.Как получить событие, когда div становится видимым

Есть ли способ получить событие, когда элемент страницы становится видимым для пользователя?

таким образом задерживает визуализацию элементов до тех пор, пока они не будут видны?

+0

Дубликат [Как проверить, находится ли элемент в представлении пользователя с помощью jquery] (http://stackoverflow.com/questions/8229291/how-to-check-if-an-element-is-in -The-вид-оф-пользователь-с-JQuery)? – Rudie

+1

На самом деле я говорю ** нет **, так как этот вопрос либо помечен jQuery, ни он не упоминает, что он его использует. –

ответ

1

Поскольку вы не объяснить, если есть какие-либо конкретные Lib/рамки вы используете, или есть какие-либо конкретные условия, чтобы сделать элемент видимым Я дам вам это:

jQuery $ (document) .ready() может определять, загружена ли вся страница.

С другой стороны, если элемент был отображен: нет или видимость: скрытые или оба и т. Д., Вы можете использовать jQuery так: $ ('element'). Is (': visible') в качестве условия и вызывать любое внутреннее утверждение if.

1
var viewportWidth = jQuery(window).width(), 
viewportHeight = jQuery(window).height(), 
documentScrollTop = jQuery(document).scrollTop(), 
documentScrollLeft = jQuery(document).scrollLeft(), 
minTop = documentScrollTop, 
maxTop = documentScrollTop + viewportHeight, 
minLeft = documentScrollLeft, 
maxLeft = documentScrollLeft + viewportWidth, 
$myElement = jQuery(element), // your element jquery object 
elementOffset = $myElement.offset(); 
if (
(elementOffset.top > minTop && elementOffset.top < maxTop) && 
(elementOffset.left > minLeft &&elementOffset.left < maxLeft) 
) { 
    alert('element is visible'); 
    } else { 
    alert('element is not visible'); 
    } 
+0

это использование jQuery - если вы не можете использовать jQuery, пожалуйста, дайте мне знать, я постараюсь сделать это в обычном js –

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