文本在小窗口中加载太大

时间:2013-09-12 17:22:39

标签: javascript jquery html css resize

我正在使用jquery在任何窗口调整大小上更改字体大小的网站上工作,以便将所有内容保存在正确的位置。它工作得很好,但是当某些浏览器没有最大化时,字体仍然会像它一样加载,直到用户调整浏览器大小。即使我使浏览器小于页面加载时的浏览器,字体也会调整。这是我的代码:

$(document).ready(function() {
    var mainwidth = $('.main').width();
    var mainheight = $('.main').height(mainwidth * .8895);
    var headerwidth = $('.header-middle').width();
    $('.main').height(mainwidth * .8895)
    $('.logo').width(headerwidth * .049);
    $('.logo').height(headerheight * .7533);
    $('.divider').width(headerwidth * .00204);
    $('.design-image').width(headerwidth * .2547);

    $('.call-us-today').css({'font-size': headerwidth * .01836});
    $('.header-paragraph').css({'font-size': headerwidth * .01734});
    $('.header-paragraph-footer').css({'font-size': headerwidth * .01632});
    $('.top-text').css({'font-size': headerwidth * .02448});
    $('.graybar-text').css({'font-size': headerwidth * .03265});
    $('.body-header').css({'font-size': headerwidth * .02245});
    $('.body-text').css({'font-size': headerwidth * .01632});
    $('.footer').css({'font-size': headerwidth * .01224});
    $('.banner-text').css({'font-size': headerwidth * .02244});

    $('.graybar-text').css({'letter-spacing': headerwidth * .00408});


});

$(window).resize(function() {
    var mainwidth = $('.main').width();
    var mainheight = $('.main').height(mainwidth * .8895);
    var headerwidth = $('.header-middle').width();
    var headerheight = $('.header-middle').height();
    $('.main').height(mainwidth * .8895);
    $('.logo').width(headerwidth * .049);
    $('.logo').height(headerheight * .7533);
    $('.lady-image').width(headerwidth * .2835);
    $('.divider').width(headerwidth * .00204);
    $('.design-image').width(headerwidth * .2547);

    $('.call-us-today').css({'font-size': headerwidth * .01836});
    $('.header-paragraph').css({'font-size': headerwidth * .01734});
    $('.header-paragraph-footer').css({'font-size': headerwidth * .01632});
    $('.top-text').css({'font-size': headerwidth * .02448});
    $('.graybar-text').css({'font-size': headerwidth * .03265});
    $('.body-header').css({'font-size': headerwidth * .02245});
    $('.body-text').css({'font-size': headerwidth * .01632});
    $('.footer').css({'font-size': headerwidth * .01224});
    $('.banner-text').css({'font-size': headerwidth * .02244});

    $('.graybar-text').css({'letter-spacing': headerwidth * .00408});
});

在页面加载之前,document.ready是否已加载?任何有关这方面的帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

您可以通过稍微更改代码来执行此操作。

$(window).resize(function() {

位并将其更改为

$(window).resize(resizeMyStuff) 

然后使用调整大小处理程序中的现有代码创建一个新函数。

function resizeMyStuff() {
var mainwidth = $('.main').width();
var mainheight = $('.main').height(mainwidth * .8895);
var headerwidth = $('.header-middle').width();
var headerheight = ... etc

这样,您可以在$(document).ready函数的末尾调用该函数,因此每次页面加载时都会设置大小。

您也可以使用

var browserWidth = $(window).width();
var browserHeight = $(window).height();

从而不是依赖于页面元素(可能受到一些奇怪的css继承或某些事情的影响)来获取窗口大小。