2015-02-04 4 views
0

Я использую skrollr и хочу, чтобы весь объект моей страницы менял цвета/градиенты. Я могу сделать это с моим текущим кодом, который:Изменение атрибута данных тела с помощью jQuery

<body data-start="background-image:linear-gradient(rgb(4,21,41), rgb(31,16,66));" data-end="background-image:linear-gradient(rgb(31,16,66), rgb(66,16,52));"> 

Однако при загрузке в плавающем фрейме (который запускается подчиненной формы), я хочу изменить градиент для тела. Я думал, что изменение data-start значения может сделать трюк, так что я пробовал:

<iframe onload="if(submitted) 
{$('body').attr('data-start','background-image:linear-gradient(rgb(4,21,41), rgb(31,16,66))'}"> 

Но это не сработало. Я пробовал другие функции jQuery, которые работают, когда загружается iFrame (например, $('#idName').hide()). Но функция .attr(), похоже, не работает, и я думаю, что что-то с помощью skrollr мешает. Я также пробовал функцию .data(), но это тоже не изменяет значения данных.

Кто-нибудь знает, как изменить градиент тела после определенного триггера (например, отправить форму)?

+0

Это менее вопрос со значением не обновляется, и еще тот факт, что обновление это не делает ничего. Там будет скрипт, который что-то делает с этим атрибутом начала передачи данных в теге body при загрузке страницы, но он не будет продолжать проверять, обновляется ли значение; узнать, что это за сценарий, какую функцию нужно вызывать, и называть его после обновления значения. –

+0

Почему бы не изменить градиент непосредственно на стиль тела без изменения атрибутов данных? –

+0

Я не работал с skrollr, но вам, вероятно, понадобится повторная инициализация skrollr, если это будет поддерживаться. –

ответ

0

Из documentation кажется, что refresh должен делать:

Полезно, когда: ... Data-атрибуты манипулируют динамически.

var skroll = skrollr.init(/*...*/); 

// when needed 
skroll.refresh(); 
Смежные вопросы