Скрипт прокрутки изображений в мини-галерее на JavaScript

dynamicdrive logoКак-то мне понадобилось поместить на сайт небольшую динамическую галерею из небольших картинок.
Картинки в ней должны прокручиваться в зависимости от положения курсора над ними, представляя из себя импровизированный скроллер изображений. Результатом поиска стала javascript-библиотека функций описанная в заметке.

Библиотека называется «CMotion Image Gallery»
Официальная страница скрипта: http://www.dynamicdrive.com/dynamicindex4/cmotiongallery.htm
Там вы можете найти описание внедрения (на английском) и рабочий пример.

Описание:
CMotion Image Gallery представляет из себя универсальный скрипт галереи, в котором скорость и направление прокрутки картинок зависит от перемещений курсора по активной области. При клике на изображение в галерее можно загрузить увеличенное изображение или перейти на другую страницу.

Особенности:

  • Легкое опциональное центрирование начала галереи
  • Ширина в процентах может быть использована для подгонки ширины галереи под ширину экрана

Инструкция по внедрению галереи на страницу сайта

1. Поместить следующий код между тегами <head> вашей страницы

<link rel="stylesheet" type="text/css" href="gallerystyle.css" />
<!-- Условие для очень старого Internet Explorer -->
<!--[if gte IE 5.5]>
<style type="text/css">
#motioncontainer {
width:expression(Math.min(this.offsetWidth, maxwidth)+'px');
}
</style>
<![endif]-->
<!-- End Conditional Style -->
<script type="text/javascript" src="motiongallery.js">
</script>

Скрипт выше ссылается на внешние файлы .js и .css. Их надо скачать и закинуть в папку со страницей (скачивать через пункт «Сохранить как» контекстного меню):
1) motiongallery.js
2) gallerystyle.css
2. Поместить следующий html-код в <body> секцию вашей страницы:

<div id="motioncontainer" style="position:relative;overflow:hidden;">
<div id="motiongallery" style="position:absolute;left:0;top:0;white-space: nowrap;">
<nobr id="trueContainer"><a href="javascript:enlargeimage('dynamicbook1.gif')"><img src="dynamicbook1.gif" border=1></a> <a href="javascript:enlargeimage('dynamicbook1.gif', 300, 300)"><img src="dynamicbook1.gif" border=1></a> <a href="http://www.dynamicdrive.com"><img src="dynamicbook1.gif" border=1></a> <a href="#"><img src="dynamicbook1.gif" border=1></a> <a href="#"><img src="dynamicbook1.gif" border=1></a> <a href="#"><img src="dynamicbook1.gif" border=1></a> <a href="#"><img src="dynamicbook1.gif" border=1></a> <a href="#"><img src="dynamicbook1.gif" border=1></a> <a href="#"><img src="dynamicbook1.gif" border=1></a></nobr>
</div>
</div>

Не удаляйте из этого кода теги <nobr> и два внеших <div>-a. Для настройки размеров галереи измените значения CSS-атрибутов width и height первого «дива».

Также в коде приведены примеры различных событий происходящих при клике на картинки, например переход на URL, появление всплывающего окна с увеличенной картинкой, или ничего если ссылка убрана. Для примера в этот скрипт включена простая функция «enlargeimage()» которая вызывает всплывающее окно с адресом переданным как параметр.

Комментариев: 33

  • 18.02.2011 иван:

    1) motiongallery.js

    2) gallerystyle.css

    Ссылки битые. Жаль(

  • 18.02.2011 Кирилл:

    Только что проверил, обе работают ;) .

  • 08.03.2011 Ваще:

    Ссылки рабочие, сайт отличный

  • 17.03.2011 Ирина:

    а как можно сделать чтобы фото не заканчивались а шли постоянно?

    • 17.03.2011 Кирилл:

      На форуме dynamicdrive.com есть схожий вопрос, соответственно решения оттуда:

      1. Вариант под названием Text and Image Crawler (осторожно, при долгом просмотре может вызвать гипноэффект :) )

      2. И практически копия описанного в заметке CMotion Image Gallery, но работающей в круговом/кольцевом/loop режиме скрипт Pan Carousel

  • 24.03.2011 arris:

    Подскажите как сделать что бы картинка открывалась не в новой вкладке, а как бы увеличивалась, а при нажатии на нее возвращалась обратно?

    • 24.03.2011 arris:

      Решено! Совместил с этим скриптом

      • 28.03.2011 Кирилл:

        Спасибо за идею и ссылку :)

      • 30.06.2012 Сергей:

        А как совместить? У меня что-то не получается. Расскажите? Напишите ссылку на сайт где вы это применили.

  • 15.04.2011 Роджер:

    Спасибо за статью, но очень не хватает примера ,к счастью пример есть на официальном сайте

  • 20.04.2011 Mr.Wave:

    Да реально работает ... попробовал на сайте, заказчику прикрутить... кому интересно тут готовый вариант www.ресторан-зо...о.com/menu.html

    Автору респект!

  • 19.05.2011 Саня:

    Привет! Мне нужно сделать 2-3 таких прокрутки на странице. По факту отображаются все, НО работает только первая. Всвязи с этим, вопрос: как сделать так, чтоб работали все прокрутки?

    • 19.05.2011 Кирилл:

      Саня, посмотри решение в похожем примере в ссылках на dynamicdrive.com и т.п. ниже в комментах.

  • 10.06.2011 Леська:

    Скажите пожалуйста, как сделать это меню вертикальным? Очень нужно, делаю электронный учебник. заранее спасибо!

    • 14.06.2011 Кирилл:

      Чуть выше в комментариях есть ссылки на вертикальные варианты и их примеры.

  • 30.06.2011 алексей:

    Скрипт выше ссылается на внешние файлы .js и .css. Их надо скачать и закинуть в папку со страницей. Подскажите для чайников, а в какую папку?

    • 30.06.2011 Кирилл:

      Привет Алексей, легко расскажу, так как мы указываем адрес файлов без указания папок href='gallerystyle.css', то считается что они должны лежать в той же папке где и файл, например, index.html в котором они вызываются.


Добавление комментария:

 css.php