Ну... не то что бы он не будет работать без информера, ヅ, просто ориентировка этого поста будет направлена именно под скрипт слайдера плюс информер. За основу - взял плагин «Cycle Through a List» от By Charles Harvey. В сети очень много подобных скриптов, но этот мне понравился своей простотой, лаконичностью и лёгкостью кода. Это не «Featured Content Slider» или «Coda Slider», которые, несомненно, имеют больше настроек и возможностей, но и весят в десятки, если не в сотни, раз больше. Выбор - всегда за вами. Помните об этом. В данном скрипте есть: автоматическая смена контента и регулировка/установка времени показа. В данном случае - мне больше ничего не нужно и не вижу смысла в навороченных по функционалу и настройкам более продвинутых фреймворках (Frameworks). Приступим. Для работы скрипта, а, следовательно и всего слайдера, нам/вам понадобится подключённая к странице/сайту библиотека jQuery версии не ниже v1.3.2. Как я уже где-то писал, но повторюсь: "Если у вас сайт на хостинге юКоз, и вы не совершали никаких действий по отключению скрипта - он у вас есть, так как подключён по умолчанию.". Это, тот самый, скрипт «u.js» - который включает в себя эту библиотеку.
Структура блока с контентом.Наверно вступление опущу, сразу код. HTML-каркас будующего блока: Code <ul class="newsCont" id="newsCont1">
</ul>
Как видно из кода - все просто до невозможности. В блок, в котором ожидаем показывать контент, просто вставляем ненумерованный список без элементов. Элементы, то есть «li» - будет подставлять информер. Идем в ПУ (здесь и далее - панель управления сайтом.) Главная » Информеры и создаём информер, например ... ну, давайте - Новости » Материалы в случайном порядке. Вы, естественно, можете выбрать другое.
Теперь создадим содержание для нашего информера. Выглядеть оно будет примерно вот так: Шаблон информера. Code <li> <h4><a title="$TITLE$«?if($CATEGORY_NAME$)?» [Категория «$CATEGORY_NAME$»]«?endif?»" href="$ENTRY_URL$">«?substr($TITLE$,0,25)?»...</a></h4> «?if($IMG_SMALL_URL1$)?» <img class="prev" style="width:120px;" src="$IMG_SMALL_URL1$" alt="$TITLE$" />«?else?»«?if($IMG_URL1$)?»<img class="prev" style="width:120px;" src="$IMG_URL1$" alt="$TITLE$" />«?endif?»«?endif?» $MESSAGE$ «?if($CATEGORY_NAME$)?»<span class="inf">[<a href="$CATEGORY_URL$">«?substr($CATEGORY_NAME$,0,25)?»...</a>]</span>«?endif?» </li>
Где: «?if($CATEGORY_NAME$)?» - проверяем, есть ли у данной новости категория, и, если есть - записываем её в титле.. «?substr($TITLE$,0,25)?» - ограничиваем количество символов в названии новости. В данном случае - 25. От «0», количеством «25». «?if($IMG_SMALL_URL1$)?» - Проверяем наличие маленькой картинки, если есть - выводим в новость. Если нет («?else?»), проверяем наличие «большой» («?if($IMG_URL1$)?), если есть большая - выводим, если нет - ничего не делаем («?endif?»«?endif?») «?if($CATEGORY_NAME$)?»<span class="inf"> - проверяем наличие категории, и, если есть, выводим ссылку в неё, которую тоже ограничиваем в количестве символов («?substr($CATEGORY_NAME$,0,25)?»).
Не забываем, при копировании кода, заменять « на < и вот это » на вот это > ... Движок парсит «?if(....)?» ... ヅ.
Оформлять контент нашего слайдера я буду при помощи CSS, которую затем буду подключать на страницы с информером. Можно прямо из скрипта, или вместе со скриптом. Позже покажу как. Итак, стили для контента. Code <style type="text/css">
ul.newsCont,ul.newsCont li,ul.newsCont *{ font: 11px/1 Verdana,sans-serif; list-style:none; background-image:none; margin:0; padding:0; } ul.newsCont{ width:200px; border:1px solid #CCC; position:relative; overflow:hidden; height:200px; text-align:left; } ul.newsCont li{ padding:3px 2px; opacity:0; display:none; position:absolute; } ul.newsCont p,ul.newsCont h4{ margin-bottom:3px; } ul.newsCont h4 a{ font: bold 11px/1 Georgia,serif; } ul.newsCont h4:first-letter { vertical-align:baseline;color:#C03; } ul.newsCont .inf{ position:absolute; top:187px;right:1px; text-align:right; float:right; background:#FFF; font-size:10px; color:777; padding:1px 3px 2px; } ul.newsCont img.prev{ max-height:120px!important; max-width:120px!important; border:solid 1px #ddd; float:left; margin-right:5px; padding:3px; }
</style>
Ну и, наконец, сам скрипт. ヅ Code (function($){ $.cycleThru={defaults:{delay:3000}}; $.fn.extend({cycleThru:function(config){ var config=$.extend({},$.cycleThru.defaults,config); return this.each(function(){ var delay = config.delay; var ulid = $(this).attr("id"); var el=0; var elmax=$(this).children("li").hide().length-1; function cyclee(){ $("ul#"+ulid+" li:eq("+el+")").show() .animate({"opacity":"1"}, 400) .animate({"opacity":"1"}, delay) .animate({"opacity":"0"}, 400,function(){ (el==elmax)?el=0:el++; cyclee(); }); }; cyclee(); }) } }) })(jQuery);
Скрипт вызова функции: Code <script type="text/javascript"> $("ul#newsCont1").cycleThru({delay:6000}); </script>
Остановлюсь на некоторых моментах: .animate({"opacity":"1"} ,400) - переход от полной прозрачности (opacity:0) до полной непрозрачности (opacity:1) за промежуток времени 400 миллисекунд. Можно прописать свои значения. Влияет на скорость/время отображения скрытого контента. Смены. .animate({"opacity":"1"}, delay) - тайм-аут - указываем при вызове (.cycleThru({delay:6000})). Значения в миллисекундах. Влияет на время отображения контента. .animate({"opacity":"0"}, 400 - переход от полной непрозрачности (opacity:1) до полной прозрачности (opacity:0) - скрытие. Число «400» - влияет на скорость/время скрытия контента. $("ul#newsCont1").cycleThru({delay:6000}); - вызов функции. Передаём значения таймингов показа (delay:6000) и ID блока контента к которому применяем функцию. В данном вызове - к блоку с идентификатором «newsCont1». Должна находится ниже блока.
Если на странице больше одного блока со слайд-контентом - у каждого из них должны быть оригинальные ID !!! У каждого блока - свой. Например: ul#newsCont1 и ul#newsCont2 и так далее. Соответственно к каждому - своя функция вызова. Например: К первому <script type="text/javascript"> $("ul#newsCont1").cycleThru({delay:6000}); </script> и ко второму <script type="text/javascript"> $("ul#newsCont2").cycleThru({delay:6000}); </script>
Если все сделано более-мене правильно, должно́ получится что-то вроде вот этого ... ヅ
Ну, и, наверное пример сто́ит привести .... ヅ ... Пример .... (откроется в новом окне ... ) Вопросы по теме - ниже, в комментариях ... Сам скрипт. (на всякий....)
P.S.Всем удачи... ヅ Flesh.
Источник: Делаем слайдер контента, новостей, под информер. Для юКоз (uCoz). Инструкция. Новостной слайдер на jQuery.Cycle Through,Content Slider |