Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Календарь. Интерфейс. (https://javascript.ru/forum/dom-window/25394-kalendar-interfejjs.html)

venzh 04.02.2012 04:33

Календарь. Интерфейс.
 
Всем здравствуйте.
Не часто обращаюсь за помощью.
Но вот столкнулся с задачкой мне не по зубам.

Есть календарь. Выводится не программно.

Вид такой:

<div align="center" class="height1Num" id="1405">14</div>
<div align="center" class="height1Num" id="1505">15</div>
<div align="center" class="height1Num" id="1605">16</div>
<div align="center" class="height1Num" id="1705">17</div>


Подсвечиваются только праздники и выходные.
+ подсказка: "Выберите интересующую дату".
После клика на дату загружаются мероприятия на выбранную дату.

Встала задача ИЗНАЧАЛЬНО подсветить мероприятия в календаре.
При этом: мероприятия могут накладывать друг на друга, пересекаться.
Длительность мероприятий от 2 до 7 дней.
Мероприятия с датами хранятся в БД.


На уровне интерфейса было придумано следующее решение подсветки.

Описал словесно, но лучше покажу:



Смотрится, хотя и не знаю как это реализовать.

Но при этом возник вопрос.

Не введет ли такой вид юзверя в заблуждение и ступор?
Что сведет на нет всю "красоту", заставит напрячься, и скорее всего он закроет окно.

Мне кажется, что "мышковод" (а он не думает в принципе) распознает выделенный блок как объект по которому он может кликнуть и посмотреть что поменялось.

И он НЕ БУДЕТ разбирать на какую дату щелкнуть. А это важно. Ведь (смотри картинку), если кликнуть по 15 - выведется 1 мероприятие. А по 16 и 17 - два.

Пользователи ресурса: от 25 до 45 лет, подавляющее большинство - неопытные юзеры.

Внимание, ВОПРОСЫ:

1. Имеет ли под собой почву мое опасение?

2. Какие еще варианты подсветки нескольких дат в календаре можете предложить?

Gvozd 04.02.2012 04:40

Задача интересная.
Сейчас накидаю набросок на вариацию как сделать более понятным для пользователя

venzh 04.02.2012 04:52

Задача, действительно, интересная. Но реализовать ее надо так, чтобы было, как говорил мой папа, ДУРАКОУСТОЙЧИВО.

Я вот не послушал его, сделал навороченные фильтры поиска мероприятия (9 независимых фильтров) и этот вариант был полностью забракован на стадии тестирования. Пользователи жали все подряд, в итоге жесткий фильтр - нет результатов поиска -> СТУПОР ЮЗЕРА.

Да и вообще на стадии тестирования мне стало понятно, что чем проще и понятнее - тем лучше. Пользователь не разбирается куда кликать, он смотрит результат клика.

Но это небольшой оффтопик.
Вернусь завтра.

Aetae 04.02.2012 05:06

Если придерживаться вертикального порядка, то имхо как-то так, простенько и понятно:
<style>
#all{ width:40px; text-align:center}
.class{ padding:3px 0 }
.class1 { background:#ddf }
.class2 { background:#dfd }
.class3 { background:#fdd }
</style>
<div id="all">
  <div>14</div>
  <div class="class class1">
    <div>15</div>
    <div class="class class2">
      <div class="class class3">
        <div>16</div>
      </div>
      <div>17</div>
    </div>
  </div>
</div>

Gvozd 04.02.2012 05:22

не. ниасилил пока что.
Хеь какая-то получается

T-sh 05.02.2012 03:48

я бы сделал по-другому: подсвечивать даты с событиями, но без рамок (имхо, более привлекательней выглядеть будет, но это только моё имхо :). подсвечивать только начало события (первый день), а при получении фокуса (наведение мыши, обращении через клавиатуру и т.д.) подсвечивать уже весь диапазон дат (от начала события до конца) и всплывающей подсказкой объяснять, что будет в эти дни.

Таким способом сразу отметается проблема с накладкой событий друг на друга.

function 05.02.2012 08:56

Так на этом форуме есть люди, играющие в ВОВ. Не ожидал:)

venzh 06.02.2012 02:25

to: T-sh

думаю - это самое верное решение в моем случае.
Честно дошел до него сам.
Но все равно!!!
Всем спсибо!!!!!

T-sh 08.02.2012 13:28

Цитата:

Сообщение от venzh (Сообщение 155652)
to: T-sh

думаю - это самое верное решение в моем случае.
Честно дошел до него сам.
Но все равно!!!
Всем спсибо!!!!!

да незачто :) я тоже до него не сам дошел.. такая система много где встречается и не известно, кто первый придумал)))


Часовой пояс GMT +3, время: 01:01.