Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #61 (permalink)  
Старый 28.07.2019, 00:30
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Блондинка
думаю что тут ничего не надо трогать в скрипте, достаточно дополнить стили
Причем тут стили, в месяцах разное количество дней и начинаться месяц может как с понедельника, так и с воскресенья, то есть разное смещение вниз будет. А значит высота календаря будет не постоянна. Именно поэтому и фиксируют его размер, добавляя в вывод дни предыдущего и последующего месяцев.
Ответить с цитированием
  #62 (permalink)  
Старый 28.07.2019, 00:37
Аватар для Блондинка
Профессор
Отправить личное сообщение для Блондинка Посмотреть профиль Найти все сообщения от Блондинка
 
Регистрация: 24.02.2019
Сообщений: 806

если установить у таблицы высоту равную той что будет при 6 неделях, будет просто разная высота строк-ячеек при разном количестве недель, и я в чём то не права?
Ответить с цитированием
  #63 (permalink)  
Старый 28.07.2019, 00:41
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

А вы как думаете? Откройте системный календарь и посмотрите на него - его размер по высоте определяется количеством дней месяца. А высота ячеек его как раз постоянна.
Ответить с цитированием
  #64 (permalink)  
Старый 28.07.2019, 01:58
Аватар для Блондинка
Профессор
Отправить личное сообщение для Блондинка Посмотреть профиль Найти все сообщения от Блондинка
 
Регистрация: 24.02.2019
Сообщений: 806

laimas,
я бы предпочла, чтобы высота блока с элементами управления была постоянной, независимо от наличия скрытой кнопки "сегодня" во второй строчке, и выпавнивалось по вертикали, и таблица 5х7, 6х7, 7х7 была одной высоты, а высота строк-ячеек растягивалась в случае необходимости...
Ответить с цитированием
  #65 (permalink)  
Старый 28.07.2019, 02:00
Аватар для Блондинка
Профессор
Отправить личное сообщение для Блондинка Посмотреть профиль Найти все сообщения от Блондинка
 
Регистрация: 24.02.2019
Сообщений: 806

...хотя о чём разговор, если даже на платной основе никто не берется сделать то, о чём я просила выше...
Ответить с цитированием
  #66 (permalink)  
Старый 28.07.2019, 02:05
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Блондинка
я бы предпочла, чтобы высота блока с элементами управления была постоянной
А я о чем? В календаре вашем, о котором вы говорите, количество строк "заточено" по текущий месяц, и получится, в зависимости от количества дней и дня недели начала месяца, это количество будет разным.

Собственно, грубо говоря, весь календарь, это:

<html>
<head>
<meta charset="utf-8">
<style>
table {
    border-collapse: separate;
}
td {
    padding: 2px 4px;
    border: 1px solid #c6c6c6;
    text-align: right;
    color: #000;
    font: 12px Arial;
}
tr:first-child td {
    background-color: #d0d0d0;
    border-color: #999;
}
tr td:last-child {
    color: #f70707;
}
tr:first-child td:last-child {
    border-color: #f06565;
    background-color: #fdafaf;
    color: #000;
}
td.gray {
    border-color: #cecece;
    background-color: #e6e6e6;
    color: #999!important
}
td.today {
    background-color: #f6fdb5;
}
</style>
</head>
<body>
<table>
<tr><td>Пн</td><td>Вт</td><td>Ср</td><td>Чт</td><td>Пт</td><td>Сб</td><td>Вс</td></tr>
</table>
<script>
var d = new Date(),
    currentYear = d.getFullYear(),
    currentMonth = d.getMonth(),
    today = d.getDate(),
    d = new Date(currentYear, currentMonth, 1),
    day = (d.getDay()||7)-1,
    d = new Date(currentYear, currentMonth, 1 - day),
    startDate = d.getDate(),
    tbl = document.querySelector('table'),
    row, cell, date,
    n = 42; //даты календаря как 7х6
    
   
for(var i=0; i<n; ++i) {
    if(!(i % 7)) row = tbl.insertRow(-1);
    cell = row.insertCell(-1);
    d = new Date(currentYear, currentMonth, startDate + i);
    date = d.getDate();
    cell.textContent = date; 
    if(date==today && currentMonth==d.getMonth() && currentYear==d.getFullYear()) cell.classList.add("today");
    if(d.getMonth() != currentMonth) cell.classList.add("gray");
}
</script>
</body>
</html>


Вы можете стилями разукрасить календарь как угодно, какие угодно размеры ячеек его определять, но независимо от месяца дни его будут вписаны в один и тот же размер.

Последний раз редактировалось laimas, 28.07.2019 в 02:08.
Ответить с цитированием
  #67 (permalink)  
Старый 28.07.2019, 03:03
Аватар для Блондинка
Профессор
Отправить личное сообщение для Блондинка Посмотреть профиль Найти все сообщения от Блондинка
 
Регистрация: 24.02.2019
Сообщений: 806

laimas,
если в феврале 2010 года 4 строки-недели, в текущем 5,в сентябре 6,что будет если задать фиксированную высоту таблицы?
Ответить с цитированием
  #68 (permalink)  
Старый 28.07.2019, 03:08
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Блондинка
что будет если задать фиксированную высоту таблицы?
Календарь будет менять вид. Не высотой таблицы нужно манипулировать, ибо ячейки календаря независимо от месяца должны иметь один и тот же размер, а фиксировать число ячеек календаря. А вписать все месяцы так, чтобы соблюсти эти условия можно только в минимум 7х6 (без учета шапки).

Вы вольны поступать как вам хочется, но календарь который "скачет" по высоте, не самое лучше зрелище.

Последний раз редактировалось laimas, 28.07.2019 в 03:10.
Ответить с цитированием
  #69 (permalink)  
Старый 28.07.2019, 03:35
Аватар для Блондинка
Профессор
Отправить личное сообщение для Блондинка Посмотреть профиль Найти все сообщения от Блондинка
 
Регистрация: 24.02.2019
Сообщений: 806

Сообщение от laimas
Календарь будет менять вид.
как будет менять вид? высота таблицы останется неизменной, а высоту строк браузер будет вычислять явтоматически?
Ответить с цитированием
  #70 (permalink)  
Старый 28.07.2019, 05:16
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

То есть, вычисление новых размеров, а значит неизбежное их изменение, это никак не изменение вида?

Мне в общем то все равно, считаете это нормальным, ради бога, я же вам не запрещаю. Но интерфейс календаря должен быть таким, что даже стрелка на кнопках назад/вперед под курсором не должна менять позицию при сменах в календаре, иначе грош цена такому интерфейсу.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите доработать скрипт хештега alex72bel Общие вопросы Javascript 1 20.09.2015 23:20
Помогите доработать скрипт меню Фартовый Оффтопик 7 27.11.2014 14:07
Помогите доработать скрипт Joannes Общие вопросы Javascript 0 08.09.2013 21:21
Помогите доработать скрипт Kalashmet Ваши сайты и скрипты 2 02.09.2013 19:50
Помогите доработать скрипт jenya jQuery 12 01.11.2011 09:27