Jump to content

by chris

User
  • Posts

    400
  • Joined

  • Last visited

  • Days Won

    30

Posts posted by by chris

  1. Мне проект интересен, так как хочу поднять свой инглиш до крепкого intermediate уровня. Нужен товарищ знающий английский. Реализацию таблиц в общих чертах понял, но нужно более подробное разъяснение.

  2. 1 час назад, volshebnyi сказал:

    Подскажите, пожалуйста, что я делаю не так?

    Все из-за того, что инструкция объявления переменной возвращает null, а тип null равен object. Условие возвращает true, т.к тип переменной backwardButton не равен типу 'undefined'. Далее попытка зарегистрировать обработчик события на объекте null и это приводит к ошибке (TypeError: Cannot read property 'addEventListener' of null.) - целевой объект имеет не ожидаемый тип . Поэтому, для лучшего понимая новичку, в условной инструкции правильнее сравнивать целевой объект с null.

    if (backwardButton !== null) {
      // тело условия
    }

     

  3. 1 час назад, DivMan сказал:

    Я изучал, что такое делегирование 

    Клика на элемент table достаточно

    var table = document.getElementById('table');
    
    table.onclick = function(e) {
     var node = e.target;
      
     if (node.tagName !== 'TD') {
     	node = node.parentElement;
     }
     node.style.backgroundColor = 'black';
    }

     

    1 час назад, DivMan сказал:

    Сделал, что бы выводилось сообщение, кто выиграл и ничью

    Я имел ввиду, что логика самой игры - это незнание следующего хода оппонента (человека или бота). Сейчас алгоритм крестиков-ноликов в коде отсутствует:(

  4. 6 часов назад, Igor Schnaider сказал:

    Предположу, что это что-то из разряда того,

    Ага, что-то похожее, только более узкоспециализированное)

    @Николя223, np

    Вот миксин меню с рекурсией для вложенных. Писал давно, но код пока не подводил)

    //- MenuList
    
    - var i = 0
    
    mixin menuList(items, cls)
      - var cls = cls.class;
    
      ul(class= cls + '__ul')
        each item, index in items
          if item.sub !== undefined
            li(class= cls + '__list')
              a(class= cls + '__link', href= item.href)= item.title
              +menuListSub(item.sub, cls)
          else
            li(class= cls + '__list')
              a(class= cls + '__link', href= item.href)= item.title
    
    mixin menuListSub(sub, cls)
      - var ink = ++i
    
      ul(class= cls + '__sub-' + ink)
        - var items = sub
    
        - for (var item in items)
          if items[item].sub !== undefined
            li(class= cls + '__list ' + cls + '__list--sub-' + ink)
              a(class= cls + '__link ' + cls + '__link--sub-' + ink, href= items[item].href)= items[item].title
              +menuListSub(items[item].sub, cls)
          else
              li(class= cls + '__list ' + cls + '__list--sub-' + ink)
                a(class= cls + '__link ' + cls + '__link--sub-' + ink, href= items[item].href)= items[item].title

    Вот блок самого меню, он то же в миксине для передачи параметров.

    mixin mainmenu(params)
      - var bclass = params.bclass || 'mainmenu'
      - var mclass = !params.mclass ? '' : bclass + params.mclass
      div(class= bclass + ' ' + mclass)
        nav(class= bclass + '__nav ')
          +menuList(
          {
            '1': {
              'title': 'Главная',
              'href': 'index.html',
            },
            '3': {
              'title': 'Каталог',
              'href': 'catalog.html'
            },
            '4': {
              'title': 'О нас',
              'href': 'o-nas.html'
            },
            '5': {
              'title': 'Оплата и доставка',
              'href': 'oplata-and-dostavka.html'
            },
            '6': {
              'title': 'Блог',
              'href': 'blog.html'
            },
            '7': {
              'title': 'Контакты',
              'href': 'contacts.html'
            }
          },
          {
            'class': bclass
          })

    А вот так миксин инклюдится на нужных страницах

    include ../mainmenu/mainmenu
    +mainmenu({
    'bclass': 'mainmenu', // класс блока
    'mclass': '--top' // класс модификатора
    })

    Думаю показывать sass файл не стоит, так как там и так все понятно)

    Кстати, можно забыть про название jade, давно переименовали технологию в pug. Вот и срок домена jade-lang.com подошел к концу, теперь дока тут - https://pugjs.org/. Жаль только песочницы пока нет.

  5. 1 час назад, andrey7287 сказал:

    Что значит не пишем, у вас одна и та же разметка под все сайты ?

    Не совсем. Есть такие блоки которые на сайте присутствуют всегда, только в другой визуализации. Лучший пример главное меню. На jade написан миксин который принимает объект. Ключ название ссылки, значение - атрибут href, и еще ключ - класс модификатор меню. И таких блоков множество, если задуматься и абстрагировать блок для всех сайтов, то это избавляет от повторной писанины кода. Разметка не всегда совпадает, но 50% кода уже готово.

  6. 2 часа назад, alleclf сказал:

    На компьютере работает, на планшете нет.

     

    display: -webkit-flex;display: -ms-flexbox;display: flex;

    С префиксами работает везде, кроме ie9-

    Вариант без модуля флексбокс

    https://jsfiddle.net/jjzycey8/4/

    Вариант  - имитирование таблиц, должен работать во всех динозврах

    https://jsfiddle.net/jjzycey8/5/

  7. 11 минуту назад, andrey7287 сказал:

     Emmet`а с головой хватает.

    То же так думал, пока не стал использовать Jade. Отличие в том, что emmet позволяет писать разметку быстро с нуля. А на Jade мы эту разметку с нуля каждый раз не пишем. Так как jade поддерживает emmet, то можно писать эту же разметку еще быстрее.

     

    5 часов назад, Николя223 сказал:

    ungular

    первый?

  8. 40 минут назад, andrey7287 сказал:

    ЗЫ Зачем нужен Jade

    Jade + БЭМ + sass (в моем случае) + gulp не могу нарадоваться. Мне в канторе дают новый проект в разработку, я клонирую  шаблон с битбакета и 70% блоков уже подготовлены, остается только менять у них модификаторы чтобы привести к виду. Когда проект окончен, следовательно пуш в удаленный репозиторий новых шаблонизированных блоков. Таким образом работа происходит итеративно день за днем.

    Имхо, ребята, если человек решил найти себе наставника не особо политкорректно его отговаривать:)

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy