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

HTML+CSS+JavaScript

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Автоматическая подсветка строк таблицы
 
 автор: msl1912   (31.01.2009 в 15:09)   письмо автору
 
 

Народ, плиз помогите чайнику составилть логику сценария для следующей задачи:

Имеется таблица с определенным набором строк (в каждой строке какое-то кол-во ячеек). Надо, чтобы автоматически, сама по себе подсвечивалась (менялся background) сначала первая строка, затем, спустя, допустим, 1000 мс, вторая, затем третья, а при достижении конца таблицы - вновь первая и так до бесконечности...

  Ответить  
 
 автор: mikha   (31.01.2009 в 16:37)   письмо автору
 
   для: msl1912   (31.01.2009 в 15:09)
 

Можешь вот от этого оттолкнуться. Набросал на скорую руку.
<script type="text/javascript">
n = 0;
function paintTable(id){
    id_ = id;
    obj = document.getElementById(id_);
    if(n == obj.rows.length) n = 0;
    for(i = 0; i < obj.rows.length; i++){
        if(i == n) obj.rows[i].style.background = "#FF0000"; else obj.rows[i].style.background = "#0000FF";
    }
    n++;
    setTimeout('paintTable(id_);', 1000);
}
</script>
<table width="200" border="1" cellpadding="1" cellspacing="1" id="table_id">
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
</table>
<script type="text/javascript">
paintTable('table_id');
</script>

  Ответить  
 
 автор: msl1912   (31.01.2009 в 21:32)   письмо автору
 
   для: mikha   (31.01.2009 в 16:37)
 

Спасибо!
Все работает, как и было задумано...
А мне посоветовали так:

<script>
function lightrow(el, len, cur) {
    if(cur >= 0) el[cur].style.background = '#ffffff';
    cur++;
    if(cur >= len) { cur = 0; }
    if(cur >= 0) el[cur].style.background = '#f76341';
    setTimeout(function(){lightrow(el, len, cur)}, 3400);
}
var tr = document.getElementById('mytable').getElementsByTagName('tr');
var trl = tr.length;
if(trl > 1) lightrow(tr, trl, -1);
</script>
<table id="mytable">........................


Теперь встал вопрос, как сделать, чтобы этих строк была не одна, а три разным цветом и разным timeout-ом.... если писать три функции, получается косячно в месте перекрытия строк... Можешь посоветовать, как модифицировать твой или мой скрипт?

  Ответить  
Rambler's Top100
вверх

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