скрипт не работает в опере, в IE работает
написал скрипт для крокручивания картинок-ссылок на видеофайлы, в интернет Експлорере все работает, в Опере не хочет. Помогите пожалуйста найти причину. Вот сам скрипт:
<SCRIPT> var sliderwidth=501; var sliderheight=150; var slidespeed=4; <!-- web-mastery.info --> var leftrightslide=new Array() var finalslide='' leftrightslide[0]='<a href="http://flv.video.yandex.ru/lite/sokal-school2/4kv3wrqwnb.612/" title="Візитка школи"><img src="scrins/v.0-00-00.946.jpg" width=80 height=60 border=1 ></a>' leftrightslide[1]='<a href="http://flv.video.yandex.ru/lite/sokal-school2/vr1v07u9no.404/" title="Конкурс Красуня-2008"><img src="scrins/v1.0-12-37.814.jpg" width=80 height=60 border=1 ></a>' leftrightslide[2]='<a href="http://flv.video.yandex.ru/lite/sokal-school2/mr1jdoupp9.401/" title="Урок етики"><img src="scrins/v2.0-04-28.381.jpg" width=80 height=60 border=1></a>' leftrightslide[3]='<a href="http://flv.video.yandex.ru/lite/sokal-school2/l0nxtrysva.609/" title="Урок фізкультури"><img src="scrins/v3.0-11-03.385.jpg" width=80 height=60 border=1 ></a>' leftrightslide[4]='<a href="http://flv.video.yandex.ru/lite/sokal-school2/dntum4axtq.609/" title="Шевченкове свято"><img src="scrins/v4.0-00-06.568.jpg" width=80 height=60 border=1></a>' leftrightslide[5]='<a href="http://flv.video.yandex.ru/lite/sokal-school2/1as3to55yl.402/" title="Сокальський парубок"><img src="scrins/v5.0-00-56.471.jpg" width=80 height=60 border=1 ></a>' var copyspeed=slidespeed for (i=0;i<leftrightslide.length;i++) finalslide=finalslide+leftrightslide[i]+" " if (document.all){ document.write('<marquee behavior="alternate" id="ieslider" scrollAmount=0 style="width:'+sliderwidth+'">'+finalslide+'</marquee>') ieslider.onmouseover=new Function("ieslider.scrollAmount=0") ieslider.onmouseout=new Function("if (document.readyState=='complete') ieslider.scrollAmount=slidespeed")} function regenerate(){ window.location.reload() } function regenerate2(){ if (document.layers){ document.ns_slider01.visibility="show" setTimeout("window.onresize=regenerate",450) intializeleftrightslide() } if (document.all) ieslider.scrollAmount=slidespeed} function intializeleftrightslide(){ document.ns_slider01.document.ns_slider02. document.write('<nobr>'+finalslide+'</nobr>') document. ns_slider01.document.ns_slider02.document.close() thelength=document.ns_slider01. document.ns_slider02.document.width scrollslide() } function scrollslide(){ if (document.ns_slider01. document.ns_slider02.left>=thelength*(-1)){ document.ns_slider01. document.ns_slider02.left-=slidespeed setTimeout("scrollslide()",100) }else{ document.ns_slider01. document.ns_slider02.left=sliderwidth scrollslide()}} window.onload=regenerate2 </SCRIPT> Зарание спасибо! |
Для начала нормально отпарсите его и раставьте точки с запятой.
Потом посмотрите внимательно на этот момент: if (document.all){ document.write('<marquee behavior="alternate" id="ieslider" scrollAmount=0 style="width:'+sliderwidth+'">'+finalslide+'</marquee>') ieslider.onmouseover=new Function("ieslider.scrollAmount=0") ieslider.onmouseout=new Function("if (document.readyState=='complete') ieslider.scrollAmount=slidespeed")} Он сработает только в IE. Уберите этот If и у вас он будет работать в Opera. Хр*новенько конечно, но будет. Примерно должно быть так: var sliderwidth=501; var sliderheight=150; var slidespeed=4; <!-- web-mastery.info --> var leftrightslide=new Array(); var finalslide=''; leftrightslide[0]='<a href="http://flv.video.yandex.ru/lite/sokal-school2/4kv3wrqwnb.612/" title="Візитка школи"><img src="scrins/v.0-00-00.946.jpg" width=80 height=60 border=1 ></a>'; leftrightslide[1]='<a href="http://flv.video.yandex.ru/lite/sokal-school2/vr1v07u9no.404/" title="Конкурс Красуня-2008"><img src="scrins/v1.0-12-37.814.jpg" width=80 height=60 border=1 ></a>'; leftrightslide[2]='<a href="http://flv.video.yandex.ru/lite/sokal-school2/mr1jdoupp9.401/" title="Урок етики"><img src="scrins/v2.0-04-28.381.jpg" width=80 height=60 border=1></a>'; leftrightslide[3]='<a href="http://flv.video.yandex.ru/lite/sokal-school2/l0nxtrysva.609/" title="Урок фізкультури"><img src="scrins/v3.0-11-03.385.jpg" width=80 height=60 border=1 ></a>'; leftrightslide[4]='<a href="http://flv.video.yandex.ru/lite/sokal-school2/dntum4axtq.609/" title="Шевченкове свято"><img src="scrins/v4.0-00-06.568.jpg" width=80 height=60 border=1></a>'; leftrightslide[5]='<a href="http://flv.video.yandex.ru/lite/sokal-school2/1as3to55yl.402/" title="Сокальський парубок"><img src="scrins/v5.0-00-56.471.jpg" width=80 height=60 border=1 ></a>'; var copyspeed=slidespeed for (i=0;i<leftrightslide.length;i++) finalslide=finalslide+leftrightslide[i]+" "; //if (document.all) //{ document.write('<marquee behavior="alternate" id="ieslider" scrollAmount=0 style="width:'+sliderwidth+'">'+finalslide+'</marquee>'); ieslider.onmouseover=new Function("ieslider.scrollAmount=0"); ieslider.onmouseout=new Function("if (document.readyState=='complete') ieslider.scrollAmount=slidespeed"); //} function regenerate() { window.location.reload(); } function regenerate2() { if (document.layers) { document.ns_slider01.visibility="show"; setTimeout("window.onresize=regenerate",450); intializeleftrightslide(); } if (document.all) ieslider.scrollAmount=slidespeed; } function intializeleftrightslide() { document.ns_slider01.document.ns_slider02. document.write('<nobr>'+finalslide+'</nobr>'); document.ns_slider01.document.ns_slider02.document.close(); thelength=document.ns_slider01. document.ns_slider02.document.width; scrollslide() ; } function scrollslide() { if (document.ns_slider01. document.ns_slider02.left>=thelength*(-1)) { document.ns_slider01. document.ns_slider02.left-=slidespeed; setTimeout("scrollslide()",100); } else { document.ns_slider01. document.ns_slider02.left=sliderwidth; scrollslide(); } } window.onload=regenerate2; |
На скорую руку набросал:
<html> <head> <script language="javascript" type="text/javascript"> var sliderwidth=501; var sliderheight=70; var slidespeed=50; var slidestep =5; <!-- web-mastery.info --> var leftrightslide=new Array(); var finalslide=''; var slider = false; var copyspeed=slidespeed; var repeat = false; var side = 1; function createEl() { leftrightslide[0]='<a href="http://flv.video.yandex.ru/lite/sokal-school2/4kv3wrqwnb.612/" title="Візитка школи"><img src="scrins/v.0-00-00.946.jpg" style="float:left; height:60; width:80; border:1px solid black;margin-right:8px"/></a>'; leftrightslide[1]='<a href="http://flv.video.yandex.ru/lite/sokal-school2/vr1v07u9no.404/" title="Конкурс Красуня-2008"><img src="scrins/v1.0-12-37.814.jpg" style="float:left; height:60; width:80; border:1px solid black;margin-right:8px"/></a>'; leftrightslide[2]='<a href="http://flv.video.yandex.ru/lite/sokal-school2/mr1jdoupp9.401/" title="Урок етики"><img src="scrins/v2.0-04-28.381.jpg" style="float:left; height:60; width:80; border:1px solid black;margin-right:8px"/></a>'; leftrightslide[3]='<a href="http://flv.video.yandex.ru/lite/sokal-school2/l0nxtrysva.609/" title="Урок фізкультури"><img src="scrins/v3.0-11-03.385.jpg" style="float:left; height:60; width:80; border:1px solid black;margin-right:8px"/></a>'; leftrightslide[4]='<a href="http://flv.video.yandex.ru/lite/sokal-school2/dntum4axtq.609/" title="Шевченкове свято"><img src="scrins/v4.0-00-06.568.jpg" style="float:left; height:60; width:80; border:1px solid black;margin-right:8px"/></a>'; leftrightslide[5]='<a href="http://flv.video.yandex.ru/lite/sokal-school2/1as3to55yl.402/" title="Сокальський парубок"><img src="scrins/v5.0-00-56.471.jpg" style="float:left; height:60; width:80; border:1px solid black; margin-right:8px"/></a>'; for (var i=0; i<leftrightslide.length; i++) finalslide += "<td>"+leftrightslide[i]+"</td>"; finalslide = '<table border="0"><tr>'+finalslide+'</tr></table>'; slider = document.createElement('div'); slider.style.width = sliderwidth; slider.style.height = sliderheight; slider.style.overflow = 'hidden'; slider.style.whiteSpace = 'nowrap'; slider.onmouseover = stop; slider.onmouseout = start; slider.innerHTML = finalslide; document.getElementById('body').appendChild(slider); start() } function start() {repeat = window.setInterval('scroll()',slidespeed);} function stop() {window.clearInterval(repeat);} function scroll() { var now = slider.scrollLeft; var left = slider.scrollWidth - slider.offsetWidth; if(now == left || now ==0) side*=-1; slider.scrollLeft+= slidestep*side; } </script> </head> <body onload="createEl();" id="body"> </body> </html> Реализация хреновая но работает везде (тестировал в Chrome, FF3, IE6, Opera) нормально. |
слишком быстро бегает
Цитата:
|
marquee вообще вещь немного "стремная" ее лучше не использовать. Выше я написал Вам код который делает тоже самое только с помощью div'а и причем делает это во всех браузерах с одинаковой скоростью. Постарайтесь в нем разобраться, если что спрашивайте.
|
конкретнее о проблеме
Цитата:
<div id="Layer48"> <script language="JavaScript1.2" type="text/javascript" src="script/wx.js"></script> <hr color="orange"> </div> ваш последний вариант работает, но он записан в head, а мой в body. Подскажите как мне быть. |
Извините если я Вас не правильно понял. Для того чтобы подключть мой скрипт достаточно вставить мой код в файл wx.js
Создать элемент с произвольным id в который будут помещенны слайды e.g. <div id="slideContainer"></div> И прописать id этого элемента в этой строке: document.getElementById('slideContainer').appendChild(slider); Потом запустите скрипт после загрузки страницы прописав его так: <body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" onload="createEl();"> и всё. Редактировать скорость и шаг анимации с помощью этих переменных: var slidespeed=50; // скорость анимации var slidestep =5; // шаг анимции |
Цитата:
Огромное Вам спасибо!!! Вы меня очень выручили. :) :) :) |
Часовой пояс GMT +3, время: 08:57. |