Vitamin – сервис для выгодного управления вашей рекламой
  • Все популярные рекламные сети в одном окне
  • Агентское вознаграждение до 16% на личный счет или рекламу
  • Любые дополнительные услуги под ваши потребности
  • Бесплатное обучение маркетингу
  1. Главная >
  2. Блог >
  3. Полезные jQuery сниппеты (часть 2)

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

jqsnippets

За многие годы своего существования, jQuery стал обязательным помощником для каждого веб-разработчика. Сам по себе язык прост в использовании, быстрый и очень мощный. В этой статье, мы продолжим пополненние коллекцию наших jQuery сниппетов, которую мы начали в прошлом году. Данные сниппеты легко адаптировать под ваши ​​личные скрипты. Еще одна статья, которую нужно добавить в закладки!

Плавная прокрутка к началу страницы

Давайте начнем наш список с очень популярного и полезного сниппета. Следующие 4 строки кода, позволят вашим посетителям плавно перейти в начало страницы, просто нажав на ссылку (с #top ID), расположенную в нижней части страницы.

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

Как клонировать заголовок таблицы в её нижнюю часть.

Для лучшей читаемости таблицы, хорошей идеей будет клонировать заголовок в её нижнюю часть. Вот этот полезный сниппет:

var $tfoot = $('<tfoot></tfoot>');
$($('thead').clone(true, true).children().get().reverse()).each(function(){
    $tfoot.append($(this));
});
$tfoot.insertAfter('table thead');

Загрузка внешнего контента

Вам нужно добавить какой-то внешний контент в div? Это довольно легко сделать с помощью jQuery, как показано в примере ниже:

$("#content").load("somefile.html", function(response, status, xhr) {
  // error handling
  if(status == "error") {
    $("#content").html("An error occured: " + xhr.status + " " + xhr.statusText);
  }
});

Колонки одинаковой высоты

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

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

$("div.col").height(maxheight);

Частичное обновление страницы

Если вам нужно обновить только часть страницы, тогда следующие 3 строки, безусловно вам помогут. В этом примере #refresh div автоматически обновляется каждые 10 секунд.

setInterval(function() {
$("#refresh").load(location.href+" #refresh>*","");
}, 10000); // milliseconds to wait

Предварительная загрузка изображений

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

$.preloadImages = function() {
       for(var i = 0; i<arguments.length; i++) {
               $("<img />").attr("src", arguments[i]);
       }
}

$(document).ready(function() {
       $.preloadImages("hoverimage1.jpg","hoverimage2.jpg");
});

Открытие внешних ссылок в новой вкладке/окне

Атрибут target="blank" позволяет принудительное открытие ссылок в новых окнах. В то время как это имеет отношение к открытию внешних ссылок в новой вкладке или окне, ссылки с теми же доменами, определенно должны быть открыты в том же окне.

Следующий код определяет, если ссылка является внешней, и если да, то тогда target="blank" атрибут добавляется к ней.

$('a').each(function() {
   var a = new RegExp('/' + window.location.host + '/');
   if(!a.test(this.href)) {
       $(this).click(function(event) {
           event.preventDefault();
           event.stopPropagation();
           window.open(this.href, '_blank');
       });
   }
});

Div полная ширина/высота окна просмотра (viewport) с помощью jQuery

Данный сниппет позволит вам создать полную ширину/высоту div в соответствии с viewport. Код также обрабатывает изменения размера окна. Отлично подходит для модальных диалогов или всплывающих окон.

// глобальные vars
var winWidth = $(window).width();
var winHeight = $(window).height();

// установка первоначальной div высоты / ширины
$('div').css({
    'width': winWidth,
'height': winHeight,
});

// убедитесь, что div остается в полной width/height при изминение размера
$(window).resize(function(){
    $('div').css({
    'width': winWidth,
    'height': winHeight,
});
});

Проверить, загрузилось ли изображение

Этот сниппет является лучшим способом узнать, если изображение загружается или нет.

var imgsrc = 'img/image1.png';
$('<img/>').load(function () {
    alert('image loaded');
}).error(function () {
    alert('error loading image');
}).attr('src', imgsrc);

Сортировка списка по алфавиту

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

$(function() {
    $.fn.sortList = function() {
    var mylist = $(this);
    var listitems = $('li', mylist).get();
    listitems.sort(function(a, b) {
        var compA = $(a).text().toUpperCase();
        var compB = $(b).text().toUpperCase();
        return (compA < compB) ? -1 : 1;
    });
    $.each(listitems, function(i, itm) {
        mylist.append(itm);
    });
   }

    $("ul#demoOne").sortList();

});

Мы уверены, вы найдете им достойное применение в своих новых проектах! Кстати, если вы использовали один из этих сниппетов у себя на сайте – скиньте ссылку в комментариях – мы оценим!

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

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

Генеральный партнёр: STRATE FZ-LLC License number 47005249 Address: B03-227 Business Center 02 RAKEZ Business Zone-FZ RAK (Ras Al Khaimah), United Arab Emirates Email: corporate@strate.ae