Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Не могу поменять style.backgroundImage

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
SergeantPEPPER
Отправлено: 07 Мая, 2009 - 17:08:40
Post Id



Частый гость


Покинул форум
Сообщений всего: 245
Дата рег-ции: Сент. 2007  
Откуда: Казань


Помог: 0 раз(а)




Доброго времени суток.

Делаю менюшку на сайте, при наведении мыши вкладочка меню должна загораться. Сама вкладка состоит из трех частей: левая, центр и правая. Левая и правая имеюь в качетве background png-картинку. Мне нужно ее поменять на другую png-шку.

тут возникает проблема: центр часть менятеся без проблем, две крайние -нет. Для ИЕ прописал это все через runtimeStyle и fixpng(), как же сделать это в Опере и FF?

Странно, но FireBug показывает, что узлы (левый и правый) вообще не имеют свойства style...

Подскажите в чем может быть дело?
 
 Top
valenok
Отправлено: 07 Мая, 2009 - 17:14:13
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




А как ты меняешь ?


-----
Truly yours, Sasha.
 
My status
 Top
SergeantPEPPER
Отправлено: 07 Мая, 2009 - 18:46:41
Post Id



Частый гость


Покинул форум
Сообщений всего: 245
Дата рег-ции: Сент. 2007  
Откуда: Казань


Помог: 0 раз(а)




Так:
CODE (text):
скопировать код в буфер обмена
  1.  
  2. pnl.className='tab_l sel_l';
  3. pn.className='tab_c sel_c';
  4. pnr.className='tab_r sel_r';


Просто странная вещь:
alert(pn.style); - возвращает [object CSSStyleDeclaration] (в ФФ)
alert(pnl.style); - возвращает undefined

Почему?!?!? Ведь в html это три дива, свиду равноправные:
CODE (text):
скопировать код в буфер обмена
  1. <div class="tab_l"></div>
  2.                         <div class="tab_c"><div class="item" onmouseover="selTab(this);" onmouseout="selTab(this);"><a href="#">Новости</a></div></div>
  3.                         <div class="tab_r"></div>
 
 Top
IOpeH
Отправлено: 07 Мая, 2009 - 22:20:33
Post Id



Частый гость


Покинул форум
Сообщений всего: 175
Дата рег-ции: Нояб. 2007  


Помог: 0 раз(а)




SergeantPEPPER, не, возвращаться должен везде object CSSStyleDeclaration, скорее всего у вас pnl не определен, может что то еще, смотрите код внимательнее
 
 Top
SergeantPEPPER
Отправлено: 08 Мая, 2009 - 13:51:23
Post Id



Частый гость


Покинул форум
Сообщений всего: 245
Дата рег-ции: Сент. 2007  
Откуда: Казань


Помог: 0 раз(а)




IOpeH пишет:
SergeantPEPPER, не, возвращаться должен везде object CSSStyleDeclaration, скорее всего у вас pnl не определен, может что то еще, смотрите код внимательнее


Не, это исключено - точно говорю перепроверял несколько раз. К тому же Internet Explorer по
CODE (text):
скопировать код в буфер обмена
  1. alert(pn.style);
  2.                 alert(pnl.style);

выводит два раза object, а Opera и FireFox во втором случае выводят undefined
 
 Top
valenok
Отправлено: 08 Мая, 2009 - 15:01:39
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




Открой консоль ошибок и все скопируй сюда.
И скрипт который населяет переменные эти - тоже сюда.


-----
Truly yours, Sasha.
 
My status
 Top
SergeantPEPPER
Отправлено: 12 Мая, 2009 - 08:11:10
Post Id



Частый гость


Покинул форум
Сообщений всего: 245
Дата рег-ции: Сент. 2007  
Откуда: Казань


Помог: 0 раз(а)




1 Error FireBug:
CODE (text):
скопировать код в буфер обмена
  1. pnl.style.backgroundImage="url('./images/mn_tab_sel_l.png')";


function selTab(obj){
var pn=obj.parentNode;
var pnl=pn.previousSibling;
var pnr=pn.nextSibling;
if(pn.className=='tab_c'){
pnl.className='tab_l sel_l';
pn.className='tab_c sel_c';
pnr.className='tab_r sel_r';
if(cmBrowser=='ie'){
pnl.runtimeStyle.backgroundImage="url('./images/mn_tab_sel_l.png')";
pnr.runtimeStyle.backgroundImage="url('./images/mn_tab_sel_r.png')";
fixPng(pnl,'image');
fixPng(pnr,'image');
}else{
pnl.style.backgroundImage="url('./images/mn_tab_sel_l.png')";
pnr.style.backgroundImage="url('./images/mn_tab_sel_r.png')";
}
}else{
pnl.className='tab_l';
pn.className='tab_c';
pnr.className='tab_r';
if(cmBrowser=='ie'){
pnl.runtimeStyle.backgroundImage="url('./images/mn_tab_l.png')";
pnr.runtimeStyle.backgroundImage="url('./images/mn_tab_r.png')";
fixPng(pnl,'crop');
fixPng(pnr,'crop');
}
}
}

Вообще, говорят, что это происходит именно из-за использование png-шного background-а
(Добавление)
Все решил проблему - вообще как таковая она вставала только в ИЕ - там нельзя было менять стили на ходу. А в Опере и Мозилле через previousSibling и nextSibling брались "пустые" текстовые узлы... Вещь известная.... Но я почему то о ней забыл )

Спасибо за содействие

(Отредактировано автором: 12 Мая, 2009 - 08:16:00)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB