Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Скрипт плавной загрузки нескольких изображений

Сообщения:  [1-10]   [11-16] 

 
 автор: pautina   (26.05.2011 в 17:33)   письмо автору
 
   для: Абырвалг   (25.05.2011 в 17:14)
 

Очень хороший скрипт получился.
Спасибо Вам огромное,

  Ответить  
 
 автор: 098765   (26.05.2011 в 17:17)
 
   для: Абырвалг   (25.05.2011 в 17:14)
 

-

  Ответить  
 
 автор: Абырвалг   (25.05.2011 в 17:14)   письмо автору
 
   для: pautina   (25.05.2011 в 16:48)
 

1. Переименуйте Ваши 12-ть картинок следующим образом:
+-----------+-----------+-----------+-----------+
| img00.jpg | img01.jpg | img02.jpg | img03.jpg |
+-----------+-----------+-----------+-----------+
| img10.jpg | img11.jpg | img12.jpg | img13.jpg |
+-----------+-----------+-----------+-----------+
| img20.jpg | img21.jpg | img22.jpg | img23.jpg |
+-----------+-----------+-----------+-----------+
PS. Первая цифра - номер строки таблицы, вторая цифра - номер столбца.

2. Первоначальную картинку - img-ferst.jpg - оставьте с тем же именем.

3. Используйте следующий код:
<style>
#mTBL {visibility: hidden}
#mTBL img {width: 135px; height: 87px}
</style>
<script>
//Предзагрузка всех 13-ти картинок
for (var p = new Array (), j = m = 0; j < 3; j++) for (var k = 0; k < 4; k++)
   {p [m] = new Image ();  p [m++].src = 'img' + j + '' + k + '.jpg'}
p [m] = new Image ();  p [m].src = 'img-ferst.jpg';

//Собственно скрипт смены картинок
var v = 2000, x, y = new Array (), z;
function F ()
{
x = document.getElementById ('mTBL');
y [0] = y [1] = y [2] = '0123';
for (var j = 0, w = x.getElementsByTagName ('IMG'); j < w.length; j++)
w [j].src = 'img-ferst.jpg';
x.style.visibility = 'visible';
z = window.setTimeout ('S ()', v);
}
function S ()
{
for (var q, j = 0; j < 3; j++)
   {
   q = y [j].charAt (parseInt (Math.random () * 12345) % y [j].length);
   x.rows [j].cells [q].firstChild.src = 'img' + j + '' + q + '.jpg';
   y [j] = y [j].replace (new RegExp (q, ''), '');
   }
if (y [0].length) window.setTimeout ('S ()', v)
else window.setTimeout ('F ()', v);

onload = F;
</script>
<body>
<table id="mTBL" cellpadding="0" cellspacing="0">
<tr><td><img></td><td><img></td><td><img></td><td><img></td></tr>
<tr><td><img></td><td><img></td><td><img></td><td><img></td></tr>
<tr><td><img></td><td><img></td><td><img></td><td><img></td></tr>
</table>
</body>

  Ответить  
 
 автор: pautina   (25.05.2011 в 16:48)   письмо автору
 
   для: Абырвалг   (25.05.2011 в 15:06)
 

Да именно так всё и должно работать.
С кодом не поможете.)

  Ответить  
 
 автор: Абырвалг   (25.05.2011 в 15:06)   письмо автору
 
   для: pautina   (25.05.2011 в 14:52)
 

Значит, картинок у Вас всё-таки ТРИнадцать, а не ДВЕнадцать?

Одна - одинаковая для всех ячеек на момент загрузки страницы (img-ferst.jpg), и ещё двенадцать разных (для помещения в соответствующие ячейки).
1 + 12 = 13 или будете спорить с арифметикой? :-)
-----

1. Страница загрузилась. В 12-ти ячейках помещены 12-ть одинаковых картинок img-ferst.jpg
2. Через 2 секунды в 3-х ячейках вместо img-ferst.jpg должны появиться соответствующие ячейкам три картинки. В оставшихся 9-ти ячейках - все те же img-ferst.jpg
3. Ещё через 2 секунды уже в 6-ти ячейках - соответствующие 6-ть картинок, а в других 6-ти - img-ferst.jpg
4. Ещё через 2 секунды: в 9-ти картинках - соответствующие 9-ть картинок, в 3-х - img-ferst.jpg
5. Ещё через 2 секунды: во всех 12-ти ячейках - 12-ть соответствующих картинок.
6. Наконец, через ещё 2 секунды во всех 12-ти ячейках все картинки изменяются на первоначальную img-ferst.jpg, т.е. мы возвращаемся к состоянию, описанному в пункте 1. И выполняем пункты 2-6 заново.
7. На всех этапах (пункты 2-5) заменяемые три картинки должны находиться в разных строках таблицы.

Теперь я верно описал Вашу задачу?
Или опять у Вас возникнут какие-то проблемы с арифметикой?

