Ответы пользователя по тегу CSS
  • Как реализовать такой скролл как на thewitcher.com/en/witcher3?

    HoHsi
    @HoHsi
    Предположу, что это на банальном эвенте wheel + throttle/debounce

    const body = document.getElementsByTagName('body')[0];
    body.addEventListener('wheel', _.throttle((e) => {
      const isNext = e.deltaY > 0;
    
      if (isNext) {
        // Следующий слайд
        console.log('->');
      } else {
        // Предыдущий слайд
        console.log('<-');
      }
    }, 1000, {
      trailing: false
    }));
    Ответ написан
    Комментировать
  • Конвертор HTML -> PDF с поддержкой CSS3?

    HoHsi
    @HoHsi
    casperjs - можете даже не статику конвертировать. По своей сути это браузер из консоли, который умеет делать скриншоты в Png, PDF, Jpg и т.д.
    Ответ написан
    Комментировать
  • Переключение статусов на jquery?

    HoHsi
    @HoHsi
    <div class="task-status task-active selected">Active</div>
    <div class="task-status task-stop">Stop</div>
    <div class="task-status task-done">Done</div>


    // 1, и самое главное, не вызывайте по многу раз функции, это б** самое медленное место в JS.
    // Вы сделали правильно, а вот предыдущий ответчик, увы.
    
    // 2. Кложурка - наше все. ()()
    ;(function($){
        // Выполнится, только после прогрузки страницы
        $(function{
            var $taskStatus = $('.task-status'); // Доллар как бы показывает, что это JQ объект
    
            // 3. В HTML можно убрать selected, что-бы код смотрелся гармончнее
            // Тогда следуте добавть
            /*
            $taskStatus.first().addClass('selected');
             */
    
            $taskStatus.on('click', function(){
                var $this = $(this);
    
                // Зачем, что-то менять если это и так уже `selected`
                if(!$this.hasClass('selected')){
                    var $other = $taskStatus.not( $this );
    
                    // Тем самымы, даже при малом FPS, не будет мерцания
                    $this.addClass('selected');
                    $other.removeClass('selected');
                };
            });
        });
    })(jQuery);


    И как всегда, минутка рекламы CoffeeScript
    do ($ = jQuery)->
        $ ->
            $taskStatus = $('.task-status')
    
            $taskStatus.on 'click', ->
                $this = $(this)
    
                unless $this.hasClass('selected')
                    $other = $taskStatus.not( $this )
    
                    $this.addClass('selected')
                    $other.removeClass('selected')
    Ответ написан
  • Как настроить csso для gulp c изменением структуры?

    HoHsi
    @HoHsi
    Используйте CleanCSS, он чистит гораздо лучше. Пруф cssbench

    Как настроить csso? Как я предполагаю это нужно сделать в package.json, но в каком именно?

    Нет, туда даже не стоит лезть, если вы не знаете зачем он. Это простой манифест файлов, там не хранятся настройки.

    Если уж и настраивать, то в таске галпа.
    Ответ написан
    Комментировать
  • Как реализовать подобную анимацию?

    HoHsi
    @HoHsi
    Да хоть на чистом CSS: www.w3schools.com/css/css3_animations.asp .
    В целом хватит базовых скиллов на JQuery. А вот производительность, это будет да. Мило...
    Ответ написан
    Комментировать
  • Как правильно создать систему позиционирования на css + sass?

    HoHsi
    @HoHsi
    Любой элемент по дефолту имеет размер auto, что как привило эквивалентно 100%. Так, что ни как не боремся
    Ответ написан
    8 комментариев
  • Как сделать эти линии?

    HoHsi
    @HoHsi
    SVG или таблицы.
    Если нужны строго прямые угли и нет скиллов в SVG. Попробуйте таблицами, довольно просто.
    Ответ написан
    Комментировать
  • Как сделать плавное появление страницы?

    HoHsi
    @HoHsi
    1) Заводите массив (или html атрибут) с url до изображений. В таком случае браузер не будет их загружать.
    2) Создаем невидимый элемент img который будет служить прелоадером.
    3) Биндим на него JQ метод .load
    4) При прокрутки страницы до определенного изображения, передаем url картинки прилоадеру.
    5) Как только он отвечает нам, ставим этот url в src или background-image.

    Можно создать несколько прелоадеров, или генерировать их при необходимости, а потом удалять.

    ---------------

    Если же нужно что-бы загрузилась вся страница, то можно сделать div:
    .loader {
      postition: absolute;
      width: 100%;
      height: 100%;
      top: 0;
      left: 0;
    
      background: red;
    
      z-index: 99999;
    }


    Дальше вешаем обработчик на окно
    $(window).ready ->
      $('.loader').remove()


    В этом случае, сайт появится только после того, как все элементы загружены и нарисованы
    Ответ написан
    2 комментария