Strict Standards: Resource ID#18 used as offset, casting to integer (18) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#23 used as offset, casting to integer (23) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#25 used as offset, casting to integer (25) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#26 used as offset, casting to integer (26) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Нужна небольшая галлерея
ТвойWeb ТвойWeb
Качественный Европейский хостинг
Форум для чайников
 Чат на форуме      Помощь      Поиск      Пользователи


 Страниц (2): [1] 2 » 

> Без описания
Str
Отправлено: 18 Сентября, 2006 - 09:20:37
Post Id


Newbie


Покинул форум
Сообщений всего: 24
Дата рег-ции: Сент. 2006  

Карма 0




Нужна небольшая галлерея, примерно как здесь:
http://www.autotrader.com/fyc/vd...p;ref=srl#vdptop
 
 Top
Дмитрий Б.
Отправлено: 19 Сентября, 2006 - 08:04:42
Post Id



Super Member


Покинул форум
Сообщений всего: 800
Дата рег-ции: Март 2005  
Откуда: Иркутск

Карма 0




Str
Ссылка дохлая...

На WoWebе смотрел?
 
 Top
Str
Отправлено: 19 Сентября, 2006 - 09:43:38
Post Id


Newbie


Покинул форум
Сообщений всего: 24
Дата рег-ции: Сент. 2006  

Карма 0




Нету там ничего подходящего. Опишу скрипт вкратце:

Есть таблица, в таблице 3 ячейки. В каждой ячейке по картинке. Также есть две кнопки: вперед и назад. При нажатии кнопки вперед, сбоку выезжают следующие три картинки, и так по циклу.
 
 Top
Дмитрий Б.
Отправлено: 21 Сентября, 2006 - 06:42:09
Post Id



Super Member


Покинул форум
Сообщений всего: 800
Дата рег-ции: Март 2005  
Откуда: Иркутск

Карма 0




Str
CODE:
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=windows-1251">
<title>Фотогалерея</title>

<script type="text/javascript">
<!--
var filesNames=
[
'image1.jpg',
'image2.jpg',
'image3.jpg',
'image4.jpg',
'image5.jpg'
];

var path='images/';
var current=0, activeImages=3, imagesShift=2;
var preloadedImages;

function main()
{
var i;

preloadedImages=new Array(filesNames.length);
for (i=0; i<filesNames.length; i++)
preloadedImages[i]=new Image();

preloadCurrent();
setTimeout(preload, 1000);
}

function preloadCurrent()
{
for (var i=current; i<current+activeImages; i++)
if (!preloadedImages[i%preloadedImages.length].src)
preloadedImages[i%preloadedImages.length].src=path+filesNames[i%preloadedImages.length];
}

function preload()
{
var i, currentLoads=0;

for (i=0; i<preloadedImages.length; i++)
if (preloadedImages[i].src&&(!preloadedImages[i].complete))
currentLoads++;

for (i=current+activeImages; (currentLoads<activeImages)&&(i<preloadedImages.length); i++)
if (!preloadesImages[i].src)
{
preloadedImages[i].src=path+filesNames[i];
currentLoads++;
}

for (i=0; (currentLoads<activeImages)&&(i<current); i++)
if (!preloadesImages[i].src)
{
preloadedImages[i].src=path+filesNames[i];
currentLoads++;
}

for (i=0; i<preloadedImages.length; i++)
if (!preloadedImages[i].src)
return setTimeout(preload, 1000);
}

function back()
{
current-=imagesShift;
while (current<0)
current+=filesNames.length;
preloadCurrent();

var i, j, a;
for (i=current; (i-current)<activeImages; i++)
{
if (a=document.getElementById('image'+(i-current+1)))
a.src=preloadedImages[i%preloadedImages.length].src;
else
window.status='Ошибка при задании тегов <img>...';
}
}

function forward()
{
current+=imagesShift;
while (current>=filesNames.length)
current-=filesNames.length;
preloadCurrent();

var i, a;
for (i=current; (i-current)<activeImages; i++)
{
if (a=document.getElementById('image'+(i-current+1)))
a.srcreloadedImages[i%preloadedImages.length].src;
else
window.status='Ошибка при задании тегов <img>...';
}
}

main();

//-->
</script>
</head>

<body>

<table width="400" align="center">
<tr>
<td width="33%">
<img src="images/image1.jpg" id="image1">
</td>

<td width="33%">
<img src="images/image2.jpg" id="image2">
</td>

<td width="33%">
<img src="images/image3.jpg" id="image3">
</td>
</tr>
</table>

<input type="button" value="Назад" onclick="back();">
<input type="button" value="Вперёд" onclick="forward();">

</body>
</html>


