javascript - 刷新页面时 Transform scale() 在 Chrome 和 Safari 中不一致

标签 javascript jquery css css-transforms webkit-transform

我编写了下面的代码来缩放所有内容以及浏览器大小,以便所有内容始终可见(在放大或缩小版本中)。

var docHeight = $(document).height();
var winHeight;
var zoomRatio;

function z(number) {
    var adjusted = number * zoomRatio;
    return adjusted;
}

fitWindow();
function fitWindow() {
    setTimeout(function(){
        winHeight = $(window).height();
        zoomRatio =  winHeight / docHeight;
        if (docHeight >= winHeight) {
            $('#view').css({
                transform: 'scale('+zoomRatio+')',
                'transform-origin': '0 0',
                '-moz-transform': 'scale('+zoomRatio+')',
                '-moz-transform-origin': '0 0',
                '-o-transform': 'scale('+zoomRatio+')',
                '-o-transform-origin': '0 0',
                '-webkit-transform': 'scale('+zoomRatio+')',
                '-webkit-transform-origin': '0 0',
                '-ms-transform': 'scale('+zoomRatio+')',
                '-ms-transform-origin': '0 0'
            });
        }
    }, 0);

    getAnchors();

    console.log(docHeight + ' ' + winHeight);
}

$(window).resize(fitWindow);

该代码在 Firefox 中运行良好,但在 Chrome 和 Safari 中存在一些不一致(我认为通常是基于 Webkit 的浏览器,因为它们的行为似乎相似)。

例如,如果我在最大化浏览器窗口的情况下加载我的页面,它会在调整大小时很好地缩放。但是,如果我在调整浏览器大小时刷新页面,则会切掉一大块(即它以原始大小加载而不应用缩放)。但是,如果我在调整浏览器大小时重新加载页面(通过点击地址栏中的回车键),所有内容都会正确显示并相应缩放。但是,如果我点击刷新按钮,中断会再次发生。

我已经尝试添加一个 setTimeout(具有不同的持续时间值),但这不起作用。有谁知道我该如何解决这个问题?谢谢。

最佳答案

没有回复表明没有人知道可能出了什么问题。不管怎样,经过无数次的搜索,我找到了解决方案。

我必须简单地在 CSS 中的 #view 上设置一个高度,以使比例每次都能正常工作。

关于javascript - 刷新页面时 Transform scale() 在 Chrome 和 Safari 中不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17217336/

相关文章:

php - 单击时将数量添加到背景位置(jQuery)

javascript - 我可以测试 javascript addRule 支持在 addRule/insertRule 之间切换吗?

javascript - 如何配置 ColdFusion Model Glue 3 使其不会在 AJAX 请求上重定向?

仅循环内的 Javascript 循环第一次执行

javascript - 如何将类添加到 jquery.datatables 列?

php - Zend 和 Jquery(Ajax 发布)

javascript - 寻找 Canvas 关键帧暂停关键帧动画示例

javascript - 单击单选按钮后启用<选择> <选项>

javascript - 从另一个域获取数据(json格式),无需jsonp

javascript - 无法让 css 应用于 Angular 组件