Блог Web-мастера

jQuery, php, CSS и немножко SEO



Архив для категории: ‘javascript’

AJAX - upload файлов.

Четверг, июля 9, 2009

Современные сайтостроители не могут себе позволить обычный способ загрузки файлов с помощью поля <input type=”file” />. Он морально устарел по нескольким причинам:

  1. Можно загрузить только один файл.

  2. Требует перезагрузки страницы.

  3. Тяжело настроить его внешний вид.

Требуется инструмент, который обладал бы следующими качествами:

  1. Легко подключаемый.

  2. Легко настраиваемый как функционально, так и визуально.

  3. Загрузка нескольких файлов.

  4. Прогрессбар (показ процесса загрузки).

  5. Кроссбраузерность (работоспособность во всех современных браузерах).

Для меня таким инструментом стал FancyUpload - Swiff meets Ajax (v3.0).

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

1. Вот так он, собственно выглядит на моём сайте… Жмём на ссылку для выбора файлов, подлежащих загрузке.

ajax - upload файлов

ajax - upload файлов

2. Выбираем файлы , можно даже несколько одновременно. Жмем открыть.

ajax - upload файлов

ajax - upload файлов

3. Появляются превьюшки с названиями и размером файлов, которые загружаем и это при том, что мы их ещё не загрузили! Жмем загрузить фотографии.

ajax - upload файлов

ajax - upload файлов

4. Начинается загрузка файлов. Два прогрессбара. Первый показывает общий прогресс, второй - файла, который грузится в данный момент.

ajax - upload файлов

ajax - upload файлов

5. Если Вы внимательно разглядывали картинки, то, наверное заметили ссылку очистить список. В версии, которую я “затачивал” под себя она без перезагрузки страницы удаляет список загрузок и соответствующие ему файлы на сервере.

В моей реализации при загрузке создаются три копии картинки :

  1. Иконка (20px*Xpх)
  2. Миниатюра (150px*Xpx)
  3. Большое изображение(600px*Xpx)

Ресайзятся пропорционально. Исходное изображение тут же удаляется. Этим я “предохраняю” сервер от неоправданно больших и “тяжелых” изображений.

На миниатюру и большое избражение вставляется водяной знак.

С помощью FancyUpload’а можно загружать файлы размером до 2Гб!

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

Скачать иходники Вы можете на сайте разработчиков, приведу только php-функции, необходимые для создания миниатюр изображений, нанесения водяных знаков на изображения и удаления исходного изображения.

1. imageresize - ресайзит изображение пропорционально, наносит водяной знак на получившееся изображение.

// $outfile -  путь к файлу, который получится после преобразования
// $neww - ширина в px, к которой преобразуем
// $infile - путь к файлу, который преобразуем
// $quality - качество изображения в %
// вызов функции выглядит примерно так:
//
// imageresize("images/out_image.jpg",150,"uploads/image.jpg",100);
//
function imageresize($outfile,$neww,$infile,$quality) {

$im=imagecreatefromjpeg($infile);

$newh=$neww*imagesy($im)/imagesx($im);

$im1=imagecreatetruecolor($neww,$newh);
imagecopyresampled($im1,$im,0,0,0,0,$neww,$newh,imagesx($im),imagesy($im));
if($neww>=140)//добавляем водяной знак на изображения больше среднего размера
{              //путь к изображению с водяным знаком
$image_logo = "../../../images/logo.png";
$im_logo = imagecreatefrompng($image_logo);
imagecopy($im1, $im_logo, 0, 0, 0, 0, 150, 25);
}
imagejpeg($im1,$outfile,$quality);
imagedestroy($im);
imagedestroy($im1);
}
2. Удаление файла

//удаляем исходный файл
if(@file_exists('upload/file.jpg'))
{
unlink('upload/file.jpg');
}

По просьбам читателей выкладываю исходники своего варианта этого загрузчика: скачать ajax-uploader.

Google Bookmarks Digg I.ua Linkstore Myscoop Communizm Ru-marks Webmarks Ruspace Linkomatic Kli.kz Web-zakladka Zakladok.net Reddit delicious Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong

Если Вам понравилась эта статья,
подпишитесь на RSS !

Способы повышения юзабилити форм.

Понедельник, июня 15, 2009

1. Создание динамических опросов на jQuery и PHP.

В этом туториале Вы узнаете, как создать опрос с использованием PHP и XHTML, а также jQuery Ajax - функций для получения результата голосования без перезагрузки страницы, и придания опросу эффектов анимации.

Как создать опрос на AJAX

Как создать опрос на AJAX?


