Перейти к контенту

Баг с падающими снежинками в Firefox


Рекомендуемые сообщения

Решил на своем форуме создать падающие снежинки, для этого нашел скрипт, немного подправил чтобы снежинки только в шапке падали и закинул гифку снежинки и сам скрипт в корень форума.

Затем в настройках скина в колонтитулах сделал вызов этого скрипта. В IE все работает отлично, а вот в фоксе первая снежинка виснет в левом верхнем углу и все, больше ничего не происходит.

Попробовал с тестовой страничкой, т.е просто создал пустую страницу типа test.html и между тэгами body вставил вызов скрипта - и в файрфоксе и в ие все работает нормально. В чем может быть дело? Версия форума 2.1.2

 

 

Текст скрипта:

var no = 3; // snow number

 var dx, xp, yp;	// coordinate and position variables
 var am, stx, sty;  // amplitude and step variables
 var i, doc_width = 800, doc_height = 68;

 doc_width = 800;//document.body.clientWidth;
 doc_height = 68;//document.body.clientHeight;

 dx = new Array();
 xp = new Array();
 yp = new Array();
 am = new Array();
 stx = new Array();
 sty = new Array();

 for (i = 0; i < no; ++ i) {  
dx[i] = 0;						// set coordinate variables
xp[i] = Math.random()*(doc_width-50);  // set position variables
yp[i] = Math.random()*doc_height;
am[i] = Math.random()*20;		 // set amplitude variables
stx[i] = 0.02 + Math.random()/10; // set step variables
sty[i] = 0.7 + Math.random();	 // set step variables
if (i == 0) {
  document.write("<div id=\"dot"+ i +"\" style=\"POSITION: absolute; Z-INDEX: "+ i +"; VISIBILITY: visible; TOP: 15px; LEFT: 15px;\"><img src=\"dot.gif\" border=\"0\"></div>");
} else {
  document.write("<div id=\"dot"+ i +"\" style=\"POSITION: absolute; Z-INDEX: "+ i +"; VISIBILITY: visible; TOP: 15px; LEFT: 15px;\"><img src=\"dot.gif\" border=\"0\"></div>");
}
 }

 function snow() {
for (i = 0; i < no; ++ i) {  // iterate for every dot
  yp[i] += sty[i];
  if (yp[i] > doc_height-10) {
	xp[i] = Math.random()*(doc_width-am[i]-10);
	yp[i] = 10;
	stx[i] = 0.02 + Math.random()/10;
	sty[i] = 0.7 + Math.random();
	doc_width = document.body.clientWidth;
	doc_height = 70;//document.body.clientHeight;
  }
  dx[i] += stx[i];
  document.getElementById("dot"+i).style.top = yp[i];
  document.getElementById("dot"+i).style.left = xp[i] +am[i]*Math.sin(dx[i]);
}
setTimeout("snow()", 30);
 }

 snow();

 

 

может кто сталкивался с такой проблемой?

Ссылка на комментарий
Поделиться на других сайтах

При чем здесь Общие вопросы (по 2.1.x) ?

 

По теме: лучше используй этот скрипт - http://forum.vingrad.ru/topic-76142.html

Ссылка на комментарий
Поделиться на других сайтах

По теме: лучше используй этот скрипт - http://forum.vingrad.ru/topic-76142.html

а ты сам то пробовал этот скрипт на IPB прежде чем ссылку на него давать? он работает только в примерах, если вставляешь скрипт в колонтитулы, то не пашет

 

хотя нет, в IE работает, а в фоксе нет - пришли к тому с чего начинали

Ссылка на комментарий
Поделиться на других сайтах

Если руки не кривые, он будет работать, поверь. Видимо, ты не разбираешься в том, как устроен JavaScript…
Ссылка на комментарий
Поделиться на других сайтах

руки кривые, никто не спорит. вот ты можешь объяснить почему в фоксе скрипт не работает, а в IE работает? или так и будем мои руки обсуждать?

 

и повторюсь еще раз дело имхо не в скрипте, а в особенностях IPB

постараюсь еще раз описать подробнее как я пришел к такому выводу:

 

1. Тест на простой html-странице

- беру любой из имеющихся скриптов (что с проверкой на браузер что без нее), картинки снежинок и сохраняю в произвольный каталог

- создаю в этом же каталоге пустую страничку и между тэгами body вставляю вызов скрипта - все прекрасно работает и в IE и Firefox

 

2. Тест на форуме IPB

- кидаю скрипт и картинки в корень форума

- в админке захожу в настройки верхнего и нижнего колонтитулов текущего скина и вставляю вызов скрипта между тэгами body - в IE все работает, в Firefox нет

 

3. Еще один тест на форуме IPB

- в админке захожу в настройки верхнего и нижнего колонтитулов текущего скина и вставляю сам текст скрипта - результат тот же: в IE работает, в Firefox нет

 

ИМХО, тут дело не в скрипте

Ссылка на комментарий
Поделиться на других сайтах

Покажите мне форум, куда вы пытались вставить этот скрипт. Ну естественно, со вставленным скриптом или хотя бы с закомментированным тегом <script>.

 

Не буду вдаваться в подробности, но в JS есть большая разница куда вставлять скрипт, в тег head или в тег body.

Ссылка на комментарий
Поделиться на других сайтах

Aliance spb

так его я и использую! можешь дать ссылку на форум где запущен этот скрипт чтобы я посмотрел?

 

кстати, по указанной тобой ссылке в фоксе 2.0 не работает

Ссылка на комментарий
Поделиться на других сайтах

У меня все работает:

http://uploads.morgenshtern.com/uploads/snow.png

 

Как его использовать? Открываете по этой ссылке страничку, нажимаете просмотр кода и копируете содержимое <script>, плосле чего вставляете себе его в тело документа.

Ссылка на комментарий
Поделиться на других сайтах

В ИЕ это Вид - просмотр HTML кода (у меня это третье меню снизу)

В ФФ это Ctrl+U или Вид - Исходный код страницы (у меня это второе меню снизу)

Ссылка на комментарий
Поделиться на других сайтах

спасибо всем за участие в решение проблемы!

 

а особое гранмерси Garret'у за подсказку в каком направлении двигаться :D

 

в общем воткнул я скрипт который указан у меня в первом сообщении и потом залез в эту консоль и увидел что валятся ошибки что не может распарсить значение для top и left. далее путем тыка определил что кусок кода

 

document.getElementById("dot"+i).style.top = yp[i];
  document.getElementById("dot"+i).style.left = xp[i] +am[i]*Math.sin(dx[i]);

 

надо заменить на

 

document.getElementById("dot"+i).style.top = yp[i] +"px";
  document.getElementById("dot"+i).style.left = xp[i] +am[i]*Math.sin(dx[i]) +"px";

 

вот кто бы мог подумать! ;)

Ссылка на комментарий
Поделиться на других сайтах

Хех, тому, кто писал тогда этот скрипт по ушам надавать надо ) Не знать такого, это не уметь писать вообще :D
Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.