2016-01-11 2 views
2

Я пытаюсь реализовать слайд-шоу на весь рост на своем веб-сайте. Тем не менее, я хотел бы, чтобы слайд-шоу было полным, если ширина браузера больше 767 пикселей.Запуск контейнера с полной высотой при достижении минимальной ширины окна

Это мой код до сих пор:

if($(window).width() > 767) { 

    $(window).resize(function() { 

    var winHeight = $(window).height(); 
    var headerHeight = $(".navbar").height(); 
    $('.slideshow, .slideshow li').height(winHeight); 


    }); 

    $(window).trigger('resize'); 

} 

Это своего рода работает, если я браузер начинает по ширине больше, чем 767. Однако. Если если браузер запускается с шириной менее 767, и я начинаю изменять размер более 767, сценарий не запускается.

Любые идеи, как я мог это исправить?

+0

- это код на событии 'resize' в браузере или просто запускается один раз в начале? – jkris

+0

@jkris Я не уверен в вопросе, но из-за того, что, по-моему, я думаю, что триггер resize всегда должен работать, поскольку он изменяет размер div каждый раз, когда изменяется окно браузера. – Johann

ответ

1

Обработчик resize событие связано, когда ваш браузер запускается только когда width > 767, попробуйте удалить, если условие и оно должно работать нормально

EDIT:

Чтобы сделать его применять только тогда, когда его ширина составляет> 767, состояние должно быть внутри события resize

$(window).resize(function() { 
    if($(window).width() > 767) { 
    var winHeight = $(window).height(); 
    var headerHeight = $(".navbar").height(); 
    $('.slideshow, .slideshow li').height(winHeight); 
    } else { 
    $('.slideshow, .slideshow li').height(400); //initial height 
    } 
}); 
$(window).trigger('resize'); 
+0

Дело в том, что я хочу, чтобы .slideshow div был полной высотой браузера, когда ширина браузера больше 767, поэтому мне нужно «if», чтобы вызвать его. – Johann

+0

извините, не совсем прочитал ваши требования полностью, обновил ответ – jkris

+0

Большое спасибо за вашу помощь @jkris. Однако при использовании вашего кода высота не вычисляется или не применяется к .slideshow div – Johann

0

Вы должны сделать это намного проще в css с помощью медиа-запроса.

@media (min-width:500px){ 
    .slideshow{ 
    height:100%; 
    } 
} 
+0

Я понимаю вашу точку зрения, но есть содержание после слайд-шоу, поэтому высота: 100% не будет работать для этой цели. Вот почему я пытаюсь использовать альтернативу JS. – Johann

+0

Ах, я неправильно истолковал ваш смысл, когда вы сказали «полная высота». Я все еще думаю, что вы бросаете js в проблему css, которая может привести к неприятным запахам кода. Удачи. – gegillam

Смежные вопросы