2013-12-05 2 views
0

Я использую этот код, чтобы вызвать материал при изменении размера окна.Объединение запросов jQuery и CSS Media

CSS

@media only screen and (min-width : 320px) and (max-width : 768px) { 
    .placeholder { 
     width:100%; 
    } 

JS

if ($(window).width() <= 768){ 
$('#middle').hide(); 
$('.left').removeClass('hidden'); 

} else { 
$('#middle').show(); 
$('.left').addClass('hidden'); 
} 
}); 

Однако это является несоответствие между запросом CSS медиа в 768 и шириной окна JQuery 768, потому что они делают не появляются одновременно. Это что-то объяснить на этой большой статье, http://www.fourfront.us/blog/jquery-window-width-and-media-queries

Однако, когда я пытаюсь применить это как

if ($(".placeholder").css("width") === "100%") { 
     $('.left').removeClass('hidden'); 
     $('#middle').hide(); 
    } else { 
     $('#middle').show(); 
     $('.left').addClass('hidden'); 
    } 

Это не работает. Я пробовал применять другие значения css, например, 2px margin, но это также не работает. Что я делаю не так? Может ли кто-нибудь помочь? Большое спасибо.

+0

Я понимаю вопрос, но почему бы не использовать CSS, чтобы сделать ваше шоу/скрыть? – isherwood

+0

Какой браузер вы тестируете? –

+0

isherwood- Вы абсолютно правы. Я не хотел утомлять вас слишком большим количеством кода, поэтому я не поместил все это. См. Обновленную версию, я также добавляю и удаляю классы. – Alga

ответ

2

Как сказал Мехди , $ (". placeholder"). css ("width") вернет вам значение px. Чтобы решить эту проблему вы можете добавить еще один стиль для вашего класса, который не будет влиять на ваш дизайн как border-color: rgb(255, 0, 0); и использовать его для вашего если ..

Смотреть это example

+1

мне понравилась ваша идея :) – mehdi

+1

Спасибо André! Это сработало красиво. Я пытался это сделать раньше, но по какой-то причине это не сработало. Он работает сейчас! – Alga

1

даже если вы установите width:100%, $(".placeholder").css("width") даст вам ширину в рх

DEMO

if ($(".placeholder").css("width") == $(window).width()+"px")//or $(container).width() 

означает .placeholder ширина составляет 100%, если рентабельность = 0

+1

нет, извините. Это был плохой выбор имени div. Забудьте об этом, давайте назовем это #blue. – Alga

+1

Я так не думаю, потому что это будет нацеливание на «окно». – AfromanJ

+0

@Alga i'v попробуйте его в скрипке и обновите ответ. – mehdi

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