Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #81 (permalink)  
Старый 11.08.2019, 18:06
Аватар для Блондинка
Профессор
Отправить личное сообщение для Блондинка Посмотреть профиль Найти все сообщения от Блондинка
 
Регистрация: 24.02.2019
Сообщений: 806

на этом форуме кто нибудь может объяснить как в элементы с определенными id вставить соответствующие компоненты даты? при наличии такого hrml-кода...
<!DOCTYPE html>
<html lang="ru">
 <head>
  <meta charset="utf-8">
  <title></title>
  <style>
   div {
    font: 14px serif;
    border: 1px solid #ccc;
    padding: 5px;
    margin-bottom: 5px;
    text-align: center;
   }
  </<style>
  <script>
   document.addEventListener('DOMContentLoader', function() {
   var d = new Date();
   var days = "Воскресенье Понедельник Вторник Среда Четверг Пятница Суббота".split("  ");
   document.querySelector('day').textContent = daus[
   d.getDay()];
   });
  </script>
 </head>
 <body>
  <div id="hours"></div>
  <div id="minutes"></div>
  <div id="seconds"></div>
  <div id="day"></div>
  <div id="date"></div>
  <div id="month"></div>
  <div id="month_name"></div>
  <div id="year"></div>
 </body>
</html>
Ответить с цитированием
  #82 (permalink)  
Старый 11.08.2019, 21:28
Аватар для Блондинка
Профессор
Отправить личное сообщение для Блондинка Посмотреть профиль Найти все сообщения от Блондинка
 
Регистрация: 24.02.2019
Сообщений: 806

Русский, а ты походу и сам не знаешь...
Ответить с цитированием
  #83 (permalink)  
Старый 21.08.2019, 22:19
Аватар для Блондинка
Профессор
Отправить личное сообщение для Блондинка Посмотреть профиль Найти все сообщения от Блондинка
 
Регистрация: 24.02.2019
Сообщений: 806

Есть два поля ввода для даты, как в них установить конкретные число и месяц, и чтобы год был установлен текущий, другими словами если число и месяц установлены например 1 янв, то в поле должно отображаться 1 янв 2019, а с наступлением 20 г, изменится на 1 янв 2020
<style>Input[type=date]::-webkit-calendar-picker-indicator { display: none;  }</style>
<input type="date" id="startdata"><input type="date" id="stopdata">
Ответить с цитированием
  #84 (permalink)  
Старый 22.08.2019, 02:46
Аватар для Блондинка
Профессор
Отправить личное сообщение для Блондинка Посмотреть профиль Найти все сообщения от Блондинка
 
Регистрация: 24.02.2019
Сообщений: 806

как показать сегод число знаю
<script> 
document.addEventListener('DOMContentLoaded', function() { 
    var d = new Date(); 
    document.querySelector('#calendar').valueAsDate = d; 
}); 
</script>
<input id="calendar" type="date"/>

а как присвоить атрибуту value значение конкретных значений числа и месяца, а году установить значение используя метод getFyllYear?
Ответить с цитированием
  #85 (permalink)  
Старый 25.05.2021, 18:23
Аватар для Блондинка
Профессор
Отправить личное сообщение для Блондинка Посмотреть профиль Найти все сообщения от Блондинка
 
Регистрация: 24.02.2019
Сообщений: 806

