2013-05-06 2 views
0

Я пытаюсь динамически изменять размер div, используя jquery, чтобы он настраивался на высоту видового экрана посетителя в Magento.jquery resize div height относительно высоты документа

var $j = jQuery.noConflict(); 
$j(window).load(function() { 
$j(".header-clear").css({'height':(($j(document).height())/2.7)+'px'}); 
}); 

Например, если окно просмотра посетителя составляет 1080px, тогда высота div должна быть установлена ​​равной 400px.

EDIT: Изменен скрипт на основе ответов и .jquery api для .resize и .height и удалена прямая ссылка.

var $j = jQuery.noConflict(); 
$j(window).load(function() { 
$j(".header-clear").css({'height': parseFloat(($j(window).height())/2.7)+'px'}); 
}); 
$j(window).resize(function() { 
$j(".header-clear").css({'height': parseFloat(($j(window).height())/2.7)+'px'}); 
}); 

Это заставило его работать на меня.

+0

Я могу использовать медиа-запрос в css, чтобы сделать это вручную, но хотел какой-то отзывчивый метод, который бы установил этот стиль для элемента на основе видового экрана посетителя. – Joshua34

ответ

1

Вы бы использовать функцию .resize(), чтобы вызвать изменение размера, так что это будет выглядеть примерно так:

var $j = jQuery.noConflict(); 

$j(document).ready(function() { 
    resizeIt(); //the first load 
    $j(window).resize(function(){ resizeIt(); }); //on every resize 
}); 

function resizeIt() { //function to resize your object 
    $j(".header-clear").css({'height':(($j(document).height())/2.7)+'px'}); 
} 
+0

Это не изменяет размер div на основе пользовательского видового экрана, и это, похоже, ничего не делает, это очень странно для меня. Как я уже упоминал выше, я могу использовать медиа-запрос в css для этого вручную, но хотел какой-то отзывчивый метод, который бы установил этот стиль для элемента. Я также удалил «height: 400px;» от local.css, поскольку я думал, что это может переопределить .jquery, но безрезультатно. Любые другие идеи? – Joshua34

+0

Вы можете просмотреть ссылку выше, чтобы узнать, как используется функция resize(), а затем оттуда. Вам нужно будет захватить размер окна при событии изменения размера, а затем использовать оберточный div или окно, чтобы рассчитать, как установить размер объекта –

+0

Спасибо @ Zee Tee! Я получил его, используя ваш пример и ссылку, которую вы предоставили. – Joshua34

1

Используйте parseFloat, как вы разделили высоту на 2.7 так будет соответствующий результат.

var $j = jQuery.noConflict(); 
$j(window).load(function() { 
$j(".header-clear").css({'height': parseFloat(($j(document).height())/2.7)+'px'}); 
}); 
+0

он по-прежнему не изменяет размер div на основе пользовательского окна просмотра, он, похоже, ничего не делает, очень странно для меня. Я могу использовать медиа-запрос в css для этого вручную, но хотел какой-то отзывчивый метод, который бы установил этот стиль для элемента – Joshua34

+0

Спасибо MIss poo Я обновил код, чтобы отразить ваш ответ. – Joshua34

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