Полезные jQuery-сниппеты

от автора

JavaScript-библиотека jQuery становится все популярнее, и в этой заметке я собрал простые jquery-сниппеты, с помощью которых можно значительно улучшить удобство работы с сайтом.

Предзагрузка изображений

Помогает загружать необходимые изображения на странице заранее. [Источник]

(function($) {   var cache = [];   // Arguments are image paths relative to the current page.   $.preLoadImages = function() {     var args_len = arguments.length;     for (var i = args_len; i--;) {       var cacheImage = document.createElement('img');       cacheImage.src = arguments[i];       cache.push(cacheImage);     }   }  jQuery.preLoadImages("image1.gif", "/path/to/image2.png"); 

Внешние ссылки

Этот сниппет открывает в новом окне все ссылки с параметром rel=«external». [Источник

$('a[@rel$='external']').click(function(){      this.target = "_blank"; });  /*     Usage:    <a href="http://www.catswhocode.com" rel="external">catswhocode.com</a> */ 

Определение JavaScript

Очень простой код, всего в одну строку, который определяет, работает ли JavaScript у пользователя, и назначает определенный класс hasJS тегу body. [Источник]

$('body').addClass('hasJS'); 

 Выравнивание высоты

Позволяет выравнивать высоту колонок на странице. [Источник]

var max_height = 0; $("div.col").each(function(){     if ($(this).height() > max_height) { max_height = $(this).height(); } }); $("div.col").height(max_height); 

HTML5 в старых браузерах

Помогает устаревшим браузерам понимать разметку HTML. [Источник]

(function(){if(!/*@cc_on!@*/0)return;var e = "abbr,article,aside,audio,bb,canvas,datagrid,datalist,details,dialog,eventsource,figure,footer,header,hgroup,mark,menu,meter,nav,output,progress,section,time,video".split(','),i=e.length;while(i--){document.createElement(e[i])}})() 

Лучше использовать так:

<!--[if lt IE 9]> <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> 

Проверка поддержки CSS3

С помощью этого кода, можно проверить поддержку определенного CSS3-свойства в браузере. В примере проверяется border-radius. [Источник]

var supports = (function() {    var div = document.createElement('div'),       vendors = 'Khtml Ms O Moz Webkit'.split(' '),       len = vendors.length;     return function(prop) {       if ( prop in div.style ) return true;        prop = prop.replace(/^[a-z]/, function(val) {          return val.toUpperCase();       });        while(len--) {          if ( vendors[len] + prop in div.style ) {             // browser supports box-shadow. Do what you need.             // Or use a bang (!) to test if the browser doesn't.             return true;          }        }       return false;    }; })();  if ( supports('textShadow') ) {    document.documentElement.className += ' textShadow'; 

Горячие клавиши

Назначение событий определенным клавишам. [Источник]

$('input').keydown(function(e) {   // variable e contains keystroke data   // only accessible with .keydown()   if(e.which == 11) {      e.preventDefault();   } });  $('input').keyup(function(event) {   // run other event codes here							   }); 

Hover-эффект

Позволяет управлять поведением элемента при наведении курсора мыши. [Источник]

$("a").hover(   function () {     // code on hover over   },   function () {     // code on away from hover   } ); 

Fade-эффект

Картинка тускнеет при наведении курсора мыши. [Источник]

$(document).ready(function(){     $(".thumbs img").fadeTo("slow", 0.6); // This sets the opacity of the thumbs to fade down to 60% when the page loads      $(".thumbs img").hover(function(){         $(this).fadeTo("slow", 1.0); // This should set the opacity to 100% on hover     },function(){         $(this).fadeTo("slow", 0.6); // This should set the opacity back to 60% on mouseout     }); }); 

Параметры URL

Простое получение параметров URL страницы. [Источник]

$.urlParam = function(name){ 	var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(window.location.href); 	if (!results) { return 0; } 	return results[1] || 0; } 

Скролл наверх

Простой, но мощный способ реализовать скролл к началу документа. [Источник]

$("a[href='#top']").click(function() {   $("html, body").animate({ scrollTop: 0 }, "slow");   return false; }); 

Плавный скролл к якорю

Позволяет плавно переключаться к нужной части документа. [Источник]

$(document).ready(function() { 	$("a.topLink").click(function() { 		$("html, body").animate({ 			scrollTop: $($(this).attr("href")).offset().top + "px" 		}, { 			duration: 500, 			easing: "swing" 		}); 		return false; 	}); }); 

Переключение CSS-классов

Позволяет изменить CSS-класс нужного элемента, бывает полезно например для пунктов меню. [Источник]

$('nav a').toggleClass('selected'); 

Отключение Enter

Отключает клавишу Enter в форме. [Источник]

$("#form").keypress(function(e) {   if (e.which == 13) {     return false;   } }); 

Использованные материалы:

ссылка на оригинал статьи http://habrahabr.ru/post/159703/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *