#javascript #jquery #jquery-ui
#javascript #jquery #jquery-пользовательский интерфейс
Вопрос:
Такие скрипты часто используются на разных каналах (видеохостингах). Когда пользователь наводит курсор мыши на миниатюру скриншота, этот скриншот заменяется следующим и так далее. Когда мышь выходит, там появляется первое изображение. Мне нужно получить название скриптов такого типа (например, ролловер, карусель, слайд-шоу), чтобы найти его в Google.
Ответ №1:
«Опрокидывание» лучше всего подходит для того, что, я думаю, вы описываете. Вы используете mouseover
события / mouseout
или mouseenter
/ mouseleave
(последние зависят от IE, но jQuery предоставляет их во всех браузерах, и иногда их немного проще использовать), чтобы получать уведомления о том, что вы должны изменить изображение, затем вы меняете изображение (присваивая свойству img
элемента src
, скрывая один img
элементи показывать другой, играя в CSS-игры и т. Д. — Есть много способов).
Так, например (живая копия):
HTML:
<p data-img="http://www.gravatar.com/avatar/ca3e484c121268e4c8302616b2395eb9?s=32amp;d=identiconamp;r=PG">Mousing over this paragraph shows my gravatar.</p>
<p data-img="http://www.gravatar.com/avatar/8b12d17e2b54660de108a0995e1b5c3f?s=32amp;d=identiconamp;r=PG">Mousing over this one shows yours.</p>
<p>If you're not over either, we show Jon Skeet's.</p>
<img id="theImage" src="http://www.gravatar.com/avatar/6d8ebb117e8d83d74ea95fbdd0f87e13?s=48amp;d=identiconamp;r=PG">
JavaScript:
jQuery(function($) {
var img = $("#theImage"),
defaultImg = img[0].src;
$("p[data-img]")
.mouseenter(function() {
img[0].src = $(this).attr("data-img");
})
.mouseleave(function() {
img[0].src = defaultImg;
});
});
Это просто очень, очень простой пример. Также часто предварительно загружаются изображения (чего я не делал выше), либо просто используя другие img
элементы, которые находятся вне страницы (скажем, style="position: absolute; left: -10000px"
), либо загружая их из скрипта (создавая img
элементы и назначая их src
). ). Таким образом, когда приходит время переключать изображения, в браузере уже есть изображение в кэше, и это происходит довольно плавно.
Комментарии:
1. Чтобы подробнее остановиться на этом, обычно вращение изображений обрабатывается вызываемой функцией
setInterval
, которая обычно привязана кmouseover
событию, иclearInterval
, которая привязана кmouseout
событию.2. @Bryan: Я бы так не сказал, не в том, что описывает OP. В слайд-шоу и тому подобное, конечно.
3. Я полагаю, что последовательные изображения обычно также извлекаются через AJAX, прежде чем переключаться между ними.
4. @TJ: Аааа.. Я сразу подумал о вращающемся эффекте скриншота, который используют многие видеосайты, основываясь на его вопросе.
5. @GregL: обычно их предварительно извлекают либо с помощью разметки, либо с помощью скрипта, но не через Ajax конкретно.