Получить rel у Div-ов которые в данный момент видны

Тема в разделе "JavaScript", создана пользователем Delitmeqq, 28 июн 2015.

Модераторы: ZiX
  1. Delitmeqq

    Delitmeqq Создатель

    Регистр.:
    1 дек 2012
    Сообщения:
    26
    Симпатии:
    1
    Здравствуйте.
    Друзья, нужна ваша помощь. Ситуация в следующем:

    http://jsfiddle.net/zrh1eLge/1/


    Как мне получить атрибуты rel всех дивов, которые в данный момент показаны в блоке «div id="example4"» при прекращении перетаскивания. Т.е. всех дивов, что видит наш глаз в момент события «dragstop»
    Уже замучился гуглить. Помогите пожалуйста.
    [​IMG]
     
  2. wwwxakep

    wwwxakep Создатель

    Регистр.:
    4 фев 2007
    Сообщения:
    28
    Симпатии:
    8
    Подключаешь
    Код:
    https://github.com/zeusdeux/isInViewport
    Собираешь:
    Код:
        $("#example4 div:in-viewport").each(function(){
            console.log($(this).attr("rel"));
        });
    
    P.S. забыл про сбор атрибутов.
     
    Последнее редактирование: 28 июн 2015
    Delitmeqq нравится это.
  3. Delitmeqq

    Delitmeqq Создатель

    Регистр.:
    1 дек 2012
    Сообщения:
    26
    Симпатии:
    1
    Спасибо большое.

    Простите, а если будет очень много таких квадратов, подойдет данное решение?
     
  4. wwwxakep

    wwwxakep Создатель

    Регистр.:
    4 фев 2007
    Сообщения:
    28
    Симпатии:
    8
    Подойдет для любого количества, вопрос здесь во времени поиска элементов. При огромном количестве элементов javascript-движок может грохнуть рабочий скрипт. А может и браузер зависнуть. Поэтому вопрос тестирования.
     
  5. BaBL

    BaBL Постоялец

    Регистр.:
    13 ноя 2012
    Сообщения:
    144
    Симпатии:
    87
    Я когда-то делал карту, когда еще не было d3 и openlayers, просто вычислял по координатам.

    У тебя, кстати, у DIV'ов одинаковые ID - так нельзя.

    Рекомендовал бы тебе сделать class="sector coord_10_6", по текущим координатам offset и зная размер блока (а они у тебя одинаковые, как я полагаю), ты просто вычисляешь координаты левого верхнего и правого нижнего. Чтобы обратиться ко всем надо сделать вложенный цикл от левого верхнего до нижнего правого и селектор с индексами: $('.coord_'+x+'_'_y).