Заметки


🔥 Плавный скроллинг без jQuery

Делать одностраничные сайты – модный нынче тренд. Но всегда встает вопрос написания плавной анимации по разделам сайта. Можно конечно взять jQuery и какой-никакой готовый плагин. Но не для всех страниц есть смысл подключать «массивную» библиотеку, проще написать свое решение.

Напишем наше меню:

<ul class="menu">
    <li><a onclick="return app.scrollTo(this)" href="#news">Новости</a></li>
    <li><a onclick="return app.scrollTo(this)" href="#about">О нас</a></li>
    <li><a onclick="return app.scrollTo(this)" href="#contacts">Контакты</a></li>
</ul>

Дабы не писать метод добавления обработчика кликов по меню, я вписал вызов функции прямо в ссылку: onclick="return app.scrollTo(this)". Не самое лучшее, но сто процентов работающее решение.

В начале каждого раздела для любого элемента должен быть проставлен id с соответствующим значением, например id="news".

var app = {
    scrolled: 0,
    newPosition: 0,
    interval: null,
    speed: 0,

    scrollTo: function(el) {
        var link = el.getAttribute('href').replace('#', ''),
            anchor = document.getElementById(link);

        var location = 0;
        if (anchor.offsetParent) {
            do {
                location += anchor.offsetTop;
                anchor = anchor.offsetParent;
            } while (anchor);
        }
        location = location >= 0 ? location : 0;

        this.animateScroll(location);
        return false;
    },

    animateScroll: function(pos) {
        document.documentElement.scrollTop = 1;
        var element = (document.documentElement && document.documentElement.scrollTop) ? document.documentElement : document.body,
            start = element.scrollTop,
            change = pos - start,
            currentTime = 0,
            increment = 20,
            duration = 300;

        var animateScroll = function(){        
            currentTime += increment;
            var val = Math.easeInOutQuad(currentTime, start, change, duration);
            element.scrollTop = val;
            if(currentTime < duration) {
                setTimeout(animateScroll, increment);
            }
        };
        animateScroll();
    }
};      

Функция, реализующая ускоряющуюся и замедляющуюся в конце анимацию (не моя):

Math.easeInOutQuad = function (t, b, c, d) {
    t /= d/2;
    if (t < 1) return c/2*t*t + b;
    t--;
    return -c/2 * (t*(t-2) - 1) + b;
};
Читать 2 мин | 02.09.2014 18:54

🔥 MAMP, что делать, если не стартует Apache

Иногда случается так, что сервер MAMP отказывается запускать Apache. При этом MySQL работает вполне исправно. Понять почему это происходит очень трудно. Но решение есть!

  • Шаг первый.

Необходимо открыть Terminal (Терминал) и набрать /Applications/MAMP/Library/bin/apachectl start.

Там вы увидите уведомление об ошибке:

dyld: Symbol not found: _iconv
  Referenced from: /usr/lib/libmecabra.dylib
  Expected in: /Applications/MAMP/Library/lib/libiconv.2.dylib
 in /usr/lib/libmecabra.dylib
/Applications/MAMP/Library/bin/apachectl: line 80: 33793 Trace/BPT trap: 5       $HTTPD -k $ARGV
  • Шаг второй.

Все там же набираем cd /Applications/MAMP/Library/bin

Вы окажетесь в директории библиотек MAMP.

  • Шаг третий.

Переименовываем файл envvars вот такой командой mv envvars _envvars

  • Шаг четвертый.

Все работает, пользуйтесь.

Читать 30 сек | 29.08.2014 14:00

🔥 Стокгольм, Швеция

В отсутствие работающей камеры в телефоне, фотографий из Стокгольма сделал мало.

Летом Стокгольм утопает в зелени.

Продолжение

Читать 16 сек | 25.08.2014 12:39

🔥 Выезжающее меню на CSS

В продолжение примеров различных UI-элементов сайтов, которые можно сделать без Javascript, сегодня распишу как можно сделать выезжающее меню на чистом CSS.

И снова ДЕМО, для начала.

Продолжение

Читать 3 мин | 13.08.2014 15:28

🔥 Affinity Designer – новый графический редактор для Mac OS

Мир графических редакторов на компьютерах пользователей и разработчиков чаще всего ограничивается Adobe Photoshop и его бесплатной альтернативой – Gimp. Недавно на рынке этих программ для Mac OS появился еще один игрок – Affinity Designer.

Пока проект находится в стадии разработки, но его бета-версия уже доступна для скачивания. Программа имеет ряд неоспоримых преимуществ:

  • скорость работы
  • поддержка большого количества форматов
  • возможность работы с векторными изображениями
  • экспорт в самые популярные форматы для веба

К ознакомлению рекомендуется.

Читать 24 сек | 08.08.2014 21:42