Задача: на страничке имеется картинка, нужно, чтобы она менялась на другие с определенным интервалом.
Для начала "пометьте" картинку ИДентификатором, например, так:
<img alt="" id=slideshow src="rere.jpg"><body onload='start()'><script type="text/javascript">
var interval=5 //интервал в секундах
var img, n=0
var imgsrc=['book14.jpg','book23.jpg','disk.jpg','disk-comp.jpg','inlay.jpg','matrix.jpg']
function start(){
setInterval(show, interval*1000)
}
function show(){
if(!img)img=document.getElementById('slideshow');
img.src=imgsrc[n++];
if(n>=imgsrc.length) n=0;
}
</script> setInterval(show, interval*1000)А у всех ли будет работать такая конструкция? Я имею ввиду браузеры с отключенными приложениями выполнения сценария и прочее. Например, при уровне защиты (как наз-ся эта функция браузера IE?) или безопасности выше среднего скрипты не выполняются.
Естественно, скрипты будут выполняться, если только браузер их выполняет и они включены (по умолчанию всегда так)
![]()
Подобный твоему пост можно написать в любой теме этого подраздела. Включать ли выполнение скриптов или нет - дело пользователя и не тема этого раздела форума
А нельзя ли это "Простейшее слайд-шоу" слегка приукрасить, например, добавить плавную смену одной фотки на другую? Если это сложно не заморачивайтесь, обойдусь тем что есть, спасибо!
Можно, всё можно. Но не без труда ![]()
Проще всего сделать для Эксплорера, там для этого есть штатные средства. А вот чтобы везде работало...
Приведенный ниже пример работает в основных браузерах.
1. Скачайте библиотеку jQuery и разместите ее на своем сайте. jQuery - это просто javascript-файл.
Можно взять здесь http://web-forum.ws/redirect.php?http://naunaunau.narod.ru/scripts/jquery.js или скачать последнюю версию на сайте проекта http://web-forum.ws/redirect.php?http://jquery.com
Файл небольшой, порядка 30 кб.
2. "Пропишите" его в разделе HEAD страницы, что-то типа:
<script type="text/javascript" src="/scripts/jquery.js"></script><script type="text/javascript">
var period=5
var imgX=400, imgY=300
// *************************
$(document).ready(function(){setInterval(show_next, period*1000);});
function show_next(arg){
var s='fade normal up up2 down left right center show'.split(' ')
for(var i=0; i<s.length; i++){
if(s[i].match(/normal$|show$|fade$|up2$/gim)) var el=$('#show_'+s[i]+' img:first').hide();
if(s[i]=='left') var el=$('#show_left img:first').css({left:(-imgX)+'px'});
if(s[i]=='right') var el=$('#show_right img:first').css({left:(imgX)+'px'});
if(s[i]=='up') var el=$('#show_up img:first').css({top:(-imgY)+'px'});
if(s[i]=='down') var el=$('#show_down img:first').css({top:(imgY)+'px'});
if(s[i]=='center')var el=$('#show_center img:first').css({left:(imgX/2)+'px',top:(imgY/2)+'px',width:'1px',height:'1px',opacity:'0'});
$('#show_'+s[i]).append(el)
var newel=$('#show_'+s[i]+' img:last')
if(s[i]=='normal') newel.show();
if(s[i]=='show') newel.show('slow');
if(s[i]=='fade') newel.fadeIn('slow');
if(s[i]=='up2') newel.slideDown()
if(s[i].match(/up$|down$|left$|right$/gim)) newel.animate({top: "0",left: "0"}, 500)
if(s[i]=='center') newel.animate({top: "0",left: "0",width: imgX+'px', height:imgY+'px',opacity:'1'}, 500)
}
};
</script><style type="text/css">
#show_center, #show_up, #show_up2, #show_left, #show_right, #show_down, #show_normal,#show_show, #show_fade
{
position:relative;
width:400px;
height:300px;
border:1px solid red;
overflow:hidden;
}
#show_center img, #show_up img, #show_up2 img,
#show_left img, #show_right img, #show_down img, #show_normal img,
#show_show img, #show_fade img
{
position:absolute;
top:0;left:0;
}
</style><div id="show_fade">
<img src=559247836_1.jpg width=400 height=300>
<img src=559247836_2.jpg width=400 height=300>
<img src=559248116.jpg width=400 height=300>
</div>Кто-нить пробовал?
Я о последнем...
И я о том же. На главной странице, внизу слева, несколько маленьких фотографий сменяют друг друга при помощи твоего скрипта и jquery, которую скачал по твоему совету с jQuery.com
А, вижу ![]()
(картинки лучше не масштабировать на странице, имхо)
<img alt="" id=slideshow src="rere.jpg"><body onload='start()'><script type="text/javascript">
var interval=5 //интервал в секундах
var img, n=0
var imgsrc=['book14.jpg','book23.jpg','disk.jpg','disk-comp.jpg','inlay.jpg','matrix.jpg']
function start(){
setInterval(show, interval*1000)
}
function show(){
if(!img)img=document.getElementById('slideshow');
img.src=imgsrc[n++];
if(n>=imgsrc.length) n=0;
}
</script> setInterval(show, interval*1000)Возможна.
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)