Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #31 (permalink)  
Старый 31.01.2016, 19:49
Профессор
Отправить личное сообщение для Teamur Посмотреть профиль Найти все сообщения от Teamur
 
Регистрация: 08.06.2015
Сообщений: 206

Может сделать своеобразный счетчик кликов мышью?
А получение номера элемента выполнять ПРЕДВАРИТЕЛЬНО, еще ДО кликов.
Первый клик - присваиваем переменной a номер, полученный предварительно при наведении.
Далее следуя за курсором, подсвечиваем элементы от a до текущего элемента, над которым находится курсор, постоянно обновляя переменную b
Слова словами, но я уверен, что оптимальное решение задачи займет строк 15-20.

А здесь нечто похожее, но реализованное на CSS:
https://jsfiddle.net/hma21mxm/
Но хотелось бы обойтись без input-ов, label-ов.
Только div-ы.
Все, что я могу на данный момент - предлагать хоть что-то, имеющее отношение к теме.

Последний раз редактировалось Teamur, 31.01.2016 в 19:57.
Ответить с цитированием
  #32 (permalink)  
Старый 31.01.2016, 19:54
Аватар для DynkanMaclaud
Профессор
Отправить личное сообщение для DynkanMaclaud Посмотреть профиль Найти все сообщения от DynkanMaclaud
 
Регистрация: 08.08.2014
Сообщений: 261

Teamur,
https://jsfiddle.net/daniilKhanin/r48q2o6e/1/
да уж... когда начинал писать не думал что такой ГО...код получится)))))
Ответить с цитированием
  #33 (permalink)  
Старый 31.01.2016, 19:59
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

DynkanMaclaud,
сложно вернуть синий фон за курсором, осообенно если блоки в 2 ряда.
Ответить с цитированием
  #34 (permalink)  
Старый 31.01.2016, 20:02
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

Сообщение от рони Посмотреть сообщение
что - то этого не наблюдаю
Да вроде есть

Если я правильно понял автора, то это когда нажимаем любой элемент, растягиваем на n элементов вправо(влево), а затем убираем курсор за пределы контейнера, то синяя область исчезает.
Ответить с цитированием
  #35 (permalink)  
Старый 31.01.2016, 20:15
Профессор
Отправить личное сообщение для Teamur Посмотреть профиль Найти все сообщения от Teamur
 
Регистрация: 08.06.2015
Сообщений: 206

destus,
Верно.

DynkanMaclaud,
синяя область должна следовать за курсором пока вы не совершите второй клик, но в пределах контейнера. Другими словами, если увести курсор со второго ряда на первый, то синька со второго ряда пропадет, а будет уже на первом ряду у курсора, естественно при этом цепь синих элементов не должна нигде прерываться.

Последний раз редактировалось Teamur, 31.01.2016 в 20:18.
Ответить с цитированием
  #36 (permalink)  
Старый 31.01.2016, 20:16
Аватар для DynkanMaclaud
Профессор
Отправить личное сообщение для DynkanMaclaud Посмотреть профиль Найти все сообщения от DynkanMaclaud
 
Регистрация: 08.08.2014
Сообщений: 261

рони,
Teamur, исправил https://jsfiddle.net/daniilKhanin/r48q2o6e/3/
Ответить с цитированием
  #37 (permalink)  
Старый 31.01.2016, 20:17
Аватар для DynkanMaclaud
Профессор
Отправить личное сообщение для DynkanMaclaud Посмотреть профиль Найти все сообщения от DynkanMaclaud
 
Регистрация: 08.08.2014
Сообщений: 261

Эххх вот если бы рони,
показал бы свой пример, где я уверен код был бы не таким ужасным...
Ответить с цитированием
  #38 (permalink)  
Старый 31.01.2016, 20:24
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Сообщение от DynkanMaclaud
показал бы свой пример
я уже показывал выше, если вы не смотрели ...
Сообщение от DynkanMaclaud
рони,
Teamur, исправил
ок
Ответить с цитированием
  #39 (permalink)  
Старый 31.01.2016, 20:24
Профессор
Отправить личное сообщение для Teamur Посмотреть профиль Найти все сообщения от Teamur
 
Регистрация: 08.06.2015
Сообщений: 206

DynkanMaclaud, спасибо
Практически как надо.
Осталось это:
Первый клик -> Отводим курсор -> Выводим за контейнер ->

-> синюю область нужно скрыть, когда курсор покидает контейнер, при условии, что второй клик еще не совершен.
При этом зеленый элемент останется зеленым.
Тем самым мы показываем, что пользователь выбрал начальный элемент, но еще не указал конечный, а так как курсор выведен за контейнер, зачем показывать синьку. Роль синей области - визуализация выделения, когда курсор находится в пределах контейнера
Если же выделение создано (есть и зеленый и красный элементы), то и синька останется даже если курсор покинет контейнер.

Последний раз редактировалось Teamur, 31.01.2016 в 20:40.
Ответить с цитированием
  #40 (permalink)  
Старый 31.01.2016, 20:37
Аватар для DynkanMaclaud
Профессор
Отправить личное сообщение для DynkanMaclaud Посмотреть профиль Найти все сообщения от DynkanMaclaud
 
Регистрация: 08.08.2014
Сообщений: 261

Teamur,
не понял я что-то, тоесть события mouseover вообще не должно быть? или синяя область должна только быть на том элементе на который наведен курсор?

Последний раз редактировалось DynkanMaclaud, 31.01.2016 в 20:41.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
jq выбор элементов межу двумя другими diakon Общие вопросы Javascript 9 10.09.2013 14:58