<div id="poll-container">
<h3>Poll</h3>
<form id='poll' action="poll.php" method="post" accept-charset="utf-8">
<p>Pick your favorite Javascript framework:</p>
<p><input type="radio" name="poll" value="opt1" id="opt1" /><label for='opt1'>&nbsp;jQuery</label><br />
<input type="radio" name="poll" value="opt2" id="opt2" /><label for='opt2'>&nbsp;Ext JS</label><br />
<input type="radio" name="poll" value="opt6" id="opt6" /><label for='opt6'>&nbsp;mootools</label><br /><br />
<input type="submit" value="Vote &rarr;" /></p>
</form>
</div>

Эта форма будет обработана на PHP в асинхронном режиме (без перезагрузки страницы), и когда мы получим ответ от сервера, в работу всупит Javascript (jQuery) и покажет нам результат голосования.

Демо

2. FancyUpload – загрузка файлов на Ajax (v3.0)

FancyUpload-достойная альтернатива стандартной загрузке файлов.

Загрузка файлов AJAX

AJAX-загрузка файлов

Загрузка файлов AJAX, её плюсы и достоинства перед другими:
Загружает файлы без перезагрузки страницы.
Можно загружать сразу несколько файлов.
Имеет анимированный прогресс-бар.
Легко настраивается с помощью CSS и XHTML.
Использует библиотеку Mootools.


<form action="../script.php" method="post" enctype="multipart/form-data" id="form-demo">
<fieldset id="demo-fallback">
<legend> Загрузка файла </ Legend>
<p>
Эта форма является лишь примером FancyUpload.
Если Вы видите эту часть, то что-то не впорядке с вашим исходным кодом.
</ P>
<label for="demo-photoupload">
Загрузить файл:
<input type="file" name="Filedata" />
</label>
</ fieldset>

Демо

3. Ajax Fancy Captcha - drag and drop каптча.

Ajax Fancy Captcha - jQuery плагин, который помогает вам защитить ваши веб-страницы от роботов и спамеров. Ajax каптча - новый, интуитивно понятный способ  ”проверить человечность” посетителя сайта. Для этого посетителю предлагается перетащить указанный пункт в круг.

AJAX каптча

AJAX каптча

Теперь посетителям нет необходимости разбирать непонятные картинки и вводить их значеия в поле или складывать цифры. Ajax Fancy Captcha - хороший шаг вперёд с точки зрения повышения юзабилити форм.

Демо

4. jQuery UI Слайдер для элементов SELECT

Плагин позволяет прогрессивно расширить функционал HTML-тэга <select>. Ползунок дает возможность визуально показать, “развернуть” на шкале значения поля <select>.

Select jQuery UI

Select jQuery UI

Идеально подойдет для выбора временного периода по шкале времени или цены, устраивающей покупателя в форме для поиска товара по цене.

Демо

5. jQuery Password Strength Meter - проверка паролей на прочность.

jQuery Password Strength Meter представляет собой подключаемый модуль, который с помощью смарт алгоритмов обрабатывает на лету входящие данные (пароль) и возвращает данные о его надежности.

Проверка паролей на прочность jQuery

Проверка паролей на прочность jQuery

Демо

И напоследок, не пропустите акцию от блога “Всё обо всём или попытки заработка“  и получите Бесплатный баннер на 2 месяца. Удачи!

Google Bookmarks Digg I.ua Linkstore Myscoop Communizm Ru-marks Webmarks Ruspace Linkomatic Kli.kz Web-zakladka Zakladok.net Reddit delicious Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong

Если Вам понравилась эта статья,
подпишитесь на RSS !

Проверка форм на jQuery

Понедельник, апреля 20, 2009

Проверка форм на jQuery

form_login

Проверка формы для комментариев с помощью плагина jQuery jquery.validation_form.js

В продолжение темы “проверка паролей на javascript” решил сделать плагин проверки форм для самой распространенной javascript библиотеки - jQuery.

(далее…)

Google Bookmarks Digg I.ua Linkstore Myscoop Communizm Ru-marks Webmarks Ruspace Linkomatic Kli.kz Web-zakladka Zakladok.net Reddit delicious Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong

Если Вам понравилась эта статья,
подпишитесь на RSS !

Библиотека JavaScript Image Processing Library

Четверг, апреля 16, 2009

Библиотека javascript pixastic

Библиотека javascript pixastic

Давиче хотел найти  как сделать эффект мутной прозрачности как в Vist’е и наткнулся на интересную javascript библиотеку pixastic, о ней, собственно и пойдет речь.

Для начала покажу пример.

Довольно занятно не правда ли? И это без подмены изображений, на чистом javascript.

