Archive for category Работа

Скрыть значение при клике на поле

Очень простой скрипт на Jquery. Позволяет скрыть value когда input поймал фокус и показать когда фокус потерян.

Инсталляция: вешаем класс “change-val” на нужные инпуты в форме.

  1. function hideValue() {
  2.  
  3.     var elem = jQuery(“.change-val”);
  4.     if (elem.size() > 0) {
  5.         elem.each(function () {
  6.             var defaultVal = jQuery(this).val();
  7.             jQuery(this).focus(function () {
  8.                 if (jQuery(this).val() == defaultVal) {
  9.                     jQuery(this).val();
  10.                 }
  11.             }).blur(function () {
  12.                 if (jQuery(this).val() == ) {
  13.                     jQuery(this).val(defaultVal);
  14.                 }
  15.             });
  16.         });
  17.     }
  18.  
  19. }
  20.  
  21.  
  22. jQuery(document).ready(function () {   
  23.         hideValue();
  24. });

Удачи!

,

Комментариев нет

Ускорь свой Javascript

Некоторые советы для ускорения выполнения Javascript.

1. Не использовать анонимные функции

Медленно:

  1. function func() {
  2. function square(p) {return p *p};
  3. var i  = 100, sum = 0;
  4. while(i–) {sum += square(i)}
  5. }

Быстро:

  1. function func() {
  2. var i  = 100, sum = 0;
  3. while(i–) {sum += i*i}
  4. }

2. Писать на классическом синтаксисе

Медленно:

  1. function func() {
  2. var a = [];
  3. var o = {};
  4. }

Быстро:

  1. function func() {
  2. var a = new Array;
  3. var o = new Object;
  4. }

3. Использовать while вместо for

Медленно:

  1. function func() {
  2. var string = ;
  3. for(var i = 0; i < 1000; i++) {
  4. string = string + str;
  5. }
  6. }

Быстро:

  1. function func() {
  2. var string = , i = 1000;
  3. while(i–) {string = string + str;}
  4. }

Измерять скорость выполнения можно в консоли фаербага, если прописать console.time(’test’); вначале и console.timeEnd(’test’); вконце куска кода.

Комментариев нет

Jquery: Множественный фон, текст в колонки

Есть некоторые полезные свойства которые включены в спецификацию CSS3, но до сих пор не поддерживаются в полной мере современными браузерами(исключение пожалуй составляет только Safari).

И ничего другого не остается как эмулировать эти свойства через Javascript, а лучше с использованием замечательного фреймворка Jquery.

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

И так для реализации множественного фона нам понадобиться сам jquery 1.3.2 и плагин jquery.background_layers.js

Применяем все следующем образом:

  1. <script src=“jquery-1.3.2.min.js” type=“text/javascript”></script>
  2. <script src=“jquery.background_layers.js” type=“text/javascript”></script>
  3.  
  4. <script type=“text/javascript”>
  5. $(function(){ 
  6.     $(’#general’).add_layer("url(’/images/header_back.jpg’) no-repeat center top");
  7.     $(’#general’).add_layer("url(’/images/footer_back.jpg’) no-repeat center bottom");
  8. });
  9. </script>
  10.  
  11. <div id=“general”> множественный фон у этого блока </div>

Второе свойство которое приходится эмулировать это - текст в колонки, по типу газетной верстки. Преимущество этого свойства в том что кусок текста при добавлении на страницу автоматически разбивается на колонки и это не приходится делать вручную.

Для этого понадобиться jquery  1.2.6 и плагин autocolumn.js

Применение этого свойства выглядит так:

  1. <script src=“jquery1.2.6.js” type=“text/javascript”></script>
  2. <script src=“autocolumn.js” type=“text/javascript”></script>
  3.  
  4. <script type=“text/javascript”>
  5. $(function(){
  6.         $(’.column’).columnize({columns:2, width: 300});
  7. });
  8. </script>
  9.  
  10. <div class=“column”>
  11. <h1>Текст в колонки</h1>
  12. <p>Bonorum has. His u  usu in odio offendit theophrastus. Mel labore indoctum cu, ad soleat admodum delicatissimi sed, mei viris tritani ullamcorper eu. Ut vim simul aperiam.</p>
  13. </div>

Более подробные примеры работы этого плагина тут

, , ,

Комментариев нет

Русские буквы в UTF-8

Часто бывает необходимо работать с кириллицей в UTF-8. PHP до сих не может корректно обрабатывать такие строки. На помощь приходит волшебная функция iconv();

Попробуем обработать русскую строку так, чтобы перевести строку в транслит(например для формирования корректного URL или имени файла для закачки). Напишем функцию rus2lat():

  1. function rus2lat($text) {
  2. $text = substr($text, 0, 250); //обрезаем текст до приличных размеров(для URL)
  3. $rus = array(‘ё’,‘й’,‘ц’,‘у’,‘к’,‘е’,‘н’,‘г’,‘ш’,‘щ’,‘з’,‘х’,‘ъ’,‘ф’,‘ы’,‘в’, ‘а’,‘п’,‘р’,‘о’,‘л’,‘д’,‘ж’,‘э’, ‘я’,‘ч’,‘с’,‘м’,‘и’,‘т’,‘ь’,‘б’,‘ю’, ‘ ‘); //задаем массив русских букв
  4. $eng = array(‘yo’,‘y’,‘c’,‘u’,‘k’,‘e’,‘n’,‘g’,’sh’,’sch’,‘z’,‘h’,‘_’,‘f’,‘i’,‘v’, ‘a’,‘p’,‘r’,‘o’,‘l’,‘d’,‘zh’,‘e’, ‘ya’,‘ch’,’s’,‘m’,‘i’,‘t’,‘_’,‘b’,‘yu’, ‘_’); //соразмерный массив транслита
  5.  
  6. $count = count($rus);
  7.  
  8. for($i = 0;$i &lt;= $count; $i++) { //временно пережимаем всю кириллицу в WIN-1251, для корректной работы
  9. $russ[] = iconv(‘UTF-8′, ‘CP1251//IGNORE’,$rus[$i]); //IGNORE - символы, которых нет в конечной кодировке, будут опущены
  10.  }
  11.  
  12. $word = iconv(‘UTF-8′, ‘CP1251//IGNORE’, $text); //пережимаем текст в WIN-1251
  13. $word = str_replace($russ, $eng, strtolower($word)); //меняем кириллические символы на символы транслита. strtolower можно убрать, тогда придется добавить большие буквы в массивы $rus и $eng.
  14.  
  15. return iconv(‘CP1251//IGNORE’,‘UTF-8′, $word); //возращаем строку в UTF-8
  16. }

Результат работы:

  1. echo rus2lat(‘Привет мир!’); //Hello world. Шутка :) "privet_mir!"
  2.  

Таким же образом можно написать свои функции strtolower_ru(), strtoupper_ru(), ucfirst_ru() и др. Для этого просто надо поиграть со вторым массивом.

, , ,

2 комментария

Забудем про IE6




Комментариев нет

Центрирование сайта

Есть много способов центрирования сайта по вертикали и горизонтали.

Наиболее популярный это способ с отрицательными маргинами:

  1. .site {
  2. position:absolute;
  3. left:50%;
  4. top:50%;
  5. width:600px;
  6. height:400px;
  7. margin:-200px 0 0 -300px;
  8. }

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

Тогда на помощь приходит старый способ центрирования в ячейке таблицы:

  1. <table width=“100%” height=“100%”>
  2.   <td width=“100%” height=“100%” valign=“middle” align=“center” style=“vertical-align:middle;”>
  3.     < блок с сайтом>
  4.   </td>
  5. </tr>
  6. </table>

Но этот способ наиболее кроссбраузерный без указания DOCTYPE

,

Комментариев нет

Нестандартный скроллинг

Иногда по особой просьбе дизайнера необходимо сделать нестандартный скроллинг на сайте. Изменение внешнего вида скроллбаров поддерживают только IE и Opera, но только без указания DOCTYPE. Для полной кроссбраузерности с DOCTYPE нужно использовать яваскрипт, например jquery.

На этом сайте показан как работает один из таких скриптов - http://kelvinluck.com/assets/jquery/jScrollPane/examples.html

,

Один комментарий

Справочник по CSS 3

http://zapomni.ru/css/ - хороший справочник по CSS 3

Комментариев нет