Покинул форум
Сообщений всего: 88
Дата рег-ции: Окт. 2012 Откуда: Одесса, украина
Помог: 0 раз(а)
есть матрица 10х10 из 100 дивов, когда провожу над дивами курсором - они меняют цвет, но нужно сделать так, чтоб по клику выбранный див менялся обратно.
Проблема в том, что чтоб дойти до нужного дива - я провожу курсором над остальными дивами, и если мне не нужно на них менять цвет - он всё равно меняется.
как сделать так, чтоб например при нажатом ctrl свойство mouseover срабатывало, а без нажатого ctrl - можно было работать кликом?
SAD
Отправлено: 13 Февраля, 2014 - 21:23:22
Постоянный участник
Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009 Откуда: Днепропетровск, Украина
Покинул форум
Сообщений всего: 88
Дата рег-ции: Окт. 2012 Откуда: Одесса, украина
Помог: 0 раз(а)
Объясните, пожалуйста, что тут делает этот код?
Barakuda
Отправлено: 14 Февраля, 2014 - 02:27:12
Гость
Покинул форум
Сообщений всего: 88
Дата рег-ции: Окт. 2012 Откуда: Одесса, украина
Помог: 0 раз(а)
Вы не совсем правильно поняли суть моего вопроса. Мне нужно чтоб замененный класс сохранялся таковым.
Я делаю редактор карты, мне нужно чтоб я занес курсор над полем, нажал кнопку, провел линию - и дивы над которыми я провел курсором - поменяли цвет. Далее я отпустил кнопку, и спокойно убрал курсор с поля. Потом снова занес, кликнуд на нужном диве один раз, он поменял свой цвет, и я снова убрал курсор с поля.. вот как то так...
идеально было это чтоб mousemove (ну или hover) срабатывали только при click ЛКМ... вот это я безуспешно пытался реализовать.
nerv
Отправлено: 14 Февраля, 2014 - 09:37:48
Посетитель
Покинул форум
Сообщений всего: 407
Дата рег-ции: Февр. 2013 Откуда: Россия
----- Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
MAXUS
Отправлено: 14 Февраля, 2014 - 11:27:36
Посетитель
Покинул форум
Сообщений всего: 329
Дата рег-ции: Апр. 2011
Помог: 7 раз(а)
Barakuda пишет:
Вы не совсем правильно поняли суть моего вопроса. Мне нужно чтоб замененный класс сохранялся таковым.
Я делаю редактор карты, мне нужно чтоб я занес курсор над полем, нажал кнопку, провел линию - и дивы над которыми я провел курсором - поменяли цвет. Далее я отпустил кнопку, и спокойно убрал курсор с поля. Потом снова занес, кликнуд на нужном диве один раз, он поменял свой цвет, и я снова убрал курсор с поля.. вот как то так...
идеально было это чтоб mousemove (ну или hover) срабатывали только при click ЛКМ... вот это я безуспешно пытался реализовать.
А линия кривая что ли может быть? Т.е. можно вообще будет все закрасить? (Добавление)
Barakuda пишет:
есть матрица 10х10 из 100 дивов, когда провожу над дивами курсором - они меняют цвет, но нужно сделать так, чтоб по клику выбранный див менялся обратно.
Проблема в том, что чтоб дойти до нужного дива - я провожу курсором над остальными дивами, и если мне не нужно на них менять цвет - он всё равно меняется.
как сделать так, чтоб например при нажатом ctrl свойство mouseover срабатывало, а без нажатого ctrl - можно было работать кликом?
Как минимум:
1. Надо вводить переменную, скажем status, которая устанавливается в true при mousedown на диве и откатывается в false при mouseup на document. Также при mousedown на диве он должен (судя по всему) краситься или обесцвечиваться в зависимости от текущего состояния (но тут масса нюансов).
2. Вводить обработчик события onmousemove или на document или на родительский div-контейнер. Обработчик должен красить div-ы только если переменная status==true, а target=дочерний div (т.е. любой из тех, которые можно красить), и ничего не делать, если status==false.
Вощем, задача на самом деле не из простых. Тупо даже на том, что драг надо будет грамотно отменить, уже нюансы начинаются.
Покинул форум
Сообщений всего: 88
Дата рег-ции: Окт. 2012 Откуда: Одесса, украина
Помог: 0 раз(а)
MAXUS, вот Вы меня правильно поняли. Я и делал таким образом, вводил переменную check, которая меняла свое значение, но привязывал её к чекбоксу, и проверял через if, но так - ничего не работало...
ведь если у меня происходит изменение переменной ниже кода функции, который отвечает за выбор клика или маусовера, переменная работать будет ? или нет ?
точнее сначала я сделал так, чтоб читалось состояние чекбокса, потом, когда это не работало, я уже ввел переменную check, которая меняла состояние при событии .change у чекбокса.
Покинул форум
Сообщений всего: 88
Дата рег-ции: Окт. 2012 Откуда: Одесса, украина
Помог: 0 раз(а)
MAXUS, мне кажется что решение с применением jquery проще хотя бы тем, что более понятен при листинге программы ) ну и экономия байтов тоже важна, хоть не столь актуальна как в девяностых
MAXUS
Отправлено: 18 Февраля, 2014 - 04:29:58
Посетитель
Покинул форум
Сообщений всего: 329
Дата рег-ции: Апр. 2011
Помог: 7 раз(а)
Barakuda пишет:
MAXUS, мне кажется что решение с применением jquery проще хотя бы тем, что более понятен при листинге программы ) ну и экономия байтов тоже важна, хоть не столь актуальна как в девяностых
О какой экономии байтов идет речь?! Библиотека jq 1.9 весила больше 200 Kb, 1.11 весит 94 Kb (заметно оптимизировали, о чем этот говорит?), 2.1 - 81 Kb... В 200-300 Kb, по хорошему, в среднем вся страница вместе с картинками должна умещаться, не больше (по моим представлениям). Это не аргумент, кмк. В данном случае вместо почти 100 Kb мы имеем реально байты. Особенно, если учесть нижеследующее.
А что касается листинга... В листинге проще. И то, если не понимать, где там что. А на самом деле листинг, который соответствует приведенному у VenZell коду jq - это ровно вот эти строки:
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.