Возвращайте до 18% с пополнений рекламы
  • Все популярные рекламные сети в одном окне
  • Рекламные инструменты — бесплатно
  • Доступ к конструктору лендингов и WebApp-приложений
  • Закрывающие документы точно в срок
ring svg
  1. Главная >
  2. Блог >
  3. Полезные jQuery сниппеты (часть 1)

Полезные jQuery сниппеты (часть 1)

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

Плавный скроллинг к #anchor

Когда пользователь находится в футере страницы сайта, было бы очень полезно обеспечить его быстрым способом вернуться к верхней части страницы. Вот простой способ как сделать гладкий скроллинг к #anchor на ваш выбор.

// HTML:
// <h1 id="anchor">Lorem Ipsum</h1>
// <p><a href="#anchor" class="topLink">Back to Top</a></p>

$(document).ready(function() {

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

});

Изменение размера изображения c использованием jQuery

Хотя вы и должны менять размер изображения на стороне сервера (с помощью PHP и GD), все таки может быть полезной возможность изменить размер изображения с помощью jQuery. Вот удобный сниппет, чтобы это сделать.

$(window).bind("load", function() {
	// IMAGE RESIZE
	$('#product_cat_list img').each(function() {
		var maxWidth = 120;
		var maxHeight = 120;
		var ratio = 0;
		var width = $(this).width();
		var height = $(this).height();

		if(width > maxWidth){
			ratio = maxWidth / width;
			$(this).css("width", maxWidth);
			$(this).css("height", height * ratio);
			height = height * ratio;
		}
		var width = $(this).width();
		var height = $(this).height();
		if(height > maxHeight){
			ratio = maxHeight / height;
			$(this).css("height", maxHeight);
			$(this).css("width", width * ratio);
			width = width * ratio;
		}
	});
	//$("#contentpage img").show();
	// IMAGE RESIZE
});

Автоматическая загрузка контента на скроллинге

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

Вот как вы можете повторить этот эффект на вашем сайте:

var loading = false;
$(window).scroll(function(){
	if((($(window).scrollTop()+$(window).height())+250)>=$(document).height()){
		if(loading == false){
			loading = true;
			$('#loadingbar').css("display","block");
			$.get("load.php?start="+$('#loaded_max').val(), function(loaded){
				$('body').append(loaded);
				$('#loaded_max').val(parseInt($('#loaded_max').val())+50);
				$('#loadingbar').css("display","none");
				loading = false;
			});
		}
	}
});

$(document).ready(function() {
	$('#loaded_max').val(50);
});

Тестирование надежности пароля

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

$('#pass').keyup(function(e) {
     var strongRegex = new RegExp("^(?=.{8,})(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])
(?=.*\W).*$", "g");
     var mediumRegex = new RegExp("^(?=.{7,})(((?=.*[A-Z])(?=.*[a-z]))|
((?=.*[A-Z])(?=.*[0-9]))|((?=.*[a-z])(?=.*[0-9]))).*$", "g");
     var enoughRegex = new RegExp("(?=.{6,}).*", "g");
     if (false == enoughRegex.test($(this).val())) {
             $('#passstrength').html('More Characters');
     } else if (strongRegex.test($(this).val())) {
             $('#passstrength').className = 'ok';
             $('#passstrength').html('Strong!');
     } else if (mediumRegex.test($(this).val())) {
             $('#passstrength').className = 'alert';
             $('#passstrength').html('Medium!');
     } else {
             $('#passstrength').className = 'error';
             $('#passstrength').html('Weak!');
     }
     return true;
});

Выравнивание высоты div элементов

Сделать выравнивание высоты div элементов в чистом CSS не возможно, для этого мы обратимся к jQuery. Приведенный ниже код будет автоматически регулировать высоту div элементов в соответствии с более высокой высотой.

var maxHeight = 0;

$("div").each(function(){
if ($(this).height() > maxHeight) { maxHeight = $(this).height(); }
});

$("div").height(maxHeight);

Простое и эффективное исправление PNG для IE6

В 2013 году IE6, наконец, почти не осталось, и люди используют только новые браузеры. Но тем не менее, в некоторых ситуациях вы должны позаботиться об этом ужасном браузера и обеспечить IE6-совместимый веб-сайт. Так как IE6 не может справляться с прозрачностью PNG, вот супер простой jQuery хак, который принудит PNG рендеринг.

Просто добавьте .pngfix класс ко всему, что вы хотите исправить.

$('.pngfix').each( function() {
   $(this).attr('writing-mode', 'tb-rl');
   $(this).css('background-image', 'none');
   $(this).css( 'filter', 'progid:DXImageTransform.Microsoft.AlphaImageLoader
(src="path/to/image.png",sizingMethod="scale")');
});

Переменные цвета строк – “зебра”

В больших списках или таблицах, чередование цвета строк может существенно улучшить читаемость. Ниже показано, как можно чередовать цвета строк в списке элементов, используя jQuery. Вы можете использовать любой HTML элемент, который хотите: td, tr, li, и т.д. …

//jquery
  $('div:odd').css("background-color", "#F4F4F8");
  $('div:even').css("background-color", "#EFF1F1");

//html example
<div>Row 1</div>
<div>Row 2</div>
<div>Row 3</div>
<div>Row 4</div>

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

Вы никогда не замечали, как быстро загружаются изображения при пролистывании фотоальбомов на Facebook? Это потому, что Facebook предварительно загружает каждое из этих изображений в кэш браузера, прежде чем вы даже их просматриваете. Вот как вы сможете достичь аналогичного поведения на вашем веб-сайт, используя немного JQuery магии.

var nextimage = "/images/some-image.jpg";
$(document).ready(function(){
window.setTimeout(function(){
var img = $("<img>").attr("src", nextimage).load(function(){
//all done
});
}, 100);
});

Сделайте весь div интерактивным

Допустим, у вас есть этот HTML код и в нем есть ссылка:

<div class="myBox">
     раз два три.
    <a href="//google.com">link</a>
</div>

Следующие строки jQuery сделают весь div интерактивным:

$(".myBox").click(function(){
     window.location=$(this).find("a").attr("href"); 
     return false;
});

Высоких конверсий!

blog comments powered by Disqus
Возвращайте до 18% с пополнений рекламы
  • Все популярные рекламные сети в одном окне
  • Рекламные инструменты — бесплатно
  • Доступ к конструктору лендингов и WebApp-приложений
  • Закрывающие документы точно в срок
ring svg
copyright © 2011–2024 Все права защищены
Запрещено любое копирование материалов ресурса без письменного согласия владельца — ООО "Феникс-Маркетинг". ИНН:7725812838, КПП:772501001, ОГРН: 513774619323915280, Москва, ул. Ленинская слобода, д. 19, стр. 1, этаж/пом 3/25

ООО «Феникс-Маркетинг» — IT-компания с многолетним опытом работы, разрабатывающая инновационные решения для управления процессом лидогенерации (пост-клик маркетинг). Разработанное нами технологическое программное решение LPGENERATOR позволяет создавать целевые страницы в визуальном редакторе и управлять заявками (лидами) в CRM-системе в целях проведения эффективных, высококонверсионных рекламных кампаний