Я пытаюсь изменить CSS атрибуты динамически для данных элементов в документе, мое текущее решение что-то вроде этого:Есть ли лучший способ изменить CSS атрибуты динамически
function changeEffect(element,choice){
var effects = {};
effects.name1 = {"-webkit-box-shadow" : "7px 13px 21px -1px rgba(0,0,0,0.5)",
"-moz-box-shadow" : "7px 13px 21px -1px rgba(0,0,0,0.5)",
"box-shadow" : "7px 13px 21px -1px rgba(0,0,0,0.5)"
},
effects.name2 = {"-webkit-filter" : "drop-shadow(5px 5px 5px #222)",
"filter" : "drop-shadow(5px 5px 5px #222)"
};
for(i in effects[choice]){
if(effects[choice].hasOwnProperty(i)){
// using jquery to easily apply changes
$(element).css(i,effects[choice][i]);
}
}
}
, например, если я хочу применить эффект name1 ко всем элементам с классом IMG, то код:
changeEffect('.img','name1');
мой вопрос
Есть ли лучшее решение для подобных задач?
Проголосовали за закрытие для этого, в первую очередь, на основе мнения. Я думаю, что ваше решение довольно хорошее. Код говорит сам за себя. Так что не меняйте. У других будут другие решения, которые также работают, возможно, более или менее эффективны. – Mouser
обычно то, что вы определяете как object.properties, будет определено в таблице стилей CSS, должно сделать тест, чтобы узнать, какой из них более эффективен. – maioman
yes @maioman вы правы – Ismail