Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как узнать значение свойтства
 
 автор: eek   (10.07.2006 в 14:03)   письмо автору
 
 

Здравствуйте! Подскажите пожалуйста как узнать значение фонового цвета объекта?

function MarkCell(elid,color1,color2) {
elem = document.getElementById(elid);
if (elem.style.background === color2) {
elem.style.background = color1;
} else {
elem.style.background = color2;
}
}

не работает, я пробовал выводить значение elem.style.background в форму, чтоб посмотреть какое там значение, но отображается пустая строка. Тогда как присваивание работает нормально.

   
 
 автор: AlexSol   (10.07.2006 в 14:11)   письмо автору
 
   для: eek   (10.07.2006 в 14:03)
 


<script language="javascript" type="text/javascript">
function MarkCell(elid,color1,color2) {
elem = document.getElementById(elid);
alert(elem);
if (elem.style.background == color2) {
elem.style.background = color1;
} else {
elem.style.background = color2;
}
}
</script>
<div id="dd">No</div>
<a href="#" onClick="MarkCell('dd','red','silver')">test</a>


либо дело в === вместо ==, либо в кавычках при вызове

   
 
 автор: eek   (10.07.2006 в 16:17)   письмо автору
 
   для: AlexSol   (10.07.2006 в 14:11)
 

Если менять таким образом цвет у div блока, то у меня работает, но только в ИЕ 5.0, а в Фаерфоксе 1.5 не работает сравнение. А если объект(вместо div) - ячейка таблицы td, то отказываеться работать вообще и там, и там . :(

   
 
 автор: AlexSol   (10.07.2006 в 17:02)   письмо автору
 
   для: eek   (10.07.2006 в 16:17)
 


<table border="1"><tr><td id="dd">12 12 1</td></tr></table>


работает в ie6,0 - вопрос: зачем вам пятый?

с Фаерфоксе (Mozilla 1.7.2) сложнее: ошибка при сравнение.
елс вызывать background - то он выдает не только цвет, но и данные о фоновом рисунке( даже если его нет). можно заменить на backgroundColor -но он как-то странно возвращает значение - в формате ргб ----- rgb(0,225,0)

   
 
 автор: Dimon.st   (10.07.2006 в 17:04)   письмо автору
 
   для: eek   (10.07.2006 в 16:17)
 

Впервый раз такое свойство вижу: node.style.background.. однако проверил в осле работает.. странно.. Я бы предложил писать node.style.backgroundColor.

   
 
 автор: RMW   (10.07.2006 в 17:38)   письмо автору
 
   для: eek   (10.07.2006 в 16:17)
 

backgroundColor и
попробавать цвет задавать в шестнадцатиричном формате,
возможно фаерфокс не станет преобразовывать его в rgb(000,000,000)

   
 
 автор: AlexSol   (10.07.2006 в 17:48)   письмо автору
 
   для: RMW   (10.07.2006 в 17:38)
 

неа - именно что преобразовывает. если использовать название то возвращает его, а если #xxxxxx - то переводит в rgb.

Вообще странно это - зачем перевод устраивать?

   
 
 автор: Dimon.st   (10.07.2006 в 20:35)   письмо автору
 
   для: AlexSol   (10.07.2006 в 17:48)
 

Ну вот таков браюзер.. предлагаю более сложный метод - функции кодирования и декодирования цветов в rgb и hex:
function DecimalToHexa(val) {
    var hexStr = val.toString(16);
    if (hexStr.length < 2) {
        hexStr = "0" + hexStr;
    }
    return hexStr;
}

function HexaToDecimal(hex) {
    var red   = hex.substr(1, 2);
    var green = hex.substr(3, 2);
    var blue  = hex.substr(5, 2);

    red   = parseInt(red, 16);
    green = parseInt(green, 16);
    blue  = parseInt(blue, 16);

    return [red, green, blue];
}

function ColorToHexa(rgb) 
{return '#'+DecimalToHexa(rgb[0])+DecimalToHexa(rgb[1])+DecimalToHexa(rgb[2]);}

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования