Как стать автором
Обновить

arcticModal — jQuery-плагин для модальных окон

Время на прочтение1 мин
Количество просмотров61K
Для реализации модальных окон и диалогов существует немало плагинов jQuery. Перепробовав многие из них, я не нашёл ни одного, который бы достаточно просто и, что важно, правильно решал поставленную задачу.

Недавно SamDark писал о правильных модальных окнах и представил сообществу плагин The Modal. Полностью согласен с его виденьем модальных окон, но в представленном плагине не хватало функционала. У меня уже давно из проекта в проект кочевали наработки по этой же теме, вот решил тоже оформить их в виде плагина.
Подробнее
Всего голосов 46: ↑39 и ↓7+32
Комментарии62

Каша быстрого приготовления — делаем CRUD в Caché с помощью jqGrid

Время на прочтение10 мин
Количество просмотров6K
Речь пойдет о создании веб-приложения на Intersystems Caché с использованием javascript плагина для отображения табличных данных — jqGrid. Плагин часто упоминается на Хабре, поэтому основное внимание будет уделено особенностям его использования со стороны Caché
Преимущества использования jqGrid:
  • разгрузка сервера от клиентской логики
  • возможность использования различных форматов обмена данными (xml, json)
  • различные способы отображения данных (таблица, дерево, вложенные таблицы)
  • готовый функционал по изменению данных – редактирование в строках, редактирование в формах, проверка данных
  • большое количество настроек, опций и событий с документацией, примерами и исходным кодом
  • богатый пользовательский функционал — сортировка, группировка, фильтрация, поиск, итоги, настройка отображения столбцов (видимость, порядок, размеры), поддержка множества тем визуального оформления от jqueryui

Состав блюда: хранимый класс с данными, класс-страница, класс-сервис данных. Необходимые библиотеки и стили подключаются из сетей доставки данных (CDN) и с сайтов разработчиков, поэтому, для работы примера в локальной сети, их необходимо будет скачать из этих источников.

Предупреждение: пример максимально упрощен, рассматривается только малая часть возможностей плагина, но кода все равно много, хотя он и тщательно задокументирован.
Заварим кашу?
Всего голосов 7: ↑6 и ↓1+5
Комментарии9

Меню с плавной инверсией цвета

Время на прочтение1 мин
Количество просмотров20K

Представляю вашему вниманию меню с плавной инверсией цвета при перетекании курсора.


image
Под катом сам плагин и немного о концепции.
Читать дальше →
Всего голосов 70: ↑60 и ↓10+50
Комментарии33

Speakker — музыкальный плеер на jQuery

Время на прочтение2 мин
Количество просмотров15K
Ища на просторах сети музыкальный плеер для сайта, я наткнулся на интересный плеер под названием Speakker, написанный на jQuery.

Читать дальше →
Всего голосов 46: ↑41 и ↓5+36
Комментарии6

«Виртуальное хранилище» на стороне клиента с jQuery

Время на прочтение3 мин
Количество просмотров6.6K
В некоторых случаях абсолютно бессмысленно и неоправданно нагружать как клиентскую часть веб-приложения, так и серверную. Чтобы не ходить долго вокруг да около, приведу пример из жизни. От разработчика мне достался один интернет-магазин, в котором работа с корзиной происходила следующим образом. При клике на кнопку добавления товара в cookie сохранялись ID товара и его количество. Соответственно, чтобы при посещении различных страниц пользователю показывалось, что находится в корзине, в каком количестве, сколько это добро стоит и прочие данные, серверному приложению приходилось выполнять следующие функции:
  1. получение списка ID товаров из cookie;
  2. запрос в БД, из которой возвращалось название товара, его стоимость и прочие необходимые данные;
  3. использование шаблонизатора (Smarty) для генерирование блока корзины на ряду с генерацией остального содержимого.

Все вроде бы и ничего. Я думаю, многие с подобными схемами сталкивались и не раз. Но передо мной стояла задача оптимизации приложения, и я решил убрать среди прочего лишнюю нагрузку с сервера путем устранения как запросов в БД, так и генерацией блока корзины. Хотелось бы хранить все данные о выбранных товарах на стороне клиента. Причем, в идеале хотелось хранить не только массив выбранных товаров, но и уже готовый HTML-код блока корзины, кроме того, таблицу с товарами для страницы оформления заказа. Но как это сделать?
Читать дальше →
Всего голосов 21: ↑12 и ↓9+3
Комментарии24

Русская вики-энциклопедия «Традиция» теперь содержит 27 000 статей

Время на прочтение3 мин
Количество просмотров3.7K
Сегодня утром, завершив в вики «Традиция» работу над статьёю «Ацтекизация», я с удовлетворением обнаружил, что эта статья стала двадцатисемитысячною по счёту.

Взятие этого рубежа, достижение этого охвата радует меня немало. В России лишь четыре энциклопедические вики превосходят Традицию по числу статей: это две специализированные энциклопедии про кино Энциклопедия кино RuData», насчитывающая 340 769 статей, и «Всё о кино», насчитывающая 47 406 статей), а также два научно-образовательных проекта Виртуальная лаборатория», содержащая 204 082 статьи, и проект «Летописи», где 43 091 статья).

Кажется, это повод рассказать о Традиции на Хабрахабре.

Читать дальше →
Всего голосов 48: ↑15 и ↓33-18
Комментарии33

Как встроить ColorPicker в JavaScript Гант для изменения цвета задач

Время на прочтение10 мин
Количество просмотров3.1K


Привет, меня зовут Женя, и я просто еще один из обитателей JavaScript вселенной, который хочет поделиться с вами интересным опытом в frontend-разработке, а именно как кастомизировать диаграмму Ганта.


Не так давно я присоединился к команде энтузиастов, которая работает над проектом по производству оборудования для ремонта автомобилей. Как и для любого проектного менеджмента, нам нужен был инструмент для планирования задач с следующим функционалом:


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

Во многих современных приложениях для управления проектами для решения таких задач используются диаграммы Ганта. И я взялся за реализацию ее функциональности в нашем приложении.


Хотя можно было бы использовать готовый софт, в нашем случае нужно было сильно кастомизировать Гант под нужды проекта. Альтернатива разработки диаграммы с нуля — это слишком накладное и времязатратное мероприятие. Посовещавшись с коллегами, мы решили, что лучше всего найти готовый компонент среди библиотек JavaScript и настроить его под наш проект.

Читать дальше →
Всего голосов 7: ↑7 и ↓0+7
Комментарии0

Показ рекламы Google AdSense, на страницах загружаемых по технологии ajax

Время на прочтение4 мин
Количество просмотров3.3K
Добрый день хабрачитатели. Вчера я наткнулся на неприятный факт, а именно, код AdSense работает только при загрузке страницы. Если же попытаться обработать код AdSense, который находится в данных, которые мы получаем при помощи ajax, то ничего из этого не выйдет (выйдет только ошибка). Подгружаемый скрипт Google, использует document.write, который работает только при загрузке страницы. Но ведь страница уже загружена. И я начал копать…
Читать дальше →
Всего голосов 7: ↑6 и ↓1+5
Комментарии4

Выпадающий jQuery.Treeview

Время на прочтение5 мин
Количество просмотров24K

Вступление


image
В ходе реализации текущего проекта мне понабилось выпадающее дерево. Так как я уже пользовался jQuery плагином TreeView, и его функционал меня устраивает, было принято решение cделать выпадающее дерево на его основе. В результате родился плагин DropDownTreeView которым я хочу поделится.

Функционал


Плагин позволяет создавать выпадающие деревья с AJAX загрузкой (пример). При создании дерева к объекту обертки добавляется кнопка открытия дерева, и подгружается дерево. Дерево можно подгружать как целиком так и частями (актуально для больших деревьев). HTTP запросы могут выполнятся POST и GET методами. Параметры HTTP запроса определяются пользователем. Дерево строится посредством jQuery.Treeview. Дерево сворачивается при выборе пункта и клике вне зоны дерева.
Читать дальше →
Всего голосов 74: ↑66 и ↓8+58
Комментарии27

Plugin Detector — каталог и рейтинг плагинов jQuery

Время на прочтение6 мин
Количество просмотров5.6K
Последние четыре года я работал верстальщиком в разных питерских веб-студиях.

От полуподвальных контор из 3-5 человек до больших фирм 25-40 человек, работающих на рынке дорогих сайтов для крупных заказчиков. Но независимо от размера компании задачи были одни и те же.
  • нужно продать дизайн
  • сделать сайт, который не стыдно положить в портфолио
  • сделать оригинально, как еще не делали конкуренты

Таким образом, задачи верстальщикам и дизайнерам ставились одинаковые: «давайте что-то креативное, свежее, интересное».

Я очень хорошо понимаю верстальщиков, дизайнеров и владельцев веб-студий, поэтому чтобы облегчить им поиск плагинов под готовый функционал и в то-же время показать что-то свежее, чего еще многие [возможно] не видели, решил уволиться отовсюду, и запустить проект Plugin Detector



В этой статье будет затронуто:
описание функционала, история создания, маркетинг в бизнесе веб-студий и работа с клиентами
Всего голосов 234: ↑225 и ↓9+216
Комментарии95

Элегантный ротатор баннеров на jQuery

Время на прочтение4 мин
Количество просмотров33K
Наверное каждый веб-мастер участвует в какой-либо партнерской программе и я не исключение. И для продвижения партнерских товаров все большей популярности набирают ротаторы баннеров. Пример такого ротатора Вы можете наблюдать на моем сайте в правом сайдбаре.

Обычно для того, чтобы разместить такой ротатор на своем сайте достаточно установить специальный javascript-код. Если разбираться глубже, то задачей этого javascript-а является встраивание на Вашу страницу специального iframe, который уже и загружает ротатор баннеров на Вашу страницу с сайта разработчика.

Все бы ничего, но у данного подхода есть несколько недостатков:
Читать дальше →
Всего голосов 19: ↑12 и ↓7+5
Комментарии11

Sisyphus.js — защищаем данные форм пользователя от случайных потерь

Время на прочтение2 мин
Количество просмотров8.1K

В чём проблема?


Бывали ли у вас случаи, когда во время долгого заполнения нудной формы или написания красноречивого и пылкого комментария *внезапно* крашился браузер? Или вы закрывали вкладку, в которой работаете, или отключалось электропитание (а ИБП, по известному закону, нет)? Если нет — то вам повезло, но страховки от подобных происшествий ни у кого нет.

Представьте себе бурю эмоций, испытываемых пользователем, только что потерявшим все вводимые данные — а ведь оставалось немного допечатать и отправить форму. Вот если бы только был способ восстановить эти данные, а не заниматься сизифовым трудом…
Читать дальше →
Всего голосов 139: ↑136 и ↓3+133
Комментарии74

jQuery UI как инфраструктура для плагинов

Время на прочтение6 мин
Количество просмотров21K

Введение


jQuery UI больше всего известен как набор готовых виджетов. Главное их преимущество, на мой взгляд, — консистентное API: каждый виджет управляется одинаково. Второе их преимущество — они хранят свое состояние: если повторно навесить виджет на элемент, то результатом будет уже существующий инстанс виджета.
Но jQuery UI — это не только набор окошечек и табов (далеко не всеми любимых). Это еще целая инфраструктура для создания своих виджетов: с удобным консистентным API, с хранением состояния и с возможностью наследования. Как ни странно, это для многих новость, в результате чего и появилась эта статья — так же, как это было новостью для меня всего несколько месяцев назад.
Все, что вы хотели узнать о jQuery UI, но стеснялись спросить
Всего голосов 87: ↑86 и ↓1+85
Комментарии51

Создание одностраничного ajax-приложения с поддержкой History API (и без нее)

Время на прочтение4 мин
Количество просмотров52K
Судя по комментариям в этой статье, создание веб-приложений с возможностью аякс-навигации является интересной для сообщества темой и пока еще немногие сталкивались с подобной задачей. Я расскажу о ее решении с помощью небольшой библиотеки под названием jQuery-Pjax (либо моего форка ее).

