• Js, как определить что пользователь доскроллил до низа страницы?

    yanis_kondakov
    @yanis_kondakov
    window.onscroll = function(ev) {
        if ((window.innerHeight + window.pageYOffset) >= document.body.offsetHeight) {
           //доскролил
        }
    };


    var lastScrollTop = 0;
    window.addEventListener("scroll", function(){ 
       var st = window.pageYOffset || document.documentElement.scrollTop; 
    
       if (st > lastScrollTop){
          // скролит вниз
       } else {
          // скролит вверх
       }
       lastScrollTop = st <= 0 ? 0 : st;
    }, false);
    Ответ написан
    Комментировать
  • Как грамотно реализовать интерактивную карту?

    Для того, чтобы вы могли выбирать какие-то блоки на вашей карте торгового центра, нужно:

    1. Карта в svg формате, причем при ее рисовании, каждый отдельный выделяемый блок должен быть отдельным слоем, для того чтобы в коде он помечался каким-то ID и был обособленным элементом.
    2. Когда вы вставите вашу SVG карту (а ее обязательно надо вставлять голым кодом, а не картинкой), у вас появится возможность обращаться к вашим элементам в svg как к обычному DOM, на эти блоки вы можете повесить обработчики, задавать им выделение, делать вообще все что угодно. Самое главное чтобы в самом SVG были все эти блоки со своими ID, какими-то данными, чтобы с помощью JS можно было спокойно к ним крепиться и обрабатывать.
    Ответ написан
    1 комментарий
  • Как вывести несколько вложенных объектов?

    0xD34F
    @0xD34F Куратор тега JavaScript
    const getValues = (obj, count) =>
      Object.values(obj).slice(0, count);

    или

    function getValues(obj, count) {
      const result = [];
    
      for (const k in obj) {
        if (result.length === count) {
          break;
        } else if (obj.hasOwnProperty(k)) {
          result.push(obj[k]);
        }
      }
    
      return result;
    }
    Ответ написан
    Комментировать
  • Как выполнить нужные условия до и после определенной даты JS?

    @alexalexes
    var now = new Date(); // Текущая дата
           var event_date = new Date ("Jul 17 2018 11:30:00 GMT+0300"); // дата события (+ часовой пояс, крайне обязательно)
           var dif_time = now.getTime() - event_date.getTime(); // разность в милисикундах по UTC (время приведено в один часовой пояс, крайне удачно)
           var duration = 60 * 60 * 1000; // время длительности вебинара в милисекундах
           switch(true)
           {
               case dif_time < 0:
                // действия до события
                break;
              case dif_time >= 0 && dif_time < duration:
                // действия во время события до окончания, (dif_time / 1000) - куда перематывать
                break;
              case dif_time >= duration:
                // действия после окончания события
                break;
           }
    Ответ написан
    4 комментария
  • Как сделать такую анимацию для блока?

    BRAGA96
    @BRAGA96
    Ответ написан
    Комментировать
  • Как правильно написать наследуемый класс (js)?

    class Parent {
        constructor() {
            this._name = 'Иван'
        }
    
        get name() {
             return this._name
         }
    }
    
    class Child extends Parent {
        constructor() {
            super()
            this._patronymic = 'Иванович'
        }
    
         get patronymic() {
             return this._patronymic
         }
    
         getMsg() {
             console.log(`${super.name} ${this.patronymic}`)
         }
     }
    
    const child = new Child() 
    
    child.getMsg()

    Посмотрите уроки codeDojo по наследованиям - Уроки
    Ответ написан
    Комментировать
  • Почему локалхост принудительно перекидывает на HTTPS?

    Markus_Kane
    @Markus_Kane
    Software Engineer
    У Вас локальные проекты находятся в домене .dev?
    .dev - это существующая доменная зона и она принадлежит Google. И в последней версии Chrome они по умолчанию включают HSTS для доменов в этой зоне и его нельзя для них отключить (по крайней мере я не нашел).
    Скорее всего это сделано для них самих и разработке внутри компании, но для всех остальных - подлянка :)

    Как вариант решения - переименуйте локальные домены. Сделайте для них зону не .dev, а .local, например.
    Ответ написан
    3 комментария
  • Какие проблемы решает качественный дизайн сайта?

    @Insayt
    Ну тут надо уточнить, что дизайн сайтов/приложений не является продуктом. Это услуга.
    "Картошка" - это продукт. "Доставка картошки" - это услуга. Вы предоставляете услуги, соответственно ставить вопросы надо исходя из понимая этого.

    Бизнес выбирает поставщика услуг по нескольким пунктам:
    1. Доступность - важно что бы было легко вас найти.
    2. Понимание проблем клиента - важно что бы поставщик услуг четко понимал как его деятельность скажется на нашем бизнесе.
    3. Скорость реакции сотрудников и их вежливость - тут думаю все понятно, если на email отвечают неделями и на от*бись, то такой поставщик услуг не получит заказ.


    В контексте вашего вопроса речь идёт о "Понимании проблем клиента".
    И тут важнее не написать большой список, а выбрать конкретный пункт и давить на него. Объясню:

    1. Увеличение продаж - на этот пункт вы влияете очень косвенно (ниже объясню почему). Потребитель больше будет смотреть на цену и скорость доставки, чем на форму кнопочки "Перейти в корзину".
    2. Привлечение внимания - это тоже не ваша работа. Привлекают внимание маркетологи. Клиент даст рекламу в директ, и она будет привлекать внимание. Если вы занимаетесь дизайном рекламных баннеров, то тогда можно говорить о привлечении внимания, но в контексте вашей деятельности вы привлечением внимания к продукту/услуге заказчика не занимаетесь.
    3. Большая конкурентоспособность/отстройка от конкурентов - это тоже не про вас. Конкурентоспособность никак не соотносится с визуальной составляющей. Вы можете сделать идеальную упаковку для пиццы, но если её везут 3 часа, то никакой конкурентоспособности быть не может.
    Отстройка от конкурентов - это тоже не про вас. Немного погуглите про то что такое "отстройка от конкурентов", и поймете это. Отстраиваются на уровне позиционирования и бизнес процессов. Например вы открыли магазин продуктов возле дома. Через пол года рядом открывается пятерочка. Вы начинаете проседать по доходам, потому что пятерка дает лучшую выходную цену для клиента, и тогда вы решаете отстроится от конкурента, убираете весь ассортимент и становитесь магазином "Колбасы от Васи". И расставляете на прилавке 1 вид продукта, но в широком ассортименте, который пятерочка никак не может себе позволить, потому что им не выгодно иметь широкий ассортимент одной товарной позиции. Вот это и есть отстройка.

    А теперь к важному. Продавайте "Повышение конверсии". И только это.
    Бизнес делает рекламу, тратит на это деньги, и тут появляетесь вы и говорите, мы можем сделать новый дизайн вашего сайта, уменьшить "боль" потребителя от использования, что повысит вашу конверсию на N процентов + увеличит кол-во повторных заказов от существующих клиентов. Повышение конверсии даст большую эффективность вашим рекламным затратам, потому что вы можете потратить 100500 миллионов денег, но если вся реклама будет вести на непродуманный, некрасивый и абсолютно неюзабельный лендинг - ваши деньги вылетят в трубу. Такая постановка вопроса будет очень понятна любому бизнесу.

    Так что вывод - переимуйте абстрактный пункт "Увеличение продаж" в более конкретный "Увеличение конверсии", и продавайте его.
    Ответ написан
    1 комментарий
  • Как сверстать углы у div или border не на всю длину?

    Ankhena
    @Ankhena Куратор тега CSS
    Нежно люблю верстку
    https://jsfiddle.net/Ankhena/43zzxkpa/ Адаптируйте под свою задачу
    Ответ написан
    Комментировать
  • Как делать анимацию при скролинге?

    TexxTyRe
    @TexxTyRe
    Software Developer
    AOS
    Или попробовать Popmotion (сам еще не пробовал)

    P.S: перестаньте что-то просить на русском. Даже русские с опытом в программировании все равно напишут документацию на английском. Хотите все на русском, то 1С прекрасное решение.
    Ответ написан
    Комментировать
  • Расскажите подробно про php://input, как пользоваться?

    php://input возвращает все необработанные данные после HTTP-заголовков запроса, независимо от типа контента.

    Данные, могут быть:
    • application/x-www-form-urlencoded ( application/x-www-form-urlencoded тип application/x-www-form-urlencoded для простых форм- application/x-www-form-urlencoded ) или
    • multipart/form-data-encoded (в основном multipart/form-data-encoded для загрузки файлов)

    Это связано с тем, что это единственные типы контента, которые должны поддерживаться браузерами. Поэтому сервер и PHP традиционно не ожидают получения какого-либо другого типа контента (что не означает, что они не могли бы).

    Если вы просто отправляете POST-ом обычную HTML-форму, запрос выглядит примерно так:
    POST /page.php HTTP/1.1
    key1=value1&key2=value2&key3=value3

    Но если вы много работаете с Ajax, может понадобиться обмен более сложными данными с типами (строка, int, bool) и структурами (массивы, объекты), поэтому в большинстве случаев JSON является лучшим выбором. Но запрос с JSON-полезной нагрузкой выглядел бы примерно так:
    POST /page.php HTTP/1.1
    {"key1":"value1","key2":"value2","key3":"value3"}

    Теперь содержимое будет application/json (или, по крайней мере, ни один из вышеперечисленных), так что $_POST -wrapper из PHP не знает, как с этим справиться (пока).

    Данные всё еще там, вы просто не можете получить к нему доступ через $_POST. Поэтому вам нужно получить его с "сыром" виде помощью file_get_contents('php://input') (если он не закодирован в формате multipart/form-data).

    Это также способ доступа к XML-данным или любому другому нестандартному типу контента.
    Ответ написан
    Комментировать
  • Как удобнее писать виджеты для amoCRM?

    madmatvey
    @madmatvey
    Руки, ноги, голова. В наличии и под заказ.
    Есть удобный сборщик виджета для amoCRM на базе Gulp https://github.com/xtratio/amocrm-widget-starter-kit
    Сам пользуюсь, рекомендую и вам :)
    Ответ написан
    1 комментарий
  • Кто использует такой подход в написании CSS?

    miraage
    @miraage
    Старый прогер
    Я категорически против этой "магии". Потом попробуй найди селектор из шаблона. Мне проще ctrl+click перейти в полное объявление css класса, нежели искать самому эти кусочки.
    Из sass использую переменные, миксины, укороченный синтаксис для hover/active/disabled/etc.. и в исключительных ситуациях использую вложенность.
    Ответ написан
    4 комментария
  • Что такое такое rest api?

    @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    API социальных сетей - это вполне типичные примеры реализации REST API.

    REST (RESTful) - это общие принципы организации взаимодействия приложения/сайта с сервером посредством протокола HTTP. Особенность REST в том, что сервер не запоминает состояние пользователя между запросами - в каждом запросе передаётся информация, идентифицирующая пользователя (например, token, полученный через OAuth-авторизацию) и все параметры, необходимые для выполнения операции.

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

    Операция получения данных не может приводить к изменению состояния сервера.

    Для каждого типа операции используется свой метод HTTP-запроса:
    1. получение - GET
    2. добавление - POST
    3. модификация - PUT
    4. удаление - DELETE

    Т.е. :

    GET-запрос /rest/users - получение информации о всех пользователях
    GET-запрос /rest/users/125 - получение информации о пользователе с id=125
    POST-запрос /rest/users - добавление нового пользователя
    PUT-запрос /rest/users/125 - изменение информации о пользователе с id=125
    DELETE-запрос /rest/users/125 - удаление пользователя с id=125
    Ответ написан
    20 комментариев
  • Есть какие нибудь материалы по JS для подготовки к собеседованию?

    @Bukinator
    https://habrahabr.ru/post/231071/ Всё ещё актуально
    Ответ написан
    Комментировать
  • Как в EMMET + JADE реализовать такой подход?

    @fantazerno Автор вопроса
    Конфиг для настройки sublime
    {
    	"preferences": {
    	        "bem.elementSeparator": "__",
    	        "bem.modifierSeparator": "_",
    	        "bem.shortElementPrefix": "-"
    	},
    	"snippets": {
    	        "jade" : {
    	            "filters" : "bem,jade",
    		}
    	}
    }
    Ответ написан
    Комментировать
  • Как в EMMET + JADE реализовать такой подход?

    @bagahunda
    В emmet есть встроенные фильтры, которые указываются в конце строки после |.
    Это странно, но многие про них не знают.
    В вашем случае нужно использовать сразу два фильтра: bem и jade.
    article.post>.__header+.__content+.__footer|bem|jade

    Это развернется в привычный JADE
    article.post
                  .post__header
                  .post__content
                  .post__footer

    Настроить вывод фильтров можно здесь:
    Preferences -> Package settings -> Emmet -> Settings - User

    Вот пример настройки:
    {
      "syntaxProfiles": {
        "html" : {
          "filters" : "html, bem"
        }
      },
      "preferences": {
        "bem.elementSeparator":"__",
        "bem.modifierSeparator":"--",
        "bem.shortElementPrefix":"-"
      }
    }

    Еще есть отличная штука Bemto
    Ответ написан
    1 комментарий
  • Как собрать скрипты и стили useref и wiredep, еще и захешировать gulp-hash?

    HamSter007
    @HamSter007 Автор вопроса
    HTML/CSS верстальщик
    Если кому-нибудь нужно, то решила проблему плагином gulp-replace-assets.

    Полная сборка теперь выглядит так.
    Ответ написан
    Комментировать