Как я узнаю, находится ли элемент на экране? - PullRequest
0 голосов
/ 16 апреля 2020

В окне просмотра отображается определенное количество элементов, которые видны, и другие, которые не из-за смещения прокрутки. Безусловно, свойства visible / hide не зависят от видимых элементов области просмотра на экране. Я не нашел никакого метода Ext JS, чтобы узнать, отображается ли элемент в области просмотра или нет.

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

Требования: Ext JS 6.2.0

1 Ответ

0 голосов
/ 16 апреля 2020

Это способ без Ext JS, где el - это элемент для оценки, а ctr - контейнер элемента

elementStateInScrolling= function (el,ctr){
    el=el.el; 
    ctr=ctr.el;
    let containerTop, containerBottom, elemTop, elemBottom;

    //Portion visible of the container
    containerTop = ctr.getY();
    containerBottom = containerTop + ctr.getHeight();
    //Boundaries of the element
    elemTop = el.getY();
    elemBottom = elemTop + el.getHeight();
    //True if the element is completly shown        
    return ((elemBottom <= containerBottom) && (elemTop >= containerTop));
}

sources : Сенча Форум 2012

...