Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.09.2008, 13:56
Интересующийся
Отправить личное сообщение для Александр Михалицын Посмотреть профиль Найти все сообщения от Александр Михалицын
 
Регистрация: 01.09.2008
Сообщений: 13

Мой скрипт-снегопадик :)
http://javascript.ru/blog/aleksandr-...snowjs-library

Не судите строго у меня сегодня праздник
1 Сентября завтра в школу ))
Ответить с цитированием
  #2 (permalink)  
Старый 01.09.2008, 14:06
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 25.07.2008
Сообщений: 1,271

единственное, что при сдвигании снежинки за правую грань появляется горизонтальный скролл. А так прикольно.
Ответить с цитированием
  #3 (permalink)  
Старый 01.09.2008, 14:07
Интересующийся
Отправить личное сообщение для Александр Михалицын Посмотреть профиль Найти все сообщения от Александр Михалицын
 
Регистрация: 01.09.2008
Сообщений: 13

Хм, а какой браузер.
То что прикольно-то понятно, насколько я это качественно написал,
как вы оцените?

Кстати, проблема скролла решается путем изменения настроек,
некоторые браузеры действительно себя ведут странно и появляется
скролл, хотя фактически снежинка не может приблизиться к краю
экрана ближе чем на 54 пиксела, тоесть той величины которая указана
в "константе" g.

Откройте файл snow.js найдите переменную g и увеличивайте по немножку пока скролл
не перестанет появляься, подобранное значение самое оптимальное...

Последний раз редактировалось Александр Михалицын, 01.09.2008 в 14:10.
Ответить с цитированием
  #4 (permalink)  
Старый 01.09.2008, 14:27
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 25.07.2008
Сообщений: 1,271

появляется в твоём примере и в ИЕ, и в ФФ.
Ответить с цитированием
  #5 (permalink)  
Старый 01.09.2008, 14:37
Интересующийся
Отправить личное сообщение для Александр Михалицын Посмотреть профиль Найти все сообщения от Александр Михалицын
 
Регистрация: 01.09.2008
Сообщений: 13

ХМ, а версии какие.. я обязательно займусь оптимизацией переменной g
Ответить с цитированием
  #6 (permalink)  
Старый 01.09.2008, 14:39
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 25.07.2008
Сообщений: 1,271

По коду:
if (settings[0]) // Выбор тега снежинки в зависимсти от опции settings[0]
76 {
77 flake_tag = 'img';
78 } else {
79 flake_tag = 'div';
80 }

Я бы не использовал имэдж, а использовал только див с бэком или без.

70 var clientWidth = document.getElementById(settings[6]).clientWidth;
71 var clientHeight = document.getElementById(settings[6]).clientHeight;
91 var flake_obj = document.getElementById(settings[6]).appendChild(flake_obj);

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

function delete_flakes()
105{
106 for (var id=1; id<=settings[5]; id++)
107 {
108 var flake_obj = document.getElementById('flake' + id);
109 document.getElementById(settings[6]).removeChild(flake_obj);
110 }
111}


Делать на каждой итерации document.getElementById(settings[6]) - плохо.

function stop_snowfall()
157{
158 delete_flakes();
159 clearInterval(positions);
160}


Удаляешь снежинки, а в этот момент сработал интервал (так как он не отключен). Что будет??? Правильно:
var flake_obj = document.getElementById('flake'+i); /* Получаем объект снежинки */
Получим undefined/
121 flake_obj.left += (flake_obj.speedX + flake_obj.amplitude*Math.cos(flake_obj.top*flake_o bj.tempo))*dt;
получим ошибку, так как у undefined нет свойства .left
Ответить с цитированием
  #7 (permalink)  
Старый 01.09.2008, 15:10
Интересующийся
Отправить личное сообщение для Александр Михалицын Посмотреть профиль Найти все сообщения от Александр Михалицын
 
Регистрация: 01.09.2008
Сообщений: 13

Черт, спасибо за "свежий глаз".
Версия v.2.6 "на носу"
Ответить с цитированием
  #8 (permalink)  
Старый 01.09.2008, 15:12
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 25.07.2008
Сообщений: 1,271

var arr = []; быстрее и короче, чем
var arr = new Array()

Это ещё вдогонку...
Ответить с цитированием
  #9 (permalink)  
Старый 01.09.2008, 15:13
Флудер
Отправить личное сообщение для ZoNT Посмотреть профиль Найти все сообщения от ZoNT
 
Регистрация: 25.07.2008
Сообщений: 1,271

И ещё я бы убрал всё это из глобального контекста.
Ответить с цитированием
  #10 (permalink)  
Старый 01.09.2008, 15:49
Интересующийся
Отправить личное сообщение для Александр Михалицын Посмотреть профиль Найти все сообщения от Александр Михалицын
 
Регистрация: 01.09.2008
Сообщений: 13

ХМ, убрать...
В массив какой-нибудь засунуть,
а убрать, это ведь настройки!
Я так понял вы говорите про
g, k, m, alpha, dt, и.др,
подумаю над объединением их в массив...
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрипт для Контакта.ру Black - C Элементы интерфейса 3 06.04.2011 22:03
Скрипт не работает в опере, работает в IE XpycTuk Общие вопросы Javascript 9 06.03.2009 15:50
Скрипт "меняющееся фото" и его отражение в Мозилле osp Firefox/Mozilla 1 10.09.2008 14:11
добавление окошка в скрипт подсчета слов Гость Общие вопросы Javascript 10 11.03.2008 17:07
скрипт, каторый открывает окно на весь экран Claus007 Общие вопросы Javascript 2 11.03.2008 09:07