|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
20.12.2016, 17:30 | #1 |
Форумчанин
Регистрация: 20.12.2016
Сообщений: 270
|
Два скрипта не работают вместе
Приветствую всех форумчан! Первый раз имею дело с языком javascript на своём сайте. Вставил два готовых скрипта, один на падающие снежинки, другой на слайдер. Так вот, по отдельности - работают как часы. Ставлю же их вместе - работает тот, который написан ниже. В чём может быть проблема? Могу оба кода скинуть, если это необходимо.
формошлеп.рф
witech.su |
20.12.2016, 17:41 | #2 |
Раздолбайских Дел
Старожил
Регистрация: 22.05.2009
Сообщений: 3,828
|
Скорей всего в глобальных переменных, заверни каждый свое замыкание:
Код:
Alar, верни репу!
|
20.12.2016, 18:40 | #3 |
Форумчанин
Регистрация: 20.12.2016
Сообщений: 270
|
Эммм, я понял что ты имеешь в виду, но не совсем понял как это реализовать на моём примере.
1 скрипт: Код HTML:
<script type="text/javascript"> function myss(ssid,width,height,pause) { var ss = document.getElementById(ssid); var dspwidth=750; var dspheight=150; var imgcount=ss.children[0].getElementsByTagName('img').length; ss.style.width=dspwidth+'px'; ss.style.height=dspheight+'px'; ss.children[0].style.width=(imgcount*dspwidth)+'px'; ss.children[0].style.height=dspheight+'px'; ss.children[0].style.left='0px'; iid=window.setInterval(function() { var minleft=-1*(dspwidth*(imgcount-1)); if(minleft>=parseInt(ss.children[0].style.left)) { ss.children[0].style.left='0px'; }else { ss.children[0].style.left=(parseInt(ss.children[0].style.left)-750)+'px'; } }, pause); } window.onload = function(e) { myss('ss1',900,300,6000); } </script> Код HTML:
<SCRIPT type="text/javascript"> var snowmax=100; <!-- кол-во --> var snowcolor=new Array("#AAAACC","#DDDDFF","#CCCCDD","#F3F3F3","#F0FFFF","#FFFFFF","#EFF5FF"); <!-- цвета, склько угодно --> var snowtype=new Array("Arial Black","Arial Narrow","Times","Comic Sans MS"); <!-- шрифты, сколько угодно --> var snowletter="*"; <!-- символ снежинки --> var sinkspeed=0.6; <!-- скорость падения --> var snowmaxsize=22; <!-- max размер --> var snowminsize=8; <!-- min размер --> var snowingzone=1; <!-- положение снега (1-по всему сайту, 2-слева, 3-по центру, 4-справа) --> <!-- дальше не менять --> var snow=new Array(); var marginbottom; var marginright; var timer; var i_snow=0; var x_mv=new Array(); var crds=new Array(); var lftrght=new Array(); var browserinfos=navigator.userAgent; var ie5=document.all&&document.getElementById&&!browserinfos.match(/Opera/); var ns6=document.getElementById&&!document.all; var opera=browserinfos.match(/Opera/); var browserok=ie5||ns6||opera; function randommaker(range) { rand=Math.floor(range*Math.random()); return rand; } function initsnow() { if (ie5 || opera) { marginbottom=document.body.clientHeight; marginright=document.body.clientWidth; } else if (ns6) { marginbottom=document.body.clientHeight; marginright=document.body.clientWidth; } var snowsizerange=snowmaxsize-snowminsize; for (i=0;i<=snowmax;i++) { crds[i]=0; lftrght[i]=Math.random()*15; x_mv[i]=0.03+Math.random()/10; snow[i]=document.getElementById("s"+i); snow[i].style.fontFamily=snowtype[randommaker(snowtype/length)]; snow[i].size=randommaker(snowsizerange)+snowminsize; snow[i].style.fontSize=snow[i].size+"px"; snow[i].style.color=snowcolor[randommaker(snowcolor.length)]; snow[i].sink=sinkspeed*snow[i].size/5; if (snowingzone==1) {snow[i].posx=randommaker(marginright-snow[i].size)} if (snowingzone==2) {snow[i].posx=randommaker(marginright/2-snow[i].size)} if (snowingzone==3) {snow[i].posx=randommaker(marginright/2-snow[i].size)+marginright/4} if (snowingzone==4) {snow[i].posx=randommaker(marginright/2-snow[i].size)+marginright/2} snow[i].posy=randommaker(2*marginbottom-marginbottom-2*snow[i].size); snow[i].style.left=snow[i].posx+"px"; snow[i].style.top=snow[i].posy+"px"; } movesnow(); } function movesnow() { for(i=0;i<=snowmax;i++) { crds[i]+=x_mv[i]; snow[i].posy+=snow[i].sink; snow[i].style.left=snow[i].posx+lftrght[i]*Math.sin(crds[i])+"px"; snow[i].style.top=snow[i].posy+"px"; if (snow[i].posy>=marginbottom-2*snow[i].size || parseInt(snow[i].style.left)>(marginright-3*lftrght[i])) { if (snowingzone==1) {snow[i].posx=randommaker(marginright-snow[i].size)} if (snowingzone==2) {snow[i].posx=randommaker(marginright/2-snow[i].size)} if (snowingzone==3) {snow[i].posx=randommaker(marginright/2-snow[i].size)+marginright/4} if (snowingzone==4) {snow[i].posx=randommaker(marginright/2-snow[i].size)+marginright/2} snow[i].posy=0; } } var timer=setTimeout("movesnow()",50); } for (i=0;i<=snowmax;i++) { document.write("<span id='s"+i+"' style='position:absolute;top:-"+snowmaxsize+"px;'>"+snowletter+"</span>"); } if (browserok) { window.onload=initsnow; } </SCRIPT>
формошлеп.рф
witech.su |
20.12.2016, 21:18 | #4 |
Раздолбайских Дел
Старожил
Регистрация: 22.05.2009
Сообщений: 3,828
|
Не, не в этом дело...
Код:
Его надо переписать в обоих случаях на addEventListener (тут подробно). или простой вариант, оба скрипта вставить в самый конец документа и напрямую вызвать соответствующие функции: вместо Код:
Код:
Код:
Код:
Alar, верни репу!
|
20.12.2016, 21:29 | #5 |
Форумчанин
Регистрация: 20.12.2016
Сообщений: 270
|
Выбросить... Не практично, сам я замену этим кодам буду писать не мало времени. Оптимизировать под совместную работу - мой путь)
Попробую решить твоим способом, отпишусь в теме о результатах
формошлеп.рф
witech.su |
20.12.2016, 21:34 | #6 |
Форумчанин
Регистрация: 20.12.2016
Сообщений: 270
|
Сделал соответствующие замены (по второму пути), снежинки как бешенные побежали поверху страницы, слайдер - стоит.
Попробую первый метод _________________________ Это будет долго _________________________ Ты сказал что перезаписывается window.onload, по твоему методу я не справился, но подумал, что можно заменить его как то иначе. В общем, в первом скрипте Код HTML:
window.onload = function(e) Код HTML:
document.ready = function(e) _________________________ Почитал ещё немного, подумал, что нужно в первом и втором скрипте эти строчки поменять, так как снегу не важна загрузка изображений, а вот слайдеру очень даже, верно?
формошлеп.рф
witech.su Последний раз редактировалось maks1331; 20.12.2016 в 22:18. Причина: ой ёй ёй 2 |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ОЗУ: модули не работают вместе | Larboss | Компьютерное железо | 13 | 12.11.2014 18:50 |
вместе параметры не работают | ГОСЕАН | Помощь студентам | 9 | 09.11.2011 11:26 |
Не работают два скрипта одновременно | veec | JavaScript, Ajax | 1 | 03.11.2011 22:41 |
Не работают вместе.. | Лия92 | Помощь студентам | 0 | 13.12.2010 20:23 |
Не работают одновременно два скрипта | MrJenika | JavaScript, Ajax | 0 | 17.04.2010 12:35 |