Анимация AJAX загрузки. Эффект размытия.

Давно хотел сделать так, чтобы при загрузке информации в какой-либо блок (к примеру, AJAX-ом) помимо обычного прелоадера сам блок бы еще размывался.

Собственно пример можно посмотреть здесь: https://jsfiddle.net/va61mk5t/1/

Читать далее

Простой календарь выбора даты на JS

Для работы календаря требуется подключенный JQuery UI.

Собственно заходим на http://code.jquery.com/ui/ и выбираем версию, которая больше нравится.

Далее подключаем его:

Обратите внимание, что smoothness — это название темы (в зависимости от используемой темы будет по разному выглядеть календарь)

В вёрстку пихаем какой-нибудь инпут, под которым должен появляться календарь при клике:

Читать далее

Three js — заготовка класса для разработки 3d приложения

На коленке набросал небольшую заготовку класса для будущих разработок 3d приложений на Three JS. М.б. кому пригодится.
Поддерживается изменение размеров окна браузера (вьюшка резировая с динамическим перерисовыванием сцены)
В примере ниже рисуется кубик с осями ординат. Поддерживается изменение положения камеры с помощью мышки.

Читать далее

Яндекс карты: расстояние до ближайшего полигона

Выкладываю на всеобщее обозрение скрипт роутинга маршрута до ближайшего полигона с подсчетом расстояния до него.
На хабре и других ресурсах не встретил вменяемого решения.

Основная «фишка» в алгоритме. После клика по некой точке вне полигона происходит следующее:

  1. Определяется индекс полигона, расстояние до которого минимально. (просто берём все вершины полигона и ищем расстояние от них до той точки, на которую кликнули. Ищем минимальное расстояние. Сравниваем с минимальными расстояниями других полигонов.)
  2. Определяем геометрический центр ближайшего полигона (к примеру, по оси X — это центр линии с вершинами самой левой и самой правой вершины полигона; аналогично — с осью Y)
  3. Строим маршрут от точки, куда кликнули до этого геометрического центра.
  4. Делим маршрут на отрезки и для каждого отрезка определяем — лежит ли он внутри полигона или нет
  5. Все отрезки, лежащие вне полигона — добавляем в некий массив отрезков, который и будет искомым маршрутом
  6. Находим тот отрезок, который пересекает наш полигон (перебираем каждую грань полигона и проверяем функцией пересечения отрезков с заранее известными координатами)
  7. Находим точку пересечения этого отрезка и полигона и её добавляем в искомый массив отрезков.
  8. Строим маршрут.

Читать далее