2014-11-06 2 views
0

У меня есть jQuery проблема.jQuery chaining css свойства с задержкой

Сначала я использую height: auto; для моего .container элемента таким образом, что полоса прокрутки добавляется, если .container содержание больше, чем высота браузеров окна. Через 2 секунды высота должна получить высота окна.

Это мой текущий код в функции $(document).ready(...):

$('.container').css('height', 'auto').delay(2000).css('height', $(window).height()); 

В настоящее время css('height', $(window).height()) не будет применена на всех.


Что не так с моей цепочкой jQuery?

+0

@Ben Фортуны: The JQuery Функция 'css()' не нуждается в ней. Он принимает 'px' –

ответ

3

css является незамедлительным и не поставленным в очередь/с задержкой (например, animate).

Ваши варианты использования: setTimeout или добавить их в очередь анимации (или использовать методы, которые - в очереди).

например. с помощью таймера

$('.container').css('height', 'auto'); 
    setTimeout(function(){ 
     $('.container').css('height', $(window).height()); 
    }, 2000); 

JSFiddle: (благодаря @Raghu Chandra) http://jsfiddle.net/zd5xweb6/

с использованием очереди:

$('.container').css('height', 'auto').delay(2000).queue(function(){ 
     $(this).css('height', $(window).height()); 
    }); 

JSFiddle:http://jsfiddle.net/zd5xweb6/1/

+0

Когда я хотел ответить на ваш (тот же) ответ уже был здесь! моя скрипка идет здесь http://jsfiddle.net/raghuchandrasorab/zd5xweb6/ –

+1

@Raghu Chandra: вы использовали свой JSFiddle с кредитом. Спасибо :) –

+1

+1 надеюсь, что это поможет @pbaldauf –