Моя мотивация: в проекте нужно было реализовать mp3-плеер, играющий независимо от навигации на сайте. Далее потребовалось добавить поддержку браузеров без pushState — и я сделал форк библиотеки.

Основные особенности

  • навигация по сайту и обработка форм без полной перезагрузки страниц
  • чистые url, доступные для прямого доступа
  • поддержка #!/hash для устаревших браузеров (добавлено в моей версии)
  • работа с кнопками «назад» и вперед» для современных браузеров
  • а теперь и для старых — благодаря benalman.com/projects/jquery-hashchange-plugin
  • похоже, есть проблемы с ИЕ7 (спасибо Nc_Soft) (тем более, большое спасибо за участие Nc_Soft) и, возможно, opera 11.5 (пока не могу подтвердить, но нахожу крайне удивительным из-за dev.opera.com/articles/view/introducing-the-html5-history-api) — сообщение artishok — проверено и работает на сборке 1074 (not_ice)
  • imsamurai (https://github.com/imsamurai) предложил улучшения библиотеки (и я радостью слил изменения): встроенная функция для отправки форм, улучшения работы с хешами и более развитая система триггеров. (у imsamurai, к сожалению, нет аккаунта на хабре — будем рады помощи)

Ссылки


Принцип работы Pjax

Читать дальше →
Всего голосов 83: ↑81 и ↓2+79
Комментарии63

Отключаем библиотеку jQuery, встроенную в движок MediaWiki 1.16.x, и заменяем её на свежую, обновляемую и пополняемую администраторами вики

Время на прочтение7 мин
Количество просмотров3.1K


Как нетрудно прочесть на сайте MediaWiki, нынешняя линейка стабильных версий (1.16.x) поставляется со встроенною библиотекою jQuery, код которой лежит по адресу «skins/common/jquery.min.js». Это jQuery сравнительно старой версии (1.3.2, вышедшая в феврале 2009 года), слегка запатченная для преодоления одного из её багов, и она запускается в режиме совместимости noConflict()») таким образом, чтобы поместиться в переменную $j вместо $. Этот код jQuery не содержит никаких плагинов и является, в сущности, необязательным, подключаясь к странице только в том случае, когда код MediaWiki содержит вызов метода $wgOut->includeJQuery(). Скажем, расширение UsabilityInitiative содержит именно такой вызов на строке 128 своего файла «UsabilityInitiative.hooks.php», так что jQuery появляется в некоторых темах оформления (например, в Vector), когда расширение UsabilityInitiative подключено к вики.

Предлагаю встать на точку зрения вики-техника, то есть администратора сервера MediaWiki, имеющего прямой доступ (наподобие SSH) и возможность менять настройки вики (LocalSettings.php), доустанавливать расширения MediaWiki и проводить другие подобные действия. Какие обстоятельства могут вызвать у вики-техника MediaWiki 1.16.x стремление переменить к лучшему то положение дел, которое упомянуто в предыдущем абзаце? Каким путём уместнее всего действовать вики-технику на пути воплощения этого своего стремления?

Первотолчком такого стремления является естественное и почти неизбежное осознание того, как неудобна та необязательность появления jQuery в коде страниц, которая настроена по умолчанию. Всякий вики-техник, если он имеет достаточно досуга для размышлений, рано или поздно постигает, что простота и могущество функции $(), если бы она была всегда в распоряжении администраторов, сочиняющих скрипты для вики, всенепременно породили бы JS-код куда компактнее, чем прежний. Возьмём для примера версию от 22 мая 2011 года страницы «MediaWiki:Common.js» из россияноязычной Википедии. В ней нетрудно заметить вот какой код функции:
Читать дальше →
Всего голосов 38: ↑24 и ↓14+10
Комментарии13

Как я в 15 лет написал свой первый jQuery плагин и как их создавать

Время на прочтение3 мин
Количество просмотров4.6K

Здравствуйте! Я живу в Узбекистане и самостоятельно изучаю веб разработку вот уже третий год. За это время я научился изобретать велосипед самостоятельно решать проблемы, с которыми я сталкивался. Одна из таких проблем и ее решение будет описана здесь. Надеюсь вам будет интересно.