Сообщение от рони Посмотреть сообщение
Блондинка,
можно так ...
<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>Calendar</title>
  </head>
  <body>
    <style>

      .day {
        border: 1px solid #ccc;
        width: 30px;
        line-height: 30px;
        text-align: center;
        margin: 1px;
        background-color: #B0C4DE;
      }
      .month {
          display: flex;
          flex-wrap:wrap;
          width: 238px;
          height: 238px;
          justify-content: space-around;
          margin: 30px auto;
      }
      .month.vert{
          flex-direction: column;
      }
      .day:nth-child(7n + 6), .day:nth-child(7n + 7){
         background-color:  #FF85C6;
      }
      .day:nth-child(-n + 7) {
          color: #FFFFFF;
      }

    </style>
    <div class="month"></div>
    <script>
      var calendar = {
        update: function(year, month) {
          var stepDay = new Date(year, month, 1);
          stepDay.setDate(stepDay.getDate() - ((stepDay.getDay()||7) - 1));
          var lastDay = new Date(stepDay);
          lastDay.setDate(lastDay.getDate() + 41);
          while (stepDay <= lastDay) {
            this.days.push(stepDay.getDate());
            stepDay.setHours(24);
          }
        },
        render: function() {
          var html = '';
          for (var i = 0; i < this.days.length; i++) {
            html += '<div class="day">' + this.days[i] + '</div>';
          }
          this.element.innerHTML = html;
        },
        toggle: function() {
          this.element.classList.toggle('vert');
        },
      };
      var today = new Date(),
        thisYear = today.getFullYear(),
        thisMonth = today.getMonth();
      calendar.days = ['Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб', 'Вс'];

      calendar.element = document.querySelector('.month');
      calendar.element.addEventListener('click', function() {
        calendar.toggle();
      });
      calendar.update(thisYear, thisMonth);
      calendar.render();
    </script>
  </body>
</html>
рони,третьи сутки пытаюсь разобраться почему флексбокс не срабатывает, тут в запускаемом примере нормально, а в блокноте всё плывёт...
Ответить с цитированием
  #86 (permalink)  
Старый 25.05.2021, 18:35
Аватар для Блондинка
Профессор
Отправить личное сообщение для Блондинка Посмотреть профиль Найти все сообщения от Блондинка
 
Регистрация: 24.02.2019
Сообщений: 806