Здесь filesNames - массив имён файлов, path - путь к картинкам, current - начальная позиция, activeImages - число отображаемых картинок, imagesShift - на сколько картинок происходит сдвиг вперёд или назад.
 
 Top
Str
Отправлено: 21 Сентября, 2006 - 09:28:42
Post Id


Newbie


Покинул форум
Сообщений всего: 24
Дата рег-ции: Сент. 2006  

Карма 0




Сенкс огромный, это именно то, что я искал Ха-ха
 
 Top
Str
Отправлено: 21 Сентября, 2006 - 09:34:40
Post Id


Newbie


Покинул форум
Сообщений всего: 24
Дата рег-ции: Сент. 2006  

Карма 0




Вот только кнопка вперед не работает и при загрузке страницы картинки появляются не сразу, а только после нажатия кнопки "назад" (ну может еще и после нажатия кнопки "вперед",но она не работает)Однако
 
 Top
Дмитрий Б.
Отправлено: 21 Сентября, 2006 - 10:05:50
Post Id



Super Member


Покинул форум
Сообщений всего: 800
Дата рег-ции: Март 2005  
Откуда: Иркутск

Карма 0




Str
Пардон, не проверил скрипт во всех браузерах - думал, он настолько прост, что этого не потребуется. Я ошибался... Ну не везёт мне с Оперой - одним словом, любит она меня! Снова и снова...

Межбраузерный код выглядит вот так:
CODE:
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=windows-1251">
<title>Фотогалерея</title>

<script type="text/javascript">
<!--
var filesNames=
[
'image1.jpg',
'image2.jpg',
'image3.jpg',
'image4.jpg',
'image5.jpg'
];

var path='images/';
var current=0, activeImages=3, imagesShift=2;
var preloadedImages;

function main()
{
var i;

preloadedImages=new Array(filesNames.length);
for (i=0; i<filesNames.length; i++)
preloadedImages[i]=new Image();

preloadCurrent();
show();
setTimeout(preload, 1000);
}

function hasSrc(image)
{
return image.src&&(image.src.lastIndexOf('.')>image.src.lastIndexOf('/'));
}

function preloadCurrent()
{
var i, src;
for (i=current; i<current+activeImages; i++)
if (!hasSrc(preloadedImages[i%preloadedImages.length]))
preloadedImages[i%preloadedImages.length].src=path+filesNames[i%preloadedImages.length];
}

function preload()
{
var i, currentLoads=0;

for (i=0; i<preloadedImages.length; i++)
if (hasSrc(preloadedImages[i])&&(!preloadedImages[i].complete))
currentLoads++;

for (i=current+activeImages; (currentLoads<activeImages)&&(i<preloadedImages.length); i++)
if (!hasSrc(preloadedImages[i]))
{
preloadedImages[i].src=path+filesNames[i];
currentLoads++;
}

for (i=0; (currentLoads<activeImages)&&(i<current); i++)
if (!hasSrc(preloadedImages[i]))
{
preloadedImages[i].src=path+filesNames[i];
currentLoads++;
}

for (i=0; i<preloadedImages.length; i++)
if (!hasSrc(preloadedImages[i]))
return setTimeout(preload, 1000);
}

function back()
{
current-=imagesShift;
while (current<0)
current+=filesNames.length;
preloadCurrent();

show();
}

function forward()
{
current+=imagesShift;
while (current>=filesNames.length)
current-=filesNames.length;
preloadCurrent();

show();
}

function show()
{
var i, a;
for (i=current; (i-current)<activeImages; i++)
{
if (a=document.getElementById('image'+(i-current+1)))
a.src=preloadedImages[i%preloadedImages.length].src;
else
window.status='Ошибка при задании тегов <img>...';
}
}

//-->
</script>
</head>

<body onload="main();">

<table width="400" align="center">
<tr>
<td width="33%">
<img src="images/image1.jpg" id="image1">
</td>

<td width="33%">
<img src="images/image2.jpg" id="image2">
</td>

<td width="33%">
<img src="images/image3.jpg" id="image3">
</td>
</tr>
</table>

<input type="button" value="Назад" onclick="back();">
<input type="button" value="Вперёд" onclick="forward();">

</body>
</html>


З. Ы. Если будете читать - не удивляйтесь: hasSrc нужен, чтобы в Opera 7.23 работало...
 
 Top
Str
Отправлено: 21 Сентября, 2006 - 12:24:42
Post Id


Newbie


Покинул форум
Сообщений всего: 24
Дата рег-ции: Сент. 2006  

Карма 0




Отлично, все работает Улыбка. А можно сделать так, чтобы скрипт поддерживал несколько таких галлерей на одной странице?
 
 Top
Дмитрий Б.
Отправлено: 21 Сентября, 2006 - 21:52:20
Post Id