Прочитайте внимательно, исправьте - если я что-то написал неверно.
Только ЧЕЛОВЕЧЕСКИМ языком. Чтобы было "ежу понятно". И чтобы не было проблем с арифметикой.

Свистните - тогда дам код.

  Ответить  
 
 автор: pautina   (25.05.2011 в 14:52)   письмо автору
 
   для: Абырвалг   (25.05.2011 в 12:00)
 

Да верно,
в момент загрузки страницы в 12 -ти ячейках таблицы должно грузится изображение img-ferst.jpg, после картинки меняются (в первой, 2-ой, 3-ей строке меняется сначала 1 картинка, потом 2,3,4) но эта должен быть рисунок с своим путем img-1.jpeg,...img-12.jpeg а не
x.rows [j].cells [q].firstChild.style.backgroundColor = 'red';

Может здесь как то использовать конструкцию массивов
var imgslide=new Array();
imgslide[0]=new Image();
imgslide[1]=new Image();
imgslide[2]=new Image();
imgslide[3]=new Image();
...
imgslide[11]=new Image();
imgslide[0].src ="img-1.jpg";
imgslide[1].src ="img-2.jpg";
imgslide[2].src ="img-3.jpg";
imgslide[3].src ="img-4.jpg";
...
imgslide[11].src ="img-12.jpg";

  Ответить  
 
 автор: Абырвалг   (25.05.2011 в 12:00)   письмо автору
 
   для: pautina   (25.05.2011 в 10:13)
 

Ячеек у Вас двенадцать.
Картинок у Вас тоже двенадцать.
Каждой ячейке соответствует своя определённая картинка.

Вопрос: что должно быть видно в каждой из двенадцати ячеек в момент, когда страница только-только загрузилась?

  Ответить  
 
 автор: pautina   (25.05.2011 в 10:13)   письмо автору
 
   для: pautina   (24.05.2011 в 20:28)
 

Рисунков всего у меня 12.
Как сделать чтобы
x.rows [j].cells [q].firstChild.style.backgroundColor = 'lime'; 

Мы не задавали цвет, а выбрали 1 из 12 рисуноков img-1.jpg...img-12.jpg

  Ответить  
 
 автор: pautina   (24.05.2011 в 20:28)   письмо автору
 
   для: pautina   (24.05.2011 в 17:01)
 

Да хороший скрипт вышел, спасибо за ошибки
Немного изменил его под себя

<style> 
    img { width: 135px; height: 87px; background:url(bg_img_right_header.jpg) left top no-repeat; } 
    </style> 
    <script> 
    /* var numimg = 0; 
      
    var imgslide=new Array(); 
    imgslide[0]=new Image(); 
    imgslide[1]=new Image(); 
    imgslide[2]=new Image(); 
    imgslide[3]=new Image(); 
      
    imgslide[0].src ="img-1.jpg"; 
    imgslide[1].src ="img-2.jpg"; 
    imgslide[2].src ="img-3.jpg"; 
    imgslide[3].src ="img-4.jpg";
    xx = Math.floor(Math.random( ) * 4); */
    
    var v = 2000, x, y = new Array (), z; 
    function F () 
    { 
    x = document.getElementById ('mTBL'); 
    y [0] = y [1] = y [2] = '0123'; 
    for (var j = 0, w = x.getElementsByTagName ('IMG'); j < w.length; j++) 
    w [j].style.backgroundColor = 'red';
    
    z = window.setTimeout ('S ()', v); 
    } 
    function S () 
    { 
    for (var q, j = 0; j < 3; j++) 
       { 
       q = y [j].charAt (parseInt (Math.random () * 12345) % y [j].length); 
       /* x.rows [j].cells [q].firstChild.src='img-4.jpg'; */
       x.rows [j].cells [q].firstChild.src = 'imgslide[numimg%xx].src';                        
 
       y [j] = y [j].replace (new RegExp (q, ''), ''); 
       } 
    if (y [0].length) window.setTimeout ('S ()', v) 
    else window.setTimeout ('F ()', v); 
    }  
    onload = F; 
    </script>

html

    <table id="mTBL" cellpadding="0" cellspacing="0">    
    <tr><td><img></td><td><img></td><td><img></td><td><img></td></tr> 
    <tr><td><img></td><td><img></td><td><img></td><td><img></td></tr> 
    <tr><td><img></td><td><img></td><td><img></td><td><img></td></tr> 
    </table>

Где то видимо я неточно описал.
Сейчас картинка сменяется только на 1 рисунок, как сделать чтоб рисунок менялся на 1 из 4
И цикл проходит 1 раз.
Ни подскажете какие изменения сделать?

  Ответить  
 
 автор: Абырвалг   (24.05.2011 в 17:56)   письмо автору
 
   для: pautina   (24.05.2011 в 17:01)
 

Так сколько у Вас рисунков-то?
12-ть или всё же 24?

Если 12-ть "зелёных", то тогда ЧТО должно показываться на месте отсутствующего рисунка (вместо "красного")?

  Ответить  

Сообщения:  [1-10]   [11-16] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования