Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Автоматическая смена ссылок (https://javascript.ru/forum/dom-window/4470-avtomaticheskaya-smena-ssylok.html)

peter888 24.07.2009 17:32

Автоматическая смена ссылок
 
Здрасте.
Есть блок:

<div style="position: fixed; right: 20px; top: 10px;" align="right">
<a href="ссылка" >Заголовок</a>
</div>

В нем есть ссылка (<a>). Мне надо чтоб она менялась через некоторое время так, чтоб страничка не перегружалась. Возможно ли так?
Тоесть есть массив ссылок (подгружаеться из БД при загрузек странички через пхп - я зная как делать), и рандомом через некоторое время (например через 10 секунд) ссылка менялась (и ее заголовок).
Можна такой скрипт написать?

Допустим у меня есть массив Mas[]
и в нем
Mas[0] - "<a href="ссылка_1" >Заголовок_1</a>"
Mas[1] - "<a href="ссылка_2" >Заголовок_2</a>"
Mas[2] - "<a href="ссылка_3" >Заголовок_3</a>"
Mas[3] - "<a href="ссылка_4" >Заголовок_4</a>"
...
Mas[n-1] - "<a href="ссылка_n" >Заголовок_n</a>"

Как зделать, чтоб менялись ссалки каждіх 10 сек.

Или может луче поместить в два масивва - отдельно ссылочки и отдельно заголовки?

Kolyaj 24.07.2009 17:38

<div id="links" style="position: fixed; right: 20px; top: 10px;" align="right">
    <a href="ссылка" >Заголовок</a>
</div>

В конце html файла скрипт
var currentLink = 0;
(function() {
    document.getElementById('links').innerHTML = Mas[currentLink++];
    if (currentLink >= Mas.length) 
        currentLink = 0;
    setTimeout(arguments.callee, 10000);
})();

peter888 24.07.2009 17:48

Шот не катит :(

<body bgcolor="#001816">


<script language="JavaScript">
var Mas = new Array()

Mas[0] = "<a href="ссылка1" >Заголовок1</a>";
Mas[1] = "<a href="ссылка2" >Заголовок2</a>";
Mas[2] = "<a href="ссылка3" >Заголовок3</a>";

</script>

<div id="links" style="position: fixed; right: 20px; top: 10px;" align="right">
<a href="ссылка" >Заголовок</a>
</div>


<script language="JavaScript">
var currentLink = 0;
(function() {
document.getElementById('links').innerHTML = Mas[currentLink++];
if (currentLink >= Mas.length)
currentLink = 0;
setTimeout(arguments.callee, 100);
})();
</script>

</body>

Kolyaj 24.07.2009 17:51

Цитата:

Сообщение от peter888
"<a href="ссылка1" >Заголовок1</a>"

Кавычки вложенные.

peter888 24.07.2009 17:53

Заменил "<a href="ссылка1" >Заголовок1</a>" на '<a href="ссылка1" >Заголовок1</a>'
Работает. Спасибо тебе. Будь благословен, Kolyaj,

peter888 24.07.2009 18:01

Еще вопросик:
А почему не работает

<script language="JavaScript">
var currentLink = 0;
(function() {
document.getElementById('links').innerHTML = Mas[currentLink++];
currentLink = Math.random(Mas.length)-1; //????????????????????????
setTimeout(arguments.callee, 100);
})();
</script>

Kolyaj 24.07.2009 18:05

http://javascript.ru/Math.random

peter888 24.07.2009 18:13

Спасибо, я думал принцып как в паскале.
Еще раз спасибо тебе.
Пусть Бог благословит тебя.

Вот правельный результат того, что я хотел:

<body bgcolor="#001816">


<script language="JavaScript">
var Mas = new Array()

 Mas[0] = '<a href="ссылка1" >Заголовок1</a>';
 Mas[1] = '<a href="ссылка2" >Заголовок2</a>';
 Mas[2] = '<a href="ссылка3" >Заголовок3</a>';


 
</script>

<div id="links" style="position: fixed; right: 20px; top: 10px;" align="right">
    <a href="ссылка" >Заголовок</a>
</div> 
		 

<script language="JavaScript">
var currentLink = Math.floor(Math.random() * Mas.length);
(function() {
    document.getElementById('links').innerHTML = Mas[currentLink++];

        currentLink = Math.floor(Math.random() * Mas.length) ;

    setTimeout(arguments.callee, 10000);
})();
</script>

</body>

Kolyaj 24.07.2009 18:19

(function() {
    document.getElementById('links').innerHTML = Mas[Math.floor(Math.random() * Mas.length)];
    setTimeout(arguments.callee, 10000);
})();

peter888 24.07.2009 18:25

Спасибо. Извини, может достаю, но хочу еще одно зделать.
А этот форум найлучший и здесь можно очень быстро получить ответ, за что вам спасибо.
Мне надо, чтоб когда мышка будет над (onmouseover) этим блоком (или, если не сложно, над ссылкой), то тогда ссылка перестает меняться. наверное както приостановить выполнение функции. А при onmouseout опять заработала. Или может другим путем.
Можно так сделать?


Часовой пояс GMT +3, время: 19:31.