Вы можете подумать про себя: «Что за шумиха с jQuery? Вам нужно скачать кучу плагинов, чтобы даже сделать библиотеку стоящей». Во-первых, это не так. Во-вторых, библиотека jQuery была специально разработана для этой цели. Сохраняя базовую библиотеку настолько маленькой, насколько это возможно — около 16 КБ, — пользователи могут применять дополнительные плагины по своему усмотрению. Сегодня я научу вас, как создать свой первый плагин «Центр» с нуля. Давайте начнем!
Наша цель
Мы хотим создать плагин, который будет динамически корректировать стилизацию указанного элемента, чтобы он всегда оставался вертикально и горизонтально по центру на странице — даже при изменении размера окна браузера. Очень мало требуется заранее. Вам нужно только убедиться, что у вас есть загруженная библиотека jQuery .
Скринкаст
Шаг 1
Первым шагом при создании плагина является добавление пустого файла Javascript. Соглашения об именах гласят, что файл должен называться «YourPluginName.jQuery.js». Создав этот файл, убедитесь, что вы создали ссылку на него в своем документе.
1
2
3
4
|
<head>
<script src=»jquery-1.2.6.pack.js» type=»text/javascript»></script>
<script src=»center.jQuery.js» type=»text/javascript»></script>
</head>
|
Шаг 2
Затем вставьте следующий код.
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
(function($){
$.fn.center = function(){
var element = this;
$(element).load(function(){
changeCss();
$(window).bind(«resize», function(){
changeCss();
});
function changeCss(){
var imageHeight = $(element).height();
var imageWidth = $(element).width();
var windowWidth = $(window).width();
var windowHeight = $(window).height();
$(element).css({
«position» : «absolute»,
«left» : windowWidth / 2 — imageWidth / 2,
«top» : windowHeight /2 — imageHeight / 2
});
};
});
};
})(jQuery);
|
Я подробнее расскажу о видео, но я бы хотел остановиться на нескольких ключевых моментах. Каждый раз, когда вы создаете плагин, он должен быть заключен в:
1
|
$.fn.center = function(){};
|
«Центр» должен быть заменен на имя вашего плагина. Это позволяет jQuery знать, что вы расширяете его методы. Теперь, хотя он абсолютно ничего не делает, мы можем вызвать наш метод center с помощью:
1
2
3
|
$(function(){
$(«#someElement»).center();
});
|
Шаг 3
Вы должны понимать, как вручную центрировать изображение на странице, прежде чем создавать плагин. Во-первых, ваш элемент должен быть расположен абсолютно. В противном случае, очевидно, что он не сдвинется с места, когда мы изменим «левые» и «верхние» значения. Затем изображение должно быть смещено на 50% ширины браузера влево. Наконец, чтобы компенсировать ширину изображения, нам нужно вычесть одну половину ширины изображения.
01
02
03
04
05
06
07
08
09
10
11
12
|
function changeCss(){
var imageHeight = $(element).height();
var imageWidth = $(element).width();
var windowWidth = $(window).width();
var windowHeight = $(window).height();
$(element).css({
«position» : «absolute»,
«left» : windowWidth / 2 — imageWidth / 2,
«top» : windowHeight /2 — imageHeight / 2
});
};
|
Это прекрасно поместит центр изображения в центр страницы. Это немного сложно объяснить с помощью текста. Обязательно посмотрите видео для большего объяснения.
Шаг 4
Продолжая, нам нужно создать прослушиватель, когда размер окна браузера изменяется.
1
2
3
|
$(window).bind(«resize», function(){
changeCss();
});
|
«ChangeCss ()» — это функция, которая корректирует левое и верхнее значения нашего изображения. При повторном вызове при изменении размера окна jQuery пересчитает эти значения.
Вы сделали!
Если у вас есть какие-либо вопросы, пожалуйста, оставьте комментарий, и я обязательно отвечу. Как всегда, это не может быть «готов к реальному миру». Что произойдет, если у пользователя отключен Javascript? И, конечно, есть несколько способов сделать это с использованием чистого CSS — но я отвлекся.
Подпишитесь на еженедельные скринкасты
- Как только ITUNES загрузится, нажмите «Advanced Tab»
- Выберите «Подписаться на подкаст»
- Введите «http://feeds.feedburner.com/NETTUTSVideos»
Это должно сделать это! Скринкаст также будет доступен для поиска на ITUNES в ближайшие двадцать четыре часа.
- Подпишитесь на RSS-канал NETTUTS, чтобы узнать о ежедневных новостях и статьях о веб-разработке.