по идее должно всё растягиваться, но фигушки, не могу ничего понять, по идее блок month и month vert всегда должны быть квадратом, а блоки week растягиваться, но на деле хер что растягивается, по идее если если блоки week сделать тоже флекс контейнерами то блоки day должны растягиваться но ничего не срабатывает...

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" />
        <title>calendar-rotate</title>
    <style type="text/css">
      #calendar_rotate {
        border: 1px solid hsl(0,0%,66%);
        padding: 5px;
        display: inline-block;
        width: 373px;
      }
      #navigation_panel { 
        border: 1px solid hsl(0,0%,66%);
        padding: 5px 10px;
        margin: 0 0 5px 0;
        display: inline-block;
        white-space: nowrap;
      }
      #background_month {
      background-color: hsl(210,100%,85%);
      display: inline-block; }
      #month_select {
      background-color: transparent;
      color: hsl(210,100%,45%);
      font: 14px serif;
      border: 1px solid hsl(210,100%,45%); }
      .month {
        border: 1px solid hsl(0,0%,66%);
        display: flex;
        flex-flow: column wrap;
        justify-content: space-between;
        width: 367px;
        height: 367px;
        padding: 1px;
      }
      .month.vert {
        border: 1px solid #ff0;
        height auto;
        display: flex;
        justify-content: space-between;
      }
      .month.vert .week {
        border: 1px solid #090;
        flex: 1 1 auto;
        align-self: stretch;
      }
      .month.vert .week .day {
        height 11.52%;
      }
      .month .week {
        border: 1px solid #00a;
        flex: 1 1 auto;
        align-self: stretch;
        width auto;
        height auto;
      }
      .month .week .day {
        width 1.947em;;
        height 1.85em;
      }
      .month,
      .month.vert .week,
      .day {
        display: inline-block;
        width: auto;
      }
      .month.vert .day {
        display: block;
        width: 1.85em;
      }
      .day {
        border: 1px solid hsl(0,0%,66%);
        line-height: 35px;
        text-align: center;
        padding: 3.5px;
        margin: 1px;
        background-color: hsl(210,100%,90%);
        color: hsl(210,100%,50%);
      }
      .day:nth-child(7n + 6), .day:nth-child(7n + 7) {
        background-color: hsl(348,100%,90%);
        color: hsl(348,100%,50%);
      }
      select {
        width: 109px;
        height: 29.5px;
      }
      input { 
        border: 1px solid hsl(0,0%,66%);
        width: 54px;
        height: 25.5px;display: inline-block;
        text-align: center;
      }
      #month_minus, #year_minus { 
      width: 28px;
      text-align: center;
      border-radius: 12px 0 0 12px / 10px 0 0 10px;
      margin: 0 -6px 0 0;
      position: relative; top: 1.5px; }
      #month_plus, #year_plus {
      width: 28px;
      text-align: center;
      border-radius: 0 12px 12px 0 / 0 10px 10px 0;
      margin: 0 0 0 -6px;
      position: relative; top: 1.5px; }
      #month_minus, #month_plus, #year_minus, #year_plus, #year_input {
      background-color: hsl(210,100%,85%);
      color: hsl(210,100%,45%);
      font: 14px serif;
      border: 1px solid hsl(210,100%,45%);}
    </style>
    </head>
    <body>
        <div id="calendar_rotate">
        <div id="navigation_panel">
        <button id="month_minus">◀</button>
        <span id="background_month"><select id="month_select"></select></span>
        <button id="month_plus">▶</button>
        <button id="year_minus">◀</button>
        <input id="year_input" type="number" size="4" value=""/> 
        <button id="year_plus">▶</button>
        <button id="month_rotate">➙</button>
        </div>
        <div class="month vert"></div>
        <script>
          var calendar = {
            update: function(year, month) {
              this.days.length = 7;
              var stepDay = new Date(year, month, 1);
              stepDay.setDate(stepDay.getDate() + 0 - ((stepDay.getDay() + 6) % 7));
              var lastDay = new Date(year, month + 1, 0);
              lastDay.setDate(lastDay.getDate() + 6 - ((lastDay.getDay() + 6) % 7));
              while (stepDay <= lastDay) {
                this.days.push(stepDay.getDate());
                stepDay.setHours(24);
              }
            },
            render: function() {
              var html = '';
              for (var i = 0, j = 0; i < this.days.length; j = ++i % 7) {
                if (j == 0) html += '<div class="week">';
                html += '<div class="day">' + this.days[i] + '</div>';
                if (j == 6) html += '</div>';
              }
              this.element.innerHTML = html;
            },
            toggle: function() {
              this.element.classList.toggle('vert');
            },
          };
          var today = new Date(),
            thisYear = today.getFullYear(),
            thisMonth = today.getMonth();
          calendar.days = ['Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб', 'Вс'];
          selector = document.getElementById('month_select');
          month_list = ['Январь', 'Февраль', 'Март', 'Апрель', ' Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'];
          for (let i = 0; i < month_list.length; i++){
            selector.options[i] = new Option(month_list[i], i);
          }
          selector.selectedIndex = thisMonth;
          selector.addEventListener('change', load);
          document.getElementById('year_input').addEventListener('change', load);
          calendar.element = document.querySelector('.month');
          document.getElementById('month_rotate').addEventListener('click', function() {
            calendar.toggle();
          });
          function load(){
              let year = document.getElementById('year_input').value;
              let month = selector.selectedIndex;
              calendar.update(year, month);
              calendar.render();
          }
          document.addEventListener("DOMContentLoaded", ()=>{
            document.getElementById('year_input').value = thisYear;
            load();
          });
          
          
        </script>
      </div>
    </body>
</html>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать калькулятор и с чего начать? A.P. Yellowman Общие вопросы Javascript 3 15.11.2013 21:32
Как сделать реакцию на изменение любого элемента формы. Mik Events/DOM/Window 3 28.07.2011 08:52
Как убрать hover? Либо как сделать стрелки статичными? krusty36 Элементы интерфейса 1 13.07.2011 09:20
Как сделать, чтобы при наведении на кнопку справа от нее появлялись текстовые ссылки? Tass Общие вопросы Javascript 7 17.02.2011 09:06
Вопрос как сделать эту панельку Определённых размеров и свойств. jei jQuery 3 09.06.2009 19:14