
Быстрый поиск
Введите фрагмент названия статьи для поиска

Горизонтальный скроллер на JavaScript
17.08.2011 | Категория: Web-мастеру и не только | Автор: ManHunter

Горизонтальный скроллер на JavaScript
Захотел сделать горизонтальный скроллер для фотогалереи, естественно, без использования всяких сторонних скриптов. Условие: кроссбраузерность, валидная верстка и стандартные стили, поддержка колесика мыши. Начнем с верстки:
Code (HTML) : Убрать нумерацию
- <div class="scroller_container">
- <div class="scroller_navigate"><img src="images/left.gif" alt=""></div>
- <div class="scroller_window" id="scroller_window">
- <div class="scroller_row" id="scroller_row">
- <div id="scroller_rule">
- <!-- список превьюшек в линейке скроллера -->
- <a href="#"><img src="..." width="150" height="100" alt=""></a>
- <a href="#"><img src="..." width="150" height="100" alt=""></a>
- <a href="#"><img src="..." width="150" height="100" alt=""></a>
- <a href="#"><img src="..." width="150" height="100" alt=""></a>
- </div>
- </div>
- </div>
- <div class="scroller_navigate"><img src="images/right.gif" alt=""></div>
- </div>
Читать статью целиком »
Просмотров: 13563 | Комментариев: 21

Функции base64 на JavaScript
23.06.2011 | Категория: Web-мастеру и не только | Автор: ManHunter
По умолчанию в JavaScript отсутствуют штатные функции преобразования данных по алгоритму Base64. Ниже приведены две функции для base64-кодирования и декодирования на JavaScript. Их удобно использовать при передаче различных данных через AJAX или через web-формы, а также для хранения в исходном коде бинарных данных, например, зашифрованных строк.Code (HTML) : Убрать нумерацию
- // Функция кодирования строки в base64
- function base64encode(str) {
- // Символы для base64-преобразования
- var b64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefg'+
- 'hijklmnopqrstuvwxyz0123456789+/=';
- var b64encoded = '';
- var chr1, chr2, chr3;
- var enc1, enc2, enc3, enc4;
- for (var i=0; i<str.length;) {
- chr1 = str.charCodeAt(i++);
- chr2 = str.charCodeAt(i++);
- chr3 = str.charCodeAt(i++);
- enc1 = chr1 >> 2;
- enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
- enc3 = isNaN(chr2) ? 64:(((chr2 & 15) << 2) | (chr3 >> 6));
- enc4 = isNaN(chr3) ? 64:(chr3 & 63);
- b64encoded += b64chars.charAt(enc1) + b64chars.charAt(enc2) +
- b64chars.charAt(enc3) + b64chars.charAt(enc4);
- }
- return b64encoded;
- }
Читать статью целиком »
Просмотров: 16442 | Комментариев: 14

PCL's Nice Tooltip 1.1.4
14.03.2011 | Категория: Web-мастеру и не только | Автор: ManHunter
Для оформления этого блога мне понадобился хороший скрипт, показывающий всплывающие подсказки при наведении курсора мышки на определенные элементы страницы. Например, на картинки или ссылки. Готовыми скриптами я не пользуюсь, поэтому и здесь решил написать свой. Тем более я пока не встретил ни одного скрипта всплывающих подсказок, который обладал бы нужным мне функционалом. Так на свет появился скрипт PCL's Nice Tooltip, которым я с удовольствием с вами поделюсь.Описание и возможности PCL's Nice Tooltip:
- Кроссбраузерность. Скрипт протестирован и гарантированно работает в браузерах Internet Explorer 5.x-8.x и IE-based (Avant Browser, TheWorld, Maxthon и других), Gecko-based (Firefox, Mozilla, Netscape 8.x-9.x, K-Meleon и других), Opera 7.x-10.x, WebKit-based (Safari, Google Chrome, Iron и других). Поддерживаются различные типы DOCTYPE web-страниц.
- Всплывающее окно подсказки автоматически подстраивается под размер текста, длинный текст переносится. Подсказка не выходит за пределы экрана и всегда целиком находится в видимой области web-страницы, размер окна подсказки при достижении краев экрана не искажается. Корректно обрабатывается вертикальная и горизонтальная прокрутка, а также фреймы.
- Простое подключение скрипта, не требующее никаких навыков программирования. Для продвинутых пользователей смена внешнего вида окна подсказки через собственные стили, расширение списка поддерживаемых тегов. Подключаемый скрипт имеет очень небольшой размер и не требует для работы дополнительных файлов.
- Хорошая интеграция скрипта с различными AJAX-компонентами. После загрузки через AJAX и обновления какого-нибудь фрагмента текста на странице достаточно вызвать всего одну функцию PCL_TooltipUpdate() и всплывающие подсказки сразу будут доступны в обновленной части страницы. Пример - динамический AJAX-календарик у меня на сайте.
- Скрипт абсолютно бесплатный, единственным условием его использования является сохранение в исходном коде скрипта информации об авторе и ссылки на этот сайт. Категорически запрещается распространять скрипт PCL's Nice Tooltip за деньги или иное вознаграждение, как отдельно, так и в качестве составной части других дистрибутивов! Всех барыг на кол.
Читать статью целиком »
Просмотров: 8083 | Комментариев: 37

