Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > Смена фона страницы по времени


Автор: nightvi 14.8.2011, 13:11
Народ подскажите как сделать автоматическую смену фона ячейки таблицы?

Нашел код для тега боди:

Код

<html>
<head>
<script language="javascript">
<!--

var bgrounds=new Array(
  "./fon/sindey.jpg",
  "./fon/berlin.jpg",
  "./fon/rio.jpg");

function changeBg()
{
 var i=Math.floor(bgrounds.length*Math.random());
 document.body.background=bgrounds[i];
 setTimeout('changeBg()',5000)
}
//-->
</script>
</head>

<body onLoad="setTimeout('changeBg()')">
<table width="100%" bgcolor="#FFFFFF">
    <tr>
        <td>
        11111
        </td>
    </tr>
</table>

</body>
</html>

Все работает но как мне его перенести в <td>?
такая перестановка не работает
Код

<html>
<head>
<script language="javascript">
<!--

var bgrounds=new Array(
  "./fon/sindey.jpg",
  "./fon/berlin.jpg",
  "./fon/rio.jpg");

function changeBg()
{
 var i=Math.floor(bgrounds.length*Math.random());
 document.all.background=bgrounds[i];
 setTimeout('changeBg()',5000)
}
//-->
</script>
</head>

<body >
<table width="100%" >
    <tr>
        <td onLoad="setTimeout('changeBg()')">
        11111
        </td>
    </tr>
</table>

</body>
</html>


Спасибо

Автор: Evghenusi 14.8.2011, 13:45
событие onload бывает только у body (если я не ошибаюсь), и вместо document.body.background (как ты понимаешь это строчка меняет фоновый у всей страницы, а не у ячеек таблицы) найди таблицу по айди (к примеру)  и "работай" с ней

Автор: nightvi 14.8.2011, 13:50
Вот что придумал: н овсе равно не рабоатет

Код

function changeBg()
{
 var i=Math.floor(bgrounds.length*Math.random());
 document.getElementByID("mytable").style.background=bgrounds[i];
 setTimeout('changeBg()',5000)
}
//-->
</script>
</head>

<body onLoad="setTimeout('changeBg()')">
<table width="100%" bgcolor="#999999">
    <tr>
        <td id="mytable">
        11111
        </td>
    </tr>
</table>

Автор: нуп 14.8.2011, 13:57
Поставьте firebug для отлова ошибок.  document.getElementByID заменить на  document.getElementById

Автор: Amphiluke 14.8.2011, 14:08
+ К сказанному 
Цитата(nightvi @  14.8.2011,  17:50 Найти цитируемый пост)

Код
document.getElementByID("mytable").style.background=bgrounds[i];


заменить хотя бы на
Код

document.getElementById("mytable").style.background="url('" + bgrounds[i] + "')";

Автор: nightvi 14.8.2011, 14:13
Проблему решил всем спасбо:
Вот код 

Код

<html>
<head>
<script language="javascript">
<!--

var bgrounds=new Array(
"url(./fon/sindey.jpg)",
"url(./fon/berlin.jpg)",
"url(./fon/rio.jpg)");

function changeBg()
{
var i=Math.floor(bgrounds.length*Math.random());
document.getElementById("mytable").style.backgroundImage=bgrounds[i];
setTimeout('changeBg()',1000)
}
//-->
</script>
</head>

<body onLoad="changeBg()">
<table width="100%" bgcolor="#FFFFFF">
<tr>
<td id="mytable">
11111
</td>
</tr>
</table>

</body>
</html>


Автор: Evghenusi 14.8.2011, 14:19
можно ещё найти таблицу по айди, а после ВСЕ ячейки в ней через table.getElementsByTagName('td')

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)