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;
}
});
Использованные материалы:
- 10 awesome jQuery snippets
- 14 Handy jQuery Code Snippets for Developers
- Top 10 jQuery Snippets
- Snipplr.com
Автор: