Прокрутка; Изменение координат картинки
Всем привет)
Прошу подсказать по 2м вопросам. 1. Что не так в коде ниже? Он работает во всех браузерах кроме ФФ. <html> <head> <title>Аллоха!</title> </head> <script> var amount=4; var ypos=0; var xpos=0; ang1step=new Array(); ang1=new Array(); ang2step=new Array(); ang2=new Array(); radius=new Array(); wdt=new Array(); for (i=0; i < amount; i++){ document.write('<div id="planet'+i+'" style="position:absolute;top:0px;left:0px;'); document.write('width:32px;height:32px;font-size:2px;"><img src="fly.gif"></div>'); ang1step[i]=Math.random()*0.15+0.1; ang1[i]=i; ang2[i]=i; ang2step[i]=Math.random()*0.05+0.005; radius[i]=Math.random()*50+50; wdt[i]=Math.random()*5+5; } function iMouse(){ ypos=event.y+document.body.scrollTop; xpos=event.x+document.body.scrollLeft; } document.onmousemove = iMouse; function flash(){ for (i=0; i < amount; i++){ ang1[i]+=ang1step[i]; ang2[i]+=ang2step[i]; var y1=radius[i]*Math.sin(ang1[i])/wdt[i]; var x1=radius[i]*Math.cos(ang1[i]); eval('document.all["planet'+i+'"].style.top=ypos+x1*Math.sin(ang2[i])+y1*Math.cos(ang2[i]);'); eval('document.all["planet'+i+'"].style.left=xpos+x1*Math.cos(ang2[i])-y1*Math.sin(ang2[i]);'); if(ang1[i]>6.28){ang1[i]-=6.28;}; if(ang2[i]>6.28){ang1[i]-=6.28;}; } setTimeout(flash,50); } window.onload=flash; </script> <body> </body> </html> 2. Пытаюсь написать прокрутку новостного блока. Всё сделал, но возникает проблема с тем, что когда блок прокручивается до конца нужно как-то осуществить показ новостей заново. Т.е. чтобы они крутились без остановки. Подскажите, как это лучше осуществить? Конечно, можно быстро перематывать див к первой новости, но мне почему-то не нравится этот вариант. |
Цитата:
ypos=event.y+document.body.scrollTop; xpos=event.x+document.body.scrollLeft; |
nerv_,
посмотрел. Да, действительно так. Но не понемаю почему.. |
Чтобы не плодить лишних тем задам в этой ещё один вопрос. Есть строка примерного содержания: "буквы1+цифры1,буквы2+цифр 2, буквы3+цифры3", эту строку нужно превратить в массив вида ['буквы1+цифры1','буквы2+цифры2 ','буквы3+цифры3']
К примеру было: var m = 'qw1,er2,ty3'; А стало: m = ['qw1','er2','ty3']; |
Цитата:
http://javascript.ru/String/split |
ksa,
да я вот пробую с помощью него, но не получается. По этому, думал, какой-то другой вариант есть. |
Аа.. всё, работает split() :)
|
(Sandr),
Поищите разницу в скриптах ... или рабочий вариант для всех браузеров ... :) <html> <head> <title>Аллоха!</title> </head> <script> var amount=4; var ypos=0; var xpos=0; ang1step=new Array(); ang1=new Array(); ang2step=new Array(); ang2=new Array(); radius=new Array(); wdt=new Array(); for (i=0; i < amount; i++){ document.write('<div id="planet'+i+'" style="position:absolute;top:0px;left:0px;'); document.write('width:32px;height:32px;font-size:2px;"><img src="http://www.artgif.ru/ZVEZDY/star048.gif"></div>'); ang1step[i]=Math.random()*0.15+0.1; ang1[i]=i; ang2[i]=i; ang2step[i]=Math.random()*0.05+0.005; radius[i]=Math.random()*50+50; wdt[i]=Math.random()*5+5; } function iMouse(e) { e = e || window.event if (e.pageX == null && e.clientX != null) { var html = document.documentElement var body = document.body e.pageX = e.clientX + (html && html.scrollLeft || body && body.scrollLeft || 0) - (html.clientLeft || 0) e.pageY = e.clientY + (html && html.scrollTop || body && body.scrollTop || 0) - (html.clientTop || 0) } ypos = e.pageY xpos = e.pageX } document.onmousemove = iMouse; function flash(){ for (i=0; i < amount; i++){ ang1[i]+=ang1step[i]; ang2[i]+=ang2step[i]; var y1=radius[i]*Math.sin(ang1[i])/wdt[i]; var x1=radius[i]*Math.cos(ang1[i]); document.getElementById("planet"+i).style.top=ypos+x1*Math.sin(ang2[i])+y1*Math.cos(ang2[i])+"px"; document.getElementById("planet"+i).style.left=xpos+x1*Math.cos(ang2[i])-y1*Math.sin(ang2[i])+"px"; if(ang1[i]>6.28){ang1[i]-=6.28;}; if(ang2[i]>6.28){ang1[i]-=6.28;}; } setTimeout(flash,50); } window.onload=flash; </script> <body> </body> </html> |
рони,
спасибо) |
Цитата:
ЗЫ поздновато ответил, каюсь :) |
Часовой пояс GMT +3, время: 12:23. |