читать далее
Всего голосов 20: ↑5 и ↓15-6
Комментарии21

Плагин Events для jQuery

Время на прочтение10 мин
Количество просмотров3.6K
Я разработал свободный плагин Events для jQuery. После чего плагин выложил на GitHub.

Назначение плагина, позволить привязывать теги к переменным.

В последствии чего задав новое значение переменной все привязанные теги на странице обновятся.

Простой Пример

У нас имеются теги для отображения данных:

<span class='amount'>0</span>
<span class='cart_cost'>0</span>
<span class='order_cost'>0</span>
<span class='order_cost_tax'>0</span>

Вначале мы привязываем значения HTML тэгов и функций к имени переменной.

jQuery().event('cost', '.amount');
jQuery().event('cost', '.cart_cost');
jQuery().event('cost', '.order_cost');
jQuery().event('cost', '.order_cost_tax',function(){ return this*1.2});
jQuery().event('cost', function(){ console.log('Стоимость продуктов:',this)});

Теперь зададим значение переменной.

jQuery().var('cost',200); 

Одной командой мы разместили во всех привязанных тегах к переменной cost значение 200, а в теге .order_cost_tax разместили значение 240, что на 20% больше чем значение переменной.

Результат:

<span class='amount'>200</span>
<span class='cart_cost'>200</span>
<span class='order_cost'>200</span>
<span class='order_cost_tax'>240</span>
Читать дальше →
Всего голосов 8: ↑7 и ↓1+10
Комментарии50

JQuery Uploadify — мультизагрузка файлов с использованием флэш

Время на прочтение3 мин
Количество просмотров30K
Тема загрузки файлов без перезагрузки страницы поднималась уже неоднократно. Даже я как-то давно писал про это. В основном рассматривались решения без флэша, но сегодня я хотел бы поговорить про плагин для jquery с использованием флэша, а именно о JQuery Uploadify.

Конечно, можно использовать и другой флэшевский загрузчик SWFUpload, но Uploadify, по моему мнению, на порядок легче и проще, вполне подходит для большинства целей, ну и конечно не забываем, что это плагин для нашего любимого jquery, что избавляет нас от подключения еще каких-либо библиотек ;)

Теперь рассмотрим всё на примере.
Теперь рассмотрим всё на примере.
Всего голосов 72: ↑63 и ↓9+54
Комментарии105

Dock панель для сайта. Выбор подходящего jQuery плагина и руководство по установке

Время на прочтение5 мин
Количество просмотров1.3K
image

Красота спасет мир


Обладатели компьютеров Apple давно пользуются красивой и удобной dock панелью. В отличие от этих счастливчиков, я вырос глубоко в сибири и до недавнего времени видел Мак исключительно на картинках.
Но несмотря на это, о dock панели я все же узнал, хоть и случайно, из статьи в одном журнале за 2003 год о dock панелях для Windows. Я поигрался с предложенной программой пару дней, а потом удалил и навсегда забыл о ней. Панель безусловно произвела на меня впечатление приятной внешностью, но все же не несла для меня ощутимой практической пользы.

Дальше — по существу.


За все прошедшее время мне ни разу не пришлось вспоминать об этом небольшом опыте, пока не пришел «заказ» на добавление подобной панели в очередной разрабатываемый вебсайт. Так как библиотека jQuery уже использовалась на этом сайте, я интуитивно начал поиск нужного плагина. Интуиция не подвела, было обнаружено множество внешне не отличимых друг от друга «примочек». Осталось выбрать один единственный вариант и привинтить к странице.

Приведу краткий обзор найденного, расскажу, чем я руководствовался при выборе и дам инструкции по установке выбранного мной плагина.
Читать дальше →
Всего голосов 29: ↑21 и ↓8+13
Комментарии6

jQuery GridWizard — Визуальный конструктор таблиц

Время на прочтение1 мин
Количество просмотров1.1K
Затратив уйму времени, методом проб и ошибок появился мой первый полнофункциональный плагин для jQuery — GridWizard.

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

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

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

image

Ознакомится с плагином и скачать исходники можно на сайте плагина.
Всего голосов 13: ↑10 и ↓3+7
Комментарии5