• Счетчик кликов на js?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    Есть механизм localStorage. Подключений библиотек не требует. Поддерживается везде.
    if (window.localStorage) {
    	var value = localStorage.getItem('count'),
    		newvalue = isFinite(value) ? ++value : 0;
    
    	localStorage.setItem('count', newvalue);
    	console.log(newvalue);
    }
    Ответ написан
    Комментировать
  • Как продать успешный стартап IT-гигантам (Yandex, Google, etc.)?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    Мне кажется, что причины покупки могут быть разными.

    Иногда сотрудники второй как работали, так и работают, а покупка — просто экономия времени на разработку. У первой своих сил на это направление не хватает, а тут сразу и специалисты, и работающий проект.

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

    Но, в любом случае, кидать не слишком-то выгодно — могут признать сделку ничтожной и прощай наполеоновские планы, поскольку дело будет рассматриваться вовсе не в Басманном суде.
    Ответ написан
  • Можно ли рисовать сайт в InDesign?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    А зачем вы хотите программу, заточенную под полиграфическую вёрстку, использовать при построении макетов для веб? Бесспорно, у неё есть замечательная вещь — Pages, но на этом и всё.

    У Adobe есть купленная её когда-то в пакете программа с такой же крутой для макетирования возможностью. Это Fireworks. Создана для веб-вёрстки, которая в ней почти идеальна. Даже поголовная работа дизайнеров с Photoshop не помеха. Есть непонимание некоторых фильтров при открытии PSD в Fireworks.

    А ваш вариант экзотичен. Для макетирования сайта InDesign пойдёт, хотя для скетчей есть всевозможные Mockups, а для прототипирования есть Visual Studio и разные там Azure.

    Для обработки изображений вы всё равно будете использовать Photoshop (и правильно, ведь InDesign только для вёрстки).

    Из Adobe:
    Web: Fireworks + Photoshop (+ Illustrator для SVG)
    Печать: InDesign + Photoshop
    Видео: Premiere + AfterEffects + Photoshop
    Ответ написан
    Комментировать
  • Стоит ли оставаться на работе?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    Я бы понял, если бы вопрос стоял так: «Я каждый день выполняю одни и те же до боли знакомые операции... Работа — рутина, жизнь — гавно...».

    Вот это было бы печально, а ваша ситуация замечательная. Много нового, непонятного, никто не давит, знай себе расти и расти:)
    Ответ написан
    Комментировать
  • Почему не грузится Jquery .load?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    В названии XMLHttpRequest недвусмысленно указано, что AJAX-запрос можно отправить и получить ответ только по протоколу http. Открыв файл с локального компьютера двойным щелчком в браузере, вы используете протокол file.

    Для проверки вашего кода нужен сервер (или его эмуляция на локальном компьютере).
    Ответ написан
  • Интернационализация на JavaScript, это как?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    Подключать сразу или подгружать — вопрос организации. Так или иначе — это будет хэш. А раз хэш, то это скорее всего будет JSON. Вариант с XML возможен, но избыточен.

    Технически это может быть старт с английского и выбор с занесением результата в куки или в адресную строку (GET-параметр с выбором языка).

    Куки
    Поскольку куки придут на сервер вместе с запросом, то сразу понятно, что выдавать в виде включённого на страницу JSON (либо ссылка на нужный файл).
    Если куки ставить и читать на клиенте, то неминуема задержка (нужно определит, что загрузить, потом загрузить и сформировать содержание на нужном языке). То есть либо интернациональные надписи заменят английские, либо этот интерфейс покажется целиком только после загрузки словаря.

    Адресная строка
    Альтернатива работы с куками. Отличие в возможности ручной смены адресной строки на нужный язык. Минус по сравнению с куками — неустойчивость (при случайном искажении адресной строки). Плюс — работает в Tor и в любой ситуации, когда куки запрещены.
    Ответ написан
    Комментировать
  • При заходе на сайт через https блокируется css, в чем может быть дело?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    Использовать относительные адреса
    /catalog/view/theme/default/stylesheet/blog.css
    Ни один здравомыслящий браузер не даст вам загружать небезопасный контент для документа, чья политика происхождения включает протокол https.
    Ответ написан
  • Как разобрать location.hash таким образом, чтобы занести в массив (в виде пары ключ=значение) и выводить как-то так: alert(data.value1)?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    Тут даже регулярок не нужно с их мощным exec
    var params = location.hash.slice(1).split('&'),
    	result = {};
    
    for (var i = 0; i < params.length; i++) {
    	var _result = params[i].split('=');
    
    	result[_result[0]] = _result[1];
    }

    А зачем вы в hash типичные GET-параметры передаёте?

    Update: обновил для фанатов JSLint:)
    Ответ написан
  • Из каких людей состоит эффективная команда по веб-разработке?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    UX
    Любой проект начинается с проектирования. Для крутых проектов, когда у проектировщика нет возможности въехать, может потребоваться помощь бизнес-аналитика. Увы, в России таких людей крайне мало, так что это — редкость. Впрочем, и проекты такого рода — тоже редкость.

    Часто в компаниях эту функцию выполняет:
    Дизайнер
    Так в России называют тех, кто умеет воплощать в картинках замысел. Даже если дизайнер не занимается проектированием, он должен изучать эту область.

    Однако, если проектировщика нет, а дизайнер пока не в состоянии делать это сам, то вся надежда на:
    Фронтенд
    Человек, который будет реализовывать сложные взаимодействия, разработанные проектировщиком (или дизайнером, или им же самим). Без знания JS и ряда библиотек никому не интересен. Просто HTML и CSS уже редко кому требуются, только если работать на подхвате у фронтенда.

    Если и фронтенд не может проектировать, то уже совсем слабая надежда, что это сможет
    Бэкенд
    В этом варианте преимущественно получаются программерсонли решения. Работу бэкенда оценить бывает не просто трудно, а очень трудно, в отличие от фронтенда, работу которого могут оценить обычные люди (правда, критерии у обычных людей весьма странные и неожиданные).

    Ну и совсем невероятно, что проектирование сможет провести:
    Менеджер
    Его функции могут сильно варьироваться, от организации команды, до отбивания от клиентов (например, когда всё упало). Даже если не умеет проектировать (а кто в здравом уме от него это ожидает?), в стартапе он нужен. Практика показывает, что технические специалисты часто увлекаются деревьями, а лес идёт лесом.

    А вот и он — человек с большой буквы Б:
    SEO
    Сделать проект — только начало. Потом на него нужно приводить клиентов, а значит, требования SEO должны учитываться всеми и с самого начала.

    Для продвинутых
    Администраторы серверов (а то напридумывают всякое, а оно вызывает то самое падение)
    Писатели (контент становится очень важен)
    Тестировщики (чтобы косяки не всплыли после выхода продукта)
    Контент-менеджеры (кто будет лопатить тонны текста и графики)
    Возможно, технические дизайнеры с перспективой роста
    Ну и далее, вплоть до милых фей в баре, которые всегда нальют горячее кофе
    Ответ написан
    8 комментариев
  • В каких редакторах следует создавать SVG-графику для сайта?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    Применял Illustrator и Inskape
    Ответ написан
    Комментировать
  • CSS: почему футер на крепится к низу?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    Причина тут
    div.container.wrap-slider{
    	margin-top: -120px;
    }


    Update: Почему разработчики не могут прочитать спецификацию? А окружающие начинают придумывать костыли. Я бы задумался, почему нужно подвинуть на 120 пикселей, если ровно такое же значение у отрицательного margin.
    Ответ написан
    4 комментария
  • Как добавить автофокус к поисковой строке?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    При клике на кнопку и выставления visibility в visible
    $('ваше_поле').trigger('focus');
    Кстати, а как вы собирались решить проблему, если:
    — невозможно передать фокус скрытым элементам (display:none, visibility:hidden, disable)
    — любой клик в документе снимет фокус, даже если он был на поле?

    На заметку — opacity даёт возможность передать фокус, даже если значение 0.
    Ответ написан
    3 комментария
  • Какие есть ресурсы и книги по кроссбраузерной верстке?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    Всегда использую для знакомства или уточнения Mozilla Developer Network. Почти в каждой статье есть таблица с поддержкой и ссылки на проприетарные спецификации.
    Ну и caniuse.com — куда без него, уже сложно представить:)
    Ответ написан
    Комментировать
  • Как передать значение переменной из javascript в php?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    MUSIC — это имя вашей функции в глобальном контексте. То есть при выполнении запроса в вашем документе появится динамически созданный скрипт, в котором будет вызвана функция MUSIC с передачей аргументов, прописанных в том же скрипте.

    Вопрос — а как вы на PHP собираетесь узнать содержание функции, прописанной в клиентском скрипте?
    Ответ написан
  • Как установить флаг в таком условии?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    Информацию об объекте лучше хранить в нём же самом. Для этого используем data() (это не совсем одно и то же, что dataset). То есть все найденные позиции мы сохранили data('position', 'найденное_значение'). Цикл по уже когда-то найденной коллекции LI.

    Куда же сохранить флаг об изменении элемента?)) Я думаю, вы уже догадались — например, data('changed', true).

    var li = block.find('li'); //Нашли только 1 раз
    
    $(window).on('scroll', function (e) {
    	var scrollTop = $window.scrollTop(); //Вычислили только 1 раз
    
    	li.each(function () {
    		var $item = $(this);
    
    		if($item.data('position') >= scrollTop){
    			$item.addClass('active');
    		} else {
    			$item.removeClass('active');
    		}
    	});
    });

    Вы производите много абсолютно лишних действий:
    — постоянно определяете прокрутку (надо только 1 раз)
    — постоянно находите LI в цикле (надо только 1 раз)
    — в каждой итерации пробегаете по всем найденным LI, меняя класс им всем (итого на круг выходит LI в квадрате)
    Ответ написан
    6 комментариев
  • Куда "смотрит" индикатор сортировки?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    Смотрите, например, в Excel. А-Я стрелка вниз. Я-А стрелка вверх.
    Ответ написан
    8 комментариев
  • Почему картинка не отображается?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    Ваш трафик либо проходит через фильтр, либо плагин в браузере типа AdBlock снабжает все подозрительные медиа-элементы такими правилами для борьбы с рекламой. Как он узнал? По слову, например.

    Попробуйте заменить название картинки на абстрактное, но без слов типа reklama, banner etc.
    Ответ написан
    Комментировать
  • Как сделать движение точки по эллипсу (овалу в наклоне)?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    Пример codepen.io/cleric/pen/mfyaE
    Самый простой способ — просто повернуть сам холст. Так сделано для второго эллипса.
    Если же поворачивается добавочный элемент, как у третьего эллипса, то нужно просто применить матрицу поворота.

    Что лишний раз доказывает, что линейная алгебра, матанализ и прочая математика — вовсе не только удел геймдева.
    Ответ написан
    1 комментарий
  • Как поставить многоточие в конце блока с текстом без использование js??

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    Для неразрывных строк всё просто

    ... {
    	white-space: nowrap;
    	overflow: hidden;
    	text-overflow: ellipsis;
    }

    Для нескольких строк, увы, всё куда хуже.

    Для webkit есть правило -webkit-line-clamp, позволяющее задать количество строк. Естественно, white-space не нужен.

    Для остальных это всегда будут эмуляции — либо JS-решения, либо абсолютно позиционированная псевдобласть (чаще всего ::after) с многоточием.
    Ответ написан
    Комментировать