window.resize
- правильное событие, но оно не срабатывает при загрузке страницы.Однако вы можете просто добавить .trigger('resize')
к своему коду, чтобы он запускался при загрузке страницы:
$(window).bind('resize', function(){
var containerSize = $('.container').width(),
textPercentage = 0.17391304347826086956521739130435, /* 40/230 */
textRatio = containerSize * textPercentage,
textEms = textRatio / 14;
$('.container h3').css(fontSize, textEms+"em");
}).trigger('resize');
Вы захотите запустить этот код после document.ready
, чтобы убедиться, что ширина, которую вы получаетедля контейнера это правильно.Вы также можете разместить этот код внизу вашего HTML-документа (что вы должны делать с обработчиком событий document.ready
или без него), что обеспечит доступность элементов при запуске этого кода:
//wait for `document.ready` to fire
$(function () {
//cache the .container and H3 elements
var $container = $('.container'),
$h3 = $container.find('h3');
//bind event handler to `window.resize`
$(window).bind('resize', function(){
//get the width of the container
var containerSize = $container.width(),
textPercentage = 0.17391304347826086956521739130435, /* 40/230 */
textRatio = containerSize * textPercentage,
textEms = textRatio / 14;
$h3.css('fontSize', textEms+"em");
}).trigger('resize');
});
Обратите внимание, что я кэшировал элемент (ы) H3
, поэтому его / затем не нужно выбирать для каждого события resize
, потому что, когда вы на самом деле изменяете размер своего браузера, возникает множество этих событий, которые запускаются.