• Как сделать профессиональный блик на кнопке на сайте?

    Stalker_RED
    @Stalker_RED
    На кнопке псевдоэлемент с градиентом, у которого анимированное положение.
    KRdsOMM.png

    Ответ написан
    4 комментария
  • Как принудительно обновить Store в Vuex?

    Aetae
    @Aetae Куратор тега Vue.js
    Тлен
    Вся логика построена на том, чтобы сократить лишние бесполезные вызовы. Если тебе нужно принудительно обновить - принудительно обновляй руками.
    Ответ написан
    Комментировать
  • Как получить рандомный HEX цвет?

    @sand3001
    Всего по немногу
    Math.floor(Math.random()*16581375).toString(16)
    Ответ написан
    3 комментария
  • На сколько безопасно делать админ панель на vuejs?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Токен только для предотвращения перехода по роуту если не авторизован и роли нет.
    Но на сервере, вы должны проверять бык это или юпитер и позволять юпитеру делать то что недозволено быку :)
    Ответ написан
    3 комментария
  • Wordpress. Почему ломаются data-атрибуты в ссылках?

    artzolin
    @artzolin Куратор тега WordPress
    php, WordPress разработка сайтов artzolin.ru
    Тут вам поможет старый-добрый впешный дебаг: отключаете все плагины, включаете дефолтную тему. Теперь нормально работают ссылки? Тогда по очереди включаете плагины. Особенно смотрите плагины оптимизации, external links и все в таком духе

    Если не нашли проблему в плагинах, значит косяки в коде темы. Ищите и проверяйте все, что на хуках init, after_setup_theme, фильтры контента, регулярки, может даже js
    Ответ написан
    1 комментарий
  • Как обновить значение в элементе массива?

    @dGololobov
    начинающий
    Если вы хотите сделать именно так как у вас написано, то вот вариант:
    this.inputs.forEach((value, index) => {
      this.$set(this.inputs, index, {...value, label: value.label1})
    });


    Но я бы сделал по другому. Если мне нужно заменить label на label1 из того же элемента во всех элементах массива.
    Можно например отмапить весь массив. И по идее вам даже set не понадобится:

    this.inputs = this.inputs.map(item => ({ ...item, label: item.label1 }))


    В вашем варианте как я понимаю отрисовка компонента будет происходить всякий раз, когда вы изменяете элемент массива. В моем же варианте отрисовка произойдет один раз, только после того как весь массив будет обновлен.
    Ответ написан
    1 комментарий
  • Аналог margin для ячейки таблицы?

    politon
    @politon
    HTML5,CSS3,JS,PHP,SQL,API,canvas,animation...
    1 комментарий
  • Как использовать видеоплеер, что б файл нельзя было скачать?

    @krundetz
    Смотрите в строну DRM. Но как верно заметил d-sem можно сделать просто запись экрана.

    А вообще почему бы ролик не распространять через youtube? Не знаю позволяют ли они использовать drm, но платный контент там есть. Ведь если ролик украдут и будут распространять то там, а вы сможете оспорить правообладание через службу поддержки.

    У вас такой ценный контент?
    Ответ написан
    Комментировать
  • Вложенность в теге article?

    delphinpro
    @delphinpro Куратор тега HTML
    frontend developer
    DIV - это элемент без семантики.
    Поэтому, даже если вы сделаете структуру
    article>div>div>div>(header>h4 + div>p + footer)
    Она будет такой
    article>(header>h4 + p + footer)
    Ответ написан
    1 комментарий
  • Как сохранить позицию елементов при другом разрешении?

    Psixodelik
    @Psixodelik
    Преподаватель на Hexlet
    Сделай два блока с нужными размерами (в относительных единицах). Это будет твоя левая и правая часть. Уже в них располагай контент. Тогда при изменении разрешения они не будут пересекать твою границу
    Ответ написан
    1 комментарий
  • Как можно из строки выделить дату и время отдельно?

    Seasle
    @Seasle Куратор тега JavaScript
    const parseToDate = string => {
      const [day, month, year, hour, minute] = string.match(/\d+/g).map(match => parseInt(match));
      const normalizedYear = year < 2000 && year.toString().length <= 2 ? year + 2000 : year;
      const date = new Date(normalizedYear, month - 1, day, hour || 0, minute || 0);
      
      return date;
    };
    
    const strings = [
      '01 02 2003 04 05',
      '01 02 03 04 05',
      '01/02/03 04 05',
      '01-02-3 04-05',
      '23-08/2019 3 4',
      '1 1 1980 0 0',
      '2 2 0'
    ];
    
    for (const string of strings) {
      const date = parseToDate(string);
      
      console.log(date.toLocaleString());
    }
    
    /**
    '01.02.2003, 04:05:00'
    '01.02.2003, 04:05:00'
    '01.02.2003, 04:05:00'
    '01.02.2003, 04:05:00'
    '23.08.2019, 03:04:00'
    '01.01.1980, 00:00:00'
    '02.02.2000, 00:00:00'
    */
    Ответ написан
    3 комментария
  • Как сделать чтоб при клике на кнопку появлялся div,при клике вне его чтоб закрывался?

    nowm
    @nowm
    Обычно, если вы хотите добавить какую-то вещь, вам нужно полностью понимать её логику работы, чтобы это описать в коде. То есть, если вы можете описать весь функционал с помощью алгоритма, есть смысл самостоятельно это писать. В противном случае, лучше воспользоваться готовым решением, вроде Dropdowns или Modals из Bootstrap, потому что это поможет сэкономить время и обеспечит определённую надёжность работы за счёт использования дополнительных ресурсов (нужно подгружать CSS- и JS-файлы бутстрапа).

    Самостоятельное понимание обычно приходит с опытом. То есть, например, если я хочу написать модал, я сначала должен понять, что такое этот мой модал и как он себя должен вести в различных ситуациях. По сути, это какой-то элемент, который выводится на переднем плане и блокирует всё остальное. То есть, мне нужно создать один полноэкранный элемент (1), который будет блокировать всё остальное, а потом поместить в него другой элемент (2), который будет отображать нужный мне контент. При клике по элементу 1 мне нужно скрывать оба элемента, освобождая всё, что находится на заднем плане. При этом, если я кликаю внутри элемента 2, ничего не должно происходить. Дальше, мне нужно показывать элементы 1 и 2 после определённого события, например, если я кликаю по кнопке (3).

    Вот простейший код который работает как АК-47 (так же доступно на JsFiddle для тестирования):

    HTML
    <span id="element-3">Open modal</span>
    <div id="element-1">
      <div id="element-2">
        Modal content
      </div>
    </div>


    CSS:
    body {  
      width: 100vw;
      height: 100vh;
      background-color: green;
      margin: 0;
      padding: 0;
    }
    
    #element-3 {
      border: 1px solid black;
      background-color: white;
    }
    
    #element-1 {
      display: none;
      position: fixed;
      background-color: blue;
      width: 100vw;
      height: 100vh;
      top: 0;
      left: 0;
    }
    
    #element-1.show {
      display: block;
    }
    
    #element-2 {
      background-color: red;
      width: 50vw;
      height: 50vh;
      margin: 0 auto;
    }


    JS
    var element1 = document.getElementById('element-1');
    var element2 = document.getElementById('element-2');
    var element3 = document.getElementById('element-3');
    
    element3.onclick = function() {
    	element1.classList.add('show');
    };
    
    element1.onclick = function(event) {
    	if (event.target !== event.currentTarget) {
      	return;
      }
    	element1.classList.remove('show');
    };


    После того, как вы сделали стабильно работающий функционал, можно начать его развивать. Например, нужно сделать, чтобы элемент 1 был прозрачным. Или нужно сделать, чтобы он и элемент2 появлялись/исчезали, используя анимацию, а не мгновенно. Или нужно избавиться от этих красно-сине-зелёных цветов и отображать у элемента 2 закруглённые уголки и центрировать его по вертикали. Это уже задачи другого уровня, которые решаются другими методами, которые тоже можно разбить на подзадачи и решать их так, чтобы они не ломали задачи более высокого уровня. В таком случае у вас всегда всё будет работать надёжно и предсказуемо.

    А ваш код я не видел, так что помочь ничем не могу. Причин, по которым происходят глюки, может быть много, и нужно быть телепатом, чтобы угадать, что именно происходит в вашей реализации кода. Но я видел много примеров, когда люди что-то делали, не понимая полностью логики явления, которое они разрабатывают. (Например, модальный диалог, или галлерею, или кнопку. Или космический корабль.) Из-за этого их код превращается в запутанный клубок, который глючит в самые неожиданные моменты.
    Ответ написан
    Комментировать
  • Как перебрать из массива до тех пор, пока совпадают даты?

    wataru
    @wataru Куратор тега Алгоритмы
    Разработчик на С++, экс-олимпиадник.
    Во-первых, массив надо отсортировать по датам, если он у вас уже не упорядочен. В любом языке программирования есть какая-то функция sort(), которой можно как-то задать, как сравнивать сортируемые объекты (тут вам надо сравнивать только даты).

    Ваше условие не очень понятно, но вот, как сгрупировать массив по датам:
    st = 0; 
    end = 0;
    while (st < a.length) {
      end = st + 1;
      while(end < a.length && a[end].date == a[end-1].date) end++;
      console.log(a[st].date);
      for (st = st; st < end; st++) {
        console.log(a[st].id);
      }
    }


    Тут мы просто откусываем от массива кусок с одинаковыми датами, пока массив не кончится. Если вам нужна только последняя группа, то можно откусить только один раз с конца:
    end = a.length - 1;
    st = end - 1;
    while (st >= 0 && a[st].date == a[st+1].date) st--;
    console.log(a[end].date);
    for (st = st+1; st <= end; ++st) 
      console.log(a[st].id);


    Только учтите, этот код не работает на пустом массиве. Надо отдельно проверить этот случай.
    Ответ написан
    2 комментария
  • Магазин на WordPress + woocommerce, при попытке загрузки товаров CSV нет картинки товара, в чем может быть проблема?

    Проверьте csv. Формат информации о картинке должен представлять собой url ссылку на картинку. т.е. Вы должны иметь возможность свободно ее скачать.
    Ответ написан
    1 комментарий
  • Кому нас сливают?

    @ComodoHacker
    В индустрии данных можно выделить следующие этапы

    • Сбор первичных данных
    • Очистка и валидация
    • Обогащение
    • Анализ и построение моделей
    • Использование готовых моделей


    Все это еще и в разрезе характера данных.

    Есть компании, которые специализируются на одном или нескольких смежных этапах, создавая добавочную стоимость. Но Google и Facebook уникальны тем, что это компании "полного цикла". Все этапы они выполняют самостоятельно и продают только готовый продукт, таргетированную рекламу в вебе.

    В других отраслях ситуация более сложная. Например, вот как обстоит дело в телерекламе:
    https://adexchanger.com/ad-exchange-news/the-marke...
    Ответ написан
    Комментировать
  • Как "слезть" с WP+Elementor на чистый WP?

    @weart
    Нужно изучить wp-codex или нанять знающего человека, а не того, который ток кнопочки в плагине умеет нажимать.
    Ответ написан
    Комментировать
  • Как через регулярные выражение добавить перенос строк?

    @dzhebrak
    Регулярные выражения для этого не нужны - достаточно </span> заменить на </span>\n
    Ответ написан
    Комментировать
  • Как открывать на мобильном и десктопе приложения skype\telegram\whatsapp?

    prrrrrrr
    @prrrrrrr
    Верстаю сразу на PHP.
    Телеграм: https://t.me/username
    Whatsapp: https://wa.me/phone

    ну а скайп сами найдите

    а далее, если у человека на устройстве установлены клиенты этих приложений, будет предложено открыть в приложении
    Ответ написан
    Комментировать
  • Как посчитать сумму элементов массива?

    WblCHA
    @WblCHA
    Странно, столько ответов и ни одного редьюса...
    const count = (arr) => arr.reduce((acc, num) => acc + num, 0);


    А ещё почему-то никого не смутило, что автор к константе присваивает новое значение.
    Ответ написан
    3 комментария
  • Как запретить множества кликов в кнопке?

    zkrvndm
    @zkrvndm
    Архитектор решений
    Очевидно, что сразу после нажатия кнопки вам нужно заблокировать или его или обработчик и ждать пока не придет ответ от сервера, только после этого разблокируете все обратно.
    Ответ написан
    Комментировать