Zepto.js — это минималистичная библиотека JavaScript, разработанная
для упрощения работы с DOM, AJAX и событиями в браузере. Она во многом
похожа на jQuery, но имеет меньший размер и ориентирована на современные
браузеры. Основной объект библиотеки обозначается символом
$ и используется для выборки элементов и выполнения над
ними различных операций.
var elems = $('.class-name'); // выбор всех элементов с классом class-name
Выборка элементов возвращает объект Zepto, который поддерживает цепочку вызовов методов.
Методы .html() и .text() позволяют получать
и задавать содержимое элементов:
$('.content').html('<p>Новый текст</p>'); // заменяет HTML внутри элементов
$('.content').text('Простой текст'); // заменяет текстовое содержимое
Добавление элементов в DOM осуществляется с помощью методов
.append(), .prepend(), .before(),
.after():
$('.list').append('<li>Новый элемент</li>'); // добавляет в конец
$('.list').prepend('<li>Первый элемент</li>'); // добавляет в начало
Удаление элементов производится методами .remove() и
.empty():
$('.item').remove(); // полностью удаляет элементы
$('.container').empty(); // очищает содержимое контейнера
Метод .attr() используется для работы с атрибутами:
$('.link').attr('href', 'https://example.com'); // задает атрибут
var href = $('.link').attr('href'); // получает значение
Метод .css() позволяет задавать стили или получать их
значения:
$('.box').css('background-color', 'blue'); // устанавливает стиль
var color = $('.box').css('background-color'); // получает текущий стиль
Zepto предоставляет удобные методы для привязки событий:
.on(), .off(), .trigger().
$('.button').on('click', function() {
console.log('Клик по кнопке');
});
$('.button').off('click'); // удаляет привязанные события
$('.button').trigger('click'); // программно вызывает событие
Также поддерживаются делегированные события:
$(document).on('click', '.dynamic-item', function() {
console.log('Нажат элемент, добавленный динамически');
});
Методы .hover() и .focus() упрощают работу
с событиями наведения и фокуса:
$('.menu-item').hover(
function() { $(this).addClass('hover'); },
function() { $(this).removeClass('hover'); }
);
Zepto включает поддержку AJAX-запросов через методы
.ajax(), .get(), .post(),
.getJSON().
$.ajax({
url: '/data',
method: 'GET',
dataType: 'json',
success: function(response) {
console.log(response);
},
error: function(xhr) {
console.error(xhr.statusText);
}
});
Упрощённые методы позволяют быстрее выполнять типовые запросы:
$.get('/data', function(data) {
console.log(data);
});
$.post('/submit', {name: 'John'}, function(response) {
console.log(response);
});
$.getJSON('/info.json', function(json) {
console.log(json);
});
Методы .show(), .hide(),
.fadeIn(), .fadeOut() позволяют управлять
видимостью элементов и создавать плавные переходы.
$('.panel').hide(); // скрывает элемент
$('.panel').show(); // показывает элемент
$('.panel').fadeIn(500); // плавное появление за 500 мс
$('.panel').fadeOut(300); // плавное скрытие за 300 мс
Метод .animate() позволяет задавать кастомные анимации
для CSS-свойств:
$('.box').animate({width: '200px', opacity: 0.5}, 400);
Zepto поддерживает подключение модулей для работы с дополнительными
функциями, такими как fx для анимаций, ajax
для работы с сервером, event для событий,
touch для сенсорных событий. Модули подключаются отдельными
скриптами и расширяют основной функционал без увеличения размера базовой
библиотеки.
Пример подключения модуля анимации:
<script src="zepto.min.js"></script>
<script src="zepto.fx.js"></script>
Для адаптивного веб-дизайна Zepto позволяет динамически изменять классы, стили и структуру DOM в зависимости от размера окна или устройства.
function adjustLayout() {
if ($(window).width() < 768) {
$('.sidebar').hide();
$('.content').css('width', '100%');
} else {
$('.sidebar').show();
$('.content').css('width', '70%');
}
}
$(window).on('resize', adjustLayout);
adjustLayout();
Мобильные события, такие как touchstart,
touchmove, touchend, обеспечивают поддержку
сенсорного взаимодействия:
$('.slider').on('touchstart', function(e) {
console.log('Начало касания');
});
Zepto предоставляет функции для перебора и фильтрации элементов,
такие как .each(), .map(),
.filter():
$('.items').each(function(index, elem) {
$(elem).text('Элемент ' + index);
});
var evenItems = $('.items').filter(function(idx, el) {
return idx % 2 === 0;
});
Методы .first(), .last(),
.eq() позволяют выбирать элементы по позициям в
коллекции:
$('.items').first().css('color', 'red');
$('.items').last().css('color', 'blue');
$('.items').eq(2).css('color', 'green');
Zepto.js сочетает компактность и мощные возможности, позволяя создавать интерактивные, адаптивные и оптимизированные интерфейсы, минимизируя нагрузку на браузер и обеспечивая удобство работы с DOM, событиями и AJAX.