Я создаю динамический гибкий недельный календарь, используя Twitter Bootstrap.
Здесь моя текущая реализация: http://jsfiddle.net/dvirazulay/Lhe7C/ (было немного длиннее, чтобы вставить здесь полностью)
И вот текущий скриншот:
То, что я пытаюсь достичь, - это дизайн, который будет полностью динамичным - генерация исходного представления из моего back-end не проблема, но немного сложна, так как моя текущая реализация использует таблицы. Я боюсь, что будет трудно поддерживать его на стороне JavaScript, т.е. Удалить события/добавить их на лету.
Очевидно, я выбрал таблицы, поскольку это имело смысл для меня - недельный календарь - это в основном таблица. Я опишу свой дизайн:
- Событие может занимать более 30 минут, поэтому я использую
rowspan
, чтобы определить, сколько часов он должен охватывать. - Может быть два конфликтующих события (я не допускаю больше двух). Как и в настоящее время, они отображаются рядом друг с другом, каждый из которых занимает 50% от ширины события и занимает столько же высоты, сколько и должен представлять конечное время.
- На внутренней стороне, я вычисляю, сколько
td
мне нужно пропустить, чтобы не иметь дополнительных столбцов в конце таблицы (посколькуrowspan
подталкивает некоторые вправо)
Я задаю следующие вопросы:
- Это правильный подход?
- Должен ли я применять одну и ту же внутреннюю логику к интерфейсу и пересчитать сумму
tr
/td
для отображения в соответствии с количеством событий, которые у меня есть, или есть лучшее решение для это?
В идеале, хороший ответ должен описывать, как обрабатывать события на стороне интерфейса без осложнений или альтернативный (отзывчивый!) дизайн для этой проблемы.
Я не хочу использовать существующий плагин, так как я искал и пробовал несколько из них, и я хочу, чтобы он был очень легким, но если у вас есть большое предложение для тех, кто выполняет требования - я бы люблю проверять! (jQuery недельный календарь слишком медленный и загроможден, например)
Примечание. Я не намерен поддерживать браузеры старше IE9.