Войти

Показать полную графическую версию : Нужна помощь в написании скрипта


Magnus
04-05-2005, 18:47
Люди а как сделать на сайте, чтоб допустим было два слоя, накоторых было бы написаны фразы, по переменно (допустим через 10 секунд) одна бы плавно исчезала, и плавно появлялась другая, а затем наоборот. Я догадываюсь как, - это наверное какой-то скрипт нужет, чтоб завязать свойства скрыт/видим этих слоев с часами. Но вот блин незадача - со скриптами на ВЫ. Поэтому помогите начинающему в сайтостроении. Заранее благодарен.

vadimiron
04-05-2005, 22:38
чтобы слой появлялся/исчезал при каких то событиях, сделать несложно, нужно только немного JavaScript
А вот с плавностью уже сложнее, это графический эффект и его достичь можно только с помощью Java Applet-а,
последнее можно здесь (http://www.codejunction.com/scripts/javascript/text-effects) поискать и на иных подобных сайтах (только учтите, что у многих отключено загрузка подобных апплетов)

vadimiron
04-05-2005, 22:39
А ещё можно гиф сделать(он же поддерживает анимацию), правда его изменять сложнее

Magnus
04-05-2005, 23:14
ладно с этой плавностью, мне бы чтобы просто через интервал времени менялись. Сайт и так грузный, а тут еще и анимация в виде gif -непокатит. А то что по событию мона сделать - я знаю. Сейчас я во FrontPage 2003 делаю - там это проще. А вот чтоб через определенный интервал времени было, увы не могу. Подскажите пожалуйста.

vadimiron
05-05-2005, 00:33
В джаве скрипт есть функция чтобы исполнять что то раз в какое то время, setTimeout.
То есть пишем простую функцию по скрытию одного и раскрытию другог слоя, и потом пишем setTimeout("функция",время в милисекундах)

vadimiron
05-05-2005, 02:02
Вот какой у меня получился код:


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<script language="JavaScript">
var DHTML = (document.getElementById || document.all || document.layers);
function getObj(name)
{
if (document.getElementById)
{
this.obj = document.getElementById(name);
this.style = document.getElementById(name).style;
}
else if (document.all)
{
this.obj = document.all[name];
this.style = document.all[name].style;
}
else if (document.layers)
{
this.obj = document.layers[name];
this.style = document.layers[name];
}
}

function hide(x)
{
x.style.visibility='hidden';
}

function show(x)
{
x.style.visibility='visible';
}

function init(div)
{
if (!DHTML) return;
var x = new getObj(div);
return x;
}
var flag=0;
function rolling(div1,div2)
{
if(!flag)
{
hide(div1);
show(div2);
flag=1;
}
else
{
hide(div2);
show(div1);
flag=0;
}
setTimeout("rolling(div1,div2)",1000);
}
</script>
</head>
<body>
<div id='layer1' style="visibility:visible;position: absolute;top:15;left:15;">LALALALA<br>FIRST DIV</div>
<div id='layer2' style="visibility:hidden;position: absolute;top:15;left:15;">TUTUTUTU<br>SECOND DIV</div>

<script language="JavaScript">
var div1=init('layer1');
var div2=init('layer2');
setTimeout("rolling(div1,div2)",2000);
</script>

</body>
</html>

m2001
05-05-2005, 10:20
может лучше было бы это во флэше реализовать, или такой вариант тоже не подходит?

Magnus
06-05-2005, 10:53
Народ, пасибки за помощь! Сегодня буду пробовать. А насчет флеша я дкмал,но тогда сайт уж больно тежелый получается, он и сейчас уже 20 секунд грузится :o а если больше то вообще капут. В общем пасибки еще раз, сегдня буду пробовать - отпишусь как все прошло.

2 vadimiron СУПЕР!!!! Спасибо большое!!! Обращайтесь - чем могу помогу. А как доделаю сйтик- милости просим заценивать. Попозже ссылочку дам.




© OSzone.net 2001-2012