Как отправить из формы HTML только часть данных
04.11.2010 | Категория: Web-мастеру и не только | Автор: ManHunter
Формы - один из основных способов взаимодействия сайта и пользователя, без которых невозможно представить ни один современный сайт. Методы работы с формами стандартные, никаких сложностей в реализации вызывать не должны. В некоторых случаях требуется отправить только часть полей из большой формы. Типичный пример - настройки форума, когда можно сохранить какую-то одну из всех открытых категорий, а можно сохранить все сразу. Один из вариантов решения заключается в том, что можно каким-нибудь образом, например, уникальным индексом, пометить кнопку сабмита нужной группы.Code (HTML) : Убрать нумерацию
- <form action="process.php" method="post">
- <input type="text" name="text1" value="text1">
- <input type="checkbox" name="box1" value="box1">
- <input type="submit" name="submit1" value="Отправить 1 блок">
- <input type="text" name="text2" value="text2">
- <input type="checkbox" name="box2" value="box2">
- <input type="submit" name="submit2" value="Отправить 2 блок">
- <input type="submit" name="all" value="Отправить все">
- </form>
Второй способ, с использованием JavaScript, заключается в том, что из формы берутся нужные поля, затем динамически формируется новая форма, и на сервер отправляется уже она. Для этого придется сделать несколько вспомогательных действий. Первая - изменится разметка страницы.
Code (HTML) : Убрать нумерацию
- <div id="wrapper0">
- <div id="wrapper1">
- Текст 1: <input type="text" name="text1">
- <input type="checkbox" name="chk1" value="1">
- <input type="button" value="Сохранить" onclick="ds('wrapper1');">
- </div>
- <div id="wrapper2">
- Текст 2: <input type="text" name="text2">
- <input type="checkbox" name="chk2" value="2">
- <input type="button" value="Сохранить" onclick="ds('wrapper2');">
- </div>
- <div id="wrapper3">
- Текст 3: <input type="text" name="text3">
- <input type="checkbox" name="chk3" value="3">
- <input type="button" value="Сохранить" onclick="ds('wrapper3');">
- </div>
- <div>Глобально: <input type="text" name="global">
- <select name="sel">
- <option value="1">1</option>
- <option value="2">2</option>
- <option value="3">3</option>
- <option value="4">4</option>
- </select>
- </div>
- <input type="button" value="Сохранить все" onclick="ds('wrapper0');">
- </div>
Читать статью целиком »
Просмотров: 11612 | Комментариев: 4

Использование HTML-комментариев для хранения данных
16.10.2010 | Категория: Web-мастеру и не только | Автор: ManHunter
Как-то меня посетила мысль проверить, как определяются HTML-комментарии в DOM-структуре документа, и как можно получить доступ к их содержимому. Ведь по сути они являются полноправными составляющими документа. Напрямую, через ID, имя и другими подобными способами, естественно, сделать это не получится, т.к. тег комментария не имеет ничего подобного. Но сделать это все-таки удалось, привязавшись к соседнему тегу одного уровня с нужным комментарием. После этого элемент комментария со всеми потрохами можно получить через функцию JavaScript nextSibling или previousSibling, в зависимости от вашей ситуации. Это можно посмотреть, например, вот на таком фрагменте кода:Code (HTML) : Убрать нумерацию
- <div>
- <!--first comment--><div id="main_div">Main DIV</div><!--second comment-->
- </div>
- <script type="text/javascript">
- // Получить опорный элемент
- var el=document.getElementById('main_div');
- // Сообщение "first comment"
- alert(el.previousSibling.nodeValue);
- // Сообщение "second comment"
- alert(el.nextSibling.nodeValue);
- </script>
Code (HTML) : Убрать нумерацию
- <div id="overall">
- <a href="#">link</a>
- <!--first comment-->
- <div id="inner_div">
- inner div
- <!--second comment-->
- </div>
- plain text
- </div>
- <script type="text/javascript">
- var el=document.getElementById('overall');
- for (var i = 0; i < el.childNodes.length; i++) {
- if (el.childNodes[i]=='[object Comment]' ||
- el.childNodes[i]=='[object HTMLCommentElement]') {
- alert(el.childNodes[i].nodeValue);
- }
- }
- </script>
Читать статью целиком »
Просмотров: 5362 | Комментариев: 17