Super Member


Покинул форум
Сообщений всего: 800
Дата рег-ции: Март 2005  
Откуда: Иркутск

Карма 0




Str
Элементарно!

CODE:
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=windows-1251">
<title>Фотогалерея</title>

<script type="text/javascript">
<!--
var slideshows=
[
{
filesNames:
[
'image1.jpg',
'image2.jpg',
'image3.jpg',
'image4.jpg',
'image5.jpg'
],

path: 'images/',
idPrefix: 'image',

current: 0,
activeImages: 3,
imagesShift: 2,
preloadedImages: null
},

{
filesNames:
[
'image1.jpg',
'image2.jpg',
'image3.jpg',
'image4.jpg',
'image5.jpg'
],

path: 'slides/',
idPrefix: 'slide',

current: 0,
activeImages: 3,
imagesShift: 1,
preloadedImages: null
}
];

function main()
{
var i, n;

for (n=0; n<slideshows.length; n++)
with (slideshows[n])
{
preloadedImages=new Array(filesNames.length);
for (i=0; i<filesNames.length; i++)
preloadedImages[i]=new Image();

preloadCurrent(n);
show(n);
setTimeout('preload('+n+')', 1000);
}
}

function hasSrc(image)
{
return image.src&&(image.src.lastIndexOf('.')>image.src.lastIndexOf('/'));
}

function preloadCurrent(n)
{
with (slideshows[n])
{
var i, src;
for (i=current; i<current+activeImages; i++)
if (!hasSrc(preloadedImages[i%preloadedImages.length]))
preloadedImages[i%preloadedImages.length].src=path+filesNames[i%preloadedImages.length];
}
}

function preload(n)
{
with (slideshows[n])
{
var i, currentLoads=0;

for (i=0; i<preloadedImages.length; i++)
if (hasSrc(preloadedImages[i])&&(!preloadedImages[i].complete))
currentLoads++;

for (i=current+activeImages; (currentLoads<activeImages)&&(i<preloadedImages.length); i++)
if (!hasSrc(preloadedImages[i]))
{
preloadedImages[i].src=path+filesNames[i];
currentLoads++;
}

for (i=0; (currentLoads<activeImages)&&(i<current); i++)
if (!hasSrc(preloadedImages[i]))
{
preloadedImages[i].src=path+filesNames[i];
currentLoads++;
}

for (i=0; i<preloadedImages.length; i++)
if (!hasSrc(preloadedImages[i]))
return setTimeout('preload('+n+')', 1000);
}
}

function back(n)
{
with (slideshows[n])
{
current-=imagesShift;
while (current<0)
current+=filesNames.length;
preloadCurrent(n);

show(n);
}
}

function forward(n)
{
with (slideshows[n])
{
current+=imagesShift;
while (current>=filesNames.length)
current-=filesNames.length;
preloadCurrent(n);

show(n);
}
}

function show(n)
{
with (slideshows[n])
{
var i, a;
for (i=current; (i-current)<activeImages; i++)
{
if (a=document.getElementById(idPrefix+(i-current+1)))
a.src=preloadedImages[i%preloadedImages.length].src;
else
window.status='Ошибка при задании тегов <img>...';
}
}
}

//-->
</script>
</head>

<body onload="main();">

<table width="400" align="center">
<tr>
<td width="33%">
<img src="images/image1.jpg" id="image1">
</td>

<td width="33%">
<img src="images/image2.jpg" id="image2">
</td>

<td width="33%">
<img src="images/image3.jpg" id="image3">
</td>
</tr>
</table>

<input type="button" value="Назад" onclick="back(0);">
<input type="button" value="Вперёд" onclick="forward(0);">


<table width="400" align="center">
<tr>
<td width="33%">
<img src="images/image1.jpg" id="slide1">
</td>

<td width="33%">
<img src="images/image2.jpg" id="slide2">
</td>

<td width="33%">
<img src="images/image3.jpg" id="slide3">
</td>
</tr>
</table>

<input type="button" value="Назад" onclick="back(1);">
<input type="button" value="Вперёд" onclick="forward(1);">

</body>
</html>
 
 Top
Str
Отправлено: 22 Сентября, 2006 - 03:34:22
Post Id


Newbie


Покинул форум
Сообщений всего: 24
Дата рег-ции: Сент. 2006  

Карма 0




Спасибо.
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 2 (гостей: 2, зарегистрированных: 0, скрытых: 0)
« JavaScript »


Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только администраторы и модераторы могут отвечать на сообщения в этом разделе.



Форум на AlfaSpace.NET


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0458]     [ Gzipped ]



Notice: ob_end_flush(): failed to send buffer of ob_gzhandler (1) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/page_tail.php on line 33