С помощью этой библиотеки к изображениям можно применять  следующие эффекты:

  • Blend - наложение изображений
  • Blur - размытие
  • Blur Fast -  размытие (можно задать силу размытия)
  • Brightness/Contrast - яркость/контраст
  • Color Adjust - цвето-фильтры
  • Color Histogram - цветовая гистограмма
  • Crop - обрезание изображения
  • Desaturate - чёрно-белое
  • Emboss - рельефное изображение
  • Flip Horizontally - отразить по-горизонтали
  • Flip Vertically - отразить по-вертикали
  • Glow - свечение
  • Hue/Saturation/Lightness - оттенок / насыщенность / яркость
  • Invert - инверсия
  • Lighten - яркость
  • Mosaic - мозаика
  • Noise - шум
  • Posterize - пастеризация
  • Remove Noise - убрать шум
  • Sepia - сепия
  • Sharpen - четкость
  • и.т.д

Область применения:

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

Кстати о наведении мыши, на сайте разработчиков не нашел как сделать так, чтобы при onmouseover применялся эффект, а при onmouseout - возвращались исходные значения. Пришлось сделать самому на jquery, скачать и просмотреть реализацию (39 Kb)  можно!

На сайте разработчиков можно собрать свою сборку библиотеки, в которую Вы сможете добавить только те эффекты, которые Вам нужны. Так же можно скачать библиотеку в виде плагина jquery.

P.S. По просьбам читателей реализован обратный эффект, т.е. при загрузке страницы изображение - чёрно-белое (к примеру), а при наведении мыши становится цветным.

Скачать демо обратного эффекта.

P.P.S. Добавлен пример эффекта blur fast

Скачать демо blur-fast.

Google Bookmarks Digg I.ua Linkstore Myscoop Communizm Ru-marks Webmarks Ruspace Linkomatic Kli.kz Web-zakladka Zakladok.net Reddit delicious Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong

Если Вам понравилась эта статья,
подпишитесь на RSS !

10 галерей для Вашего сайта

Вторник, апреля 7, 2009

1. Лайтбокс Lightbox2

Лайтбокс - простой, ненавязчивый скрипт, используется для наложения изображения на текущую страницу. Легко и быстро настраивается и работает во всех современных браузерах. Особенности: можно использовать с группами изображений и легко переключаться между ними (предыдущее - следущее).  Лайтбокс анимированно ресайзится под размеры изображения. Используется prototype.

lightbox | jquery

lightbox | prototype

2. Cлайдер изображений jQuery Image Strip

jQuery Image Strip - слайдер изображений, с эффектом скольжения по-горизонтали. Используется jQuery.

jQuery Image Strip

Image Strip | jquery

3. Cлайдер изображений slideViewer  1.1

slideViewer 1.1 - простой слайдер изображений, с эффектом скольжения по-горизонтали. Построен на ненумерованных списках. Используется jQuery.

gallery-3

slideViewer | jquery

4. Cлайдер изображений Photo Slider

Photo Slider - слайдер изображений, отличается от остальных автоматической прокруткой изображений, с возможностью приостановки. Используется jQuery.

gallery-4

Photo Slider | jquery

5. Обрезание изображений jQuery Thumbs

jThumb - динамично обвертывает изображения  и / или ссылки с изображениями в div. Вы можете задать им конкретные размеры (ширина и высота) в CSS файле. В кадр попадает середина изображения. Используется jQuery.

gallery-5

jQuery Thumbs | jquery

6. Слайдер изображений  jCarousel Lite

jCarousel Lite - очень легкая галерея, всего лишь 2 kb.  Позволяет прокручивать изображения, HTML - код. Используется jQuery.

gallery-6

jCarousel Lite | jquery

7. Эффекты смены изображений jQuery Cycle Plugin

Cycle Plugin - плагин jquery, используется для создания эффектов при смене изображений в галерее.

gallery-7

Cycle Plugin | jQuery

8.  Галерея с миниатюрами lightweight image gallery

lightweight image gallery - галерея с миниатюрами. Используется javascript. gallery-8

9. Галерея с миниатюрами Galleria

Galleria - красивая галерея с миниатюрами. Особенности: показ описания изображения, возможность  листания изображений (предыдущее - следующее) Используется jQuery.

gallery-9

Galleria | jquery

10.  Простая галерея на HTML - HTML vs jQuery

html vs jquery - самая простая галерея. В ее основе лежит html - тэг “marquee”. Управление галереей осуществляется небольшими функциями javascript. Код галереи - 10 строк (галерея + управление). Используется HTML.

Галерея на HTML

html vs jquery | html + javascript

Вот, собственно, и всё! Желаю блестящих реализаций всех ваших идей.

Google Bookmarks Digg I.ua Linkstore Myscoop Communizm Ru-marks Webmarks Ruspace Linkomatic Kli.kz Web-zakladka Zakladok.net Reddit delicious Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong

Если Вам понравилась эта статья,
подпишитесь на RSS !