javascript не работает в joomla

Тема в разделе "Интерактивные возможности", создана пользователем baloon, 18.02.2009.

  1. Offline

    baloon Недавно здесь

    Регистрация:
    19.12.2008
    Сообщения:
    35
    Симпатии:
    1
    Пол:
    Мужской
    есть javascript, который двигает картинки. хочу его поместить в шапку сайта.
    но он не работает в joomla.
    вставляю в index.php - не пашет, делаю через произвольный HTML в модуле тоже самое. и с mod_specialhtml делал.
    вставлял другой скрипт - работает. а этому что-то мешает.
    javascript не знаю, joomla тоже не очень, поверхностно.

    подскажите, пожалуйста, что не так в скрипте? уже несколько дней не могу сделать =O

    Код (CODE):
    1. <html><head>
    2.  
    3. <style type="text/css">
    4. <!--
    5. .moveDiv {
    6.     background-position: left center;
    7.     position: absolute;
    8.     left: 0px;
    9.     top: 0px;
    10.     width: 1124px;
    11.     margin-left:-100px;
    12.     height: 201px;
    13.     background-repeat: no-repeat;
    14. }
    15. -->
    16. </style>
    17.  
    18. </head><body>
    19.  
    20. <div class="moveDiv" style="background-color:#09F;"></div>
    21. <script type="text/javascript">
    22.  
    23. var pics = Array();
    24.  
    25. pics[1] = Array('http://il777.ru/111/topskroll01.png', Array(100, 50), 1, -1, 1, 1124, 10);
    26. pics[2] = Array('http://il777.ru/111/topskroll01.png', Array(0, 0), 1, -1, 1, 1124, 10);
    27.  
    28. for(key in pics){
    29.     createDiv(pics[key]);
    30. }
    31.  
    32. //var myBg = moveBG(document.getElementById('ya'), 0, 1, -1, 1, 500);
    33. function createDiv(prop){
    34.     var d = document.createElement('div');
    35.     d.className = 'moveDiv';
    36.     document.body.appendChild(d);
    37.     d.style.backgroundImage = "url("+ prop[0] +")";
    38.     d.style.backgroundPosition = prop[1][0] +'px '+ prop[1][1] +'px';
    39.     moveBG(d, prop[1], prop[2], prop[3], prop[4], prop[5], prop[6]);
    40. }
    41.  
    42. function moveBG(o, pos, to, from, d, maxPos, speed){
    43.     setInterval(function(){
    44.         o.style.backgroundPosition = pos[0] +'px '+ pos[1] +'px';
    45.         if(pos[0] <= 0){
    46.             pos[0] = maxPos;
    47.             //d = to;
    48.         } else if(pos[0] >= maxPos) {
    49.             pos[0] = 0;
    50.             //d = from;
    51.         }
    52.         pos[0] += d;
    53.     }, speed);
    54. }
    55. </script>
    56. </body>
    57. </html>


    joomla 1.5.8. пробовал отключать редактор.
     
  2.  
  3. Dead Krolik
    Offline

    Dead Krolik специалист

    Регистрация:
    13.04.2007
    Сообщения:
    3 688
    Симпатии:
    101
    Пол:
    Мужской
    А отладчик явасркипта (в той же опере) пишет что-нибудь?
     
  4. Offline

    baloon Недавно здесь

    Регистрация:
    19.12.2008
    Сообщения:
    35
    Симпатии:
    1
    Пол:
    Мужской
    смотрел firebug'ом, средствами оперы - ничего не увидел. правда я первый раз смотрел :) раньше не знал об этом.
    вот - http://il777.ru/111/ может вы, что-нибудь увидите.
    тут грузится index.php джумлы только с этим скриптом.
     
  5. Offline

    baloon Недавно здесь

    Регистрация:
    19.12.2008
    Сообщения:
    35
    Симпатии:
    1
    Пол:
    Мужской
    блин, неужели ни кто не знает в чем проблема ? :)

    я нашел другой способ реализовать задумку (плывущие облака в шапке) - с помощью модуля SlideShow Pro.
    но это по-моему не лучший вариант. скрипт был бы уместней для этой задачи. да и подтормаживает этот модуль иногда.
     
  6. Dead Krolik
    Offline

    Dead Krolik специалист

    Регистрация:
    13.04.2007
    Сообщения:
    3 688
    Симпатии:
    101
    Пол:
    Мужской
    У меня там ничего не работает. А что по идее должно быть?
     
  7. Bellatrix
    Offline

    Bellatrix Недавно здесь

    Регистрация:
    21.11.2008
    Сообщения:
    76
    Симпатии:
    5
    Пол:
    Мужской
    Да просто путь надо прописать к этой картинке правильно и всё будет видно.
    Скрипт меняет координаты картинки исправно, а её не видать, поскольку путь неправильно подставляется.
    Когда путь в стиле прописан правильно, слева направо начинает ползать цифра "2" :D
    Видимо так же и облака должны плыть.
     
  8. Offline

    baloon Недавно здесь

    Регистрация:
    19.12.2008
    Сообщения:
    35
    Симпатии:
    1
    Пол:
    Мужской
    http://il777.ru/index.php вот так должно быть.
     
  9. Offline

    baloon Недавно здесь

    Регистрация:
    19.12.2008
    Сообщения:
    35
    Симпатии:
    1
    Пол:
    Мужской
    как же правильно путь прописывать?
    без джумлы все отлично пашет, как только вставляю скрипт в index.php фаблона джумлы - перестает работать.
    я как только уже не пробовал путь писать...
     
  10. Offline

    baloon Недавно здесь

    Регистрация:
    19.12.2008
    Сообщения:
    35
    Симпатии:
    1
    Пол:
    Мужской
    если взять путь к картинки из исходного кода страницы http://il777.ru/111/ и перейти по нему, то эта картинка будет видна, просто, одна.
     
  11. Bellatrix
    Offline

    Bellatrix Недавно здесь

    Регистрация:
    21.11.2008
    Сообщения:
    76
    Симпатии:
    5
    Пол:
    Мужской
    Вот этот фрагмент заменить надо (кавычки там зачем-то двойные стояли):

    Код (CODE):
    1. function createDiv(prop){
    2.     var d = document.createElement('div');
    3.     d.className = 'moveDiv';
    4.     document.body.appendChild(d);
    5.     d.style.backgroundImage = 'url(' + prop[0] + ')';
    6.     d.style.backgroundPosition = prop[1][0] +'px '+ prop[1][1] +'px';
    7.     moveBG(d, prop[1], prop[2], prop[3], prop[4], prop[5], prop[6]);
    8. }
     
    Последнее редактирование: 23.02.2009
  12. Offline

    baloon Недавно здесь

    Регистрация:
    19.12.2008
    Сообщения:
    35
    Симпатии:
    1
    Пол:
    Мужской
    заменил - не работает. пути пробовал менять.
    что-то задолбал меня этот скрипт, но заставить работать еще сильнее хочется :D
     
  13. chilly_bang
    Offline

    chilly_bang специалист

    Регистрация:
    30.04.2006
    Сообщения:
    1 545
    Симпатии:
    38
    Пол:
    Мужской
    ну так вставь его в отдельный файл, а его во фрейм
     
  14. Bellatrix
    Offline

    Bellatrix Недавно здесь

    Регистрация:
    21.11.2008
    Сообщения:
    76
    Симпатии:
    5
    Пол:
    Мужской
    Копируй один в один, как я писал, и не надо ничего изобретать дополнительно.
    В аттаче теперь полный код. Расширение надо заменить на html. Работает с любого компьютера.
     

    Вложения:

    • oblaka.txt
      Размер файла:
      1.5 КБ
      Просмотров:
      14
    Последнее редактирование: 23.02.2009
    baloon нравится это.
  15. Offline

    baloon Недавно здесь

    Регистрация:
    19.12.2008
    Сообщения:
    35
    Симпатии:
    1
    Пол:
    Мужской
    Просто с расширением .html оно у меня работает. И с .php работает. Без joomla.
    Перестает работать в index.php шаблона joomla. Мне кажется он с joomla конфликтует. Что-то ему мешает.

    Вот (сайт на joomla) http://il777.ru/111/ - вставил код из прикрепленного вами файла в index.php шаблона, не работает.
    Как подгрузить в нужное место этот скрипт я не знаю.
    У меня там идет <div> этот_скрипт </div>, как сделать, чтобы в этом месте загружался скрипт, без вставки самого скрипта? Тогда сам скрипт можно вынести в отдельный файл.

    Использовать фреймы не хотелось бы.

    Кстати, делал через враппер в джумле. Подгружал .html файл со скриптом в модуль. Работает. Но там дизайн ломается.

    Очень спасибо за помощь.
     
  16. chilly_bang
    Offline

    chilly_bang специалист

    Регистрация:
    30.04.2006
    Сообщения:
    1 545
    Симпатии:
    38
    Пол:
    Мужской
    точнее, так: вот это в код вствляешь:
    Код (PHP):
    1. <script type="text/javascript">
    2.  
    3. var pics = Array();
    4.  
    5. pics[0] = Array('http://il777.ru/111/templates/rt_vertigo_j15/topskroll02.png', Array(100, 50), 1, -1, 1, 1124, 10);
    6. pics[1] = Array('http://il777.ru/111/topskroll01.png', Array(0, 0), 1, -1, 1, 1124, 10);
    7.  
    8. for(key in pics){
    9.     createDiv(pics[key]);
    10. }
    11.  
    12. //var myBg = moveBG(document.getElementById('ya'), 0, 1, -1, 1, 500);
    13. function createDiv(prop){ var d = document.createElement('div'); d.className = 'moveDiv'; document.body.appendChild(d); d.style.backgroundImage = 'url(' + prop[0] + ')'; d.style.backgroundPosition = prop[1][0] +'px '+ prop[1][1] +'px'; moveBG(d, prop[1], prop[2], prop[3], prop[4], prop[5], prop[6]); }
    14.  
    15.  
    16. function moveBG(o, pos, to, from, d, maxPos, speed){
    17.     setInterval(function(){
    18.         o.style.backgroundPosition = pos[0] +'px '+ pos[1] +'px';
    19.         if(pos[0] <= 0){
    20.             pos[0] = maxPos;
    21.             //d = to;
    22.         } else if(pos[0] >= maxPos) {
    23.             pos[0] = 0;
    24.             //d = from;
    25.         }
    26.         pos[0] += d;
    27.     }, speed);
    28. }
    29. </script>
     
    baloon нравится это.
  17. Offline

    baloon Недавно здесь

    Регистрация:
    19.12.2008
    Сообщения:
    35
    Симпатии:
    1
    Пол:
    Мужской
    вставил - не работает.
    он ведь ничем не отличается от того, что выше приводился?
     
  18. Bellatrix
    Offline

    Bellatrix Недавно здесь

    Регистрация:
    21.11.2008
    Сообщения:
    76
    Симпатии:
    5
    Пол:
    Мужской
    Не знаю почему, но в код у тебя всё время лишняя запись /111/ вставляется.
    В аттаче файл с отдельным скриптом.
     

    Вложения:

    • oblaka.rar
      Размер файла:
      956 байт
      Просмотров:
      24
  19. Offline

    baloon Недавно здесь

    Регистрация:
    19.12.2008
    Сообщения:
    35
    Симпатии:
    1
    Пол:
    Мужской
    заработало! так и думал, что есть скрипт в index.php не совать то работать будет. спасибо, Bellatrix!!
    вот - http://il777.ru/111/

    но опять не все гладко.. firebug'ом в мазиле, консолью ошибок в опере показывает на следующие
    (это из оперы)
    Код (CODE):
    1. JavaScript - http://il777.ru/111/
    2. Inline script thread
    3. Error:
    4. name: TypeError
    5. message: Statement on line 19: Cannot convert undefined or null to Object
    6. Backtrace:
    7.   Line 19 of linked script http://il777.ru/111/templates/rt_vertigo_j15/js/oblaka.js: In function createDiv
    8.     d.style.backgroundPosition = prop[1][0] +'px '+ prop[1][1] +'px';
    9.   Line 28 of linked script http://il777.ru/111/templates/rt_vertigo_j15/js/oblaka.js
    10.         createDiv(pics[key]);
    11. stacktrace: n/a; see 'opera:config#UserPrefs|Exceptions Have Stacktrace'

    а ie вообще отказывается страницу открывать.
    я не понимаю, что это значит. легко поправить?
     
  20. Bellatrix
    Offline

    Bellatrix Недавно здесь

    Регистрация:
    21.11.2008
    Сообщения:
    76
    Симпатии:
    5
    Пол:
    Мужской
    Вобщем, то, куда ставить этот скрипт с дивом, большого значения не имеет.
    Он имеет абсолютную привязку к левому верхнему углу экрана и может выполняться где угодно.
    В частности, скрипт можно засунуть куда-нибудь в самую задницу перед закрывающимся тегом </body>

    Код (html):
    1. <div class="moveDiv"></div>
    2.     <script type="text/javascript" src="......................../oblaka.js"></script>
    3.     </body>


    Что касается IE, то он, по-моему, попросту ломает сам Layout у шаблона и скрипт тут вообще ни причём. Возьми убери скрипт и посмотри, будет ли шаблон отображаться нормально без него.
     
  21. Bellatrix
    Offline

    Bellatrix Недавно здесь

    Регистрация:
    21.11.2008
    Сообщения:
    76
    Симпатии:
    5
    Пол:
    Мужской
    Только что на всякий случай проверил в IE7 - работает безупречно. И весь Layout сохраняется. Значит проблема в несовместимости шаблона с IE6, а не в скрипте.
    Есть такие шаблоны, и они как раз для Joomla 1.5.х.
    Так что, либо меняй шаблон, либо смотри, нет ли в шаблоне специальных хаков для IE6.
     

Поделиться этой страницей

Загрузка...