JS控制浏览器网页内容的百分比缩放

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS控制浏览器网页内容的百分比缩放相关的知识,希望对你有一定的参考价值。

用js,或者jQuery达到控制浏览器(IE10)网页内容缩放的效果,效果跟Ctrl +或者Ctrl -一样,但是网页内容中的顶部导航条仍然要使其保持100%;zoom或者
$("body").css("transform":"scale("0.8")","transform-origin":"50% 0")虽然实现了缩小效果,但是顶部导航条给缩短了,有解决办法吗?

你可以让顶部导航栏和其他部分分处不同的层,然后你只需要对其他部分所处的层进行缩放处理,导航栏不动,这样就实现你的目的了。比如:
<div class=head>这是顶部导航栏</div>
<div class=body>这是其他主体部分</div>
然后js代码就可以这样:
$("div.body").css("transform":"scale(0.8)","transform-origin":"50% 0")追问

html会因为缩小导致出现一块空白,怎么控制body,html宽高都不能删掉。只能overflow:hidden;但是这样,有的画面内容比较多时就看不到了。

追答

页面的缩放本来就不是一个正常网站所需要的正常功能,你肯定是有什么特殊需要才这么做的吧?既然这样,那你就不能要求百分百完美了

参考技术A 很简单,给你的导航条设置一个最小宽度限制nim-width:100%;这样顶部导航就不会改变宽度了 参考技术B 我有个方法,js我就不写了,说下思路 zoom 来设置页面的缩放,比如 bodyzoom:0.8; 就是以0.8的比例缩小页面, var h = document.body.clientWidth; //获得屏幕宽度 document.getElementsByTagName('body').style.zoom=1920/h; 我没有试过,你自己试试看

网页中如何做到缩放后屏幕后内容不受变化

例子如下网站:http://robinmastromarino.com/

这种效果是通过什莫效果实现的。
通过ctrl加滑轮进行缩放 不变化。

可以通过响应式布局来实现内容随着屏幕比例变化而变化,下面列出三个简单的响应式方法:

    例如使用flex布局;

      flex布局的使用

    或者把元素的大小改为百分比单位;

      百分比单位的使用

    又或者使用vh单位和vw单位,他们是基于显示屏的长宽比来计算内容的大小:

      whvh的使用

参考技术A

是通过给body设置固定定位实现的,以及去除元素的内外边距

复制以下代码,你可以预览一下(亲测无误)

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Document</title>

    <style>

        *

            outline: none;

            box-sizing: border-box;

            margin:0;

            padding:0;

            -webkit-tap-highlight-color: rgba(255,255,255,0);

        

        body

            position: fixed;

            top: 0;

            left: 0;

            width: 100%;

            height: 100%;

            overflow: hidden;

            background: #000;

        

        .box img

            width:100%;

        

        

    </style>

</head>

<body>

    <div class="box">

        <img src="https://iknowpc.bdimg.com/static/home/widget/partner/banner/img/banner-bg.e9122b7.png" alt="">

    </div>

    

</body>

</html>

如图

参考技术B 通过观察它的代码,得出, 核心内容是用的 webgl, 然后内容绘制在canvas上面, 之所以ctrl+滑轮缩放,是因为窗口大小并没有改变。 分析是因为它是根据窗口大小做的适配。 并不是其它人提到的媒体查询适配。 可以尝试缩小窗口,你会发现会出现适配。 参考技术C 网站要做适配处理,
1.安装需要响应的包
npm i lib-flexible -S
2.安装第二个包
npm i px2rem-loader -D
3.安装好了之后全局引入包,在main.js中添加如下代码
import 'lib-flexible'
4.在vue.config.js中添加如下代码
css: loaderOptions: postcss: plugins: [require('postcss-px2rem')(remUnit: 192)],,5.修改lib-flexible.js,
为什么要改,你会发现一个问题,移动端没问题,但是pc端他的大小只适配到540,
所以在安装包里找到 lib-flexible,包中的lib-flexible.js文件,
接下来把这个文件复制出来,放到lib文件下
然后在main.js中
把import 'lib-flexible'改成import './lib/lib-flexible/flexible',
知识在线,共同探讨,一起搬砖,快乐生活,苦了头发。
喜欢我就关注我吧!喜欢我就关注我吧!喜欢我就关注我
参考技术D 你可以f12一下就知道了,他们的图片是根据不同的分辨率使用不同的图片。另外css样式,它用的是rem,这个会根据屏幕不同,相应的改变大小。

以上是关于JS控制浏览器网页内容的百分比缩放的主要内容,如果未能解决你的问题,请参考以下文章

网页中如何做到缩放后屏幕后内容不受变化

流式布局和viewport

浏览器怎么调整网页显示比例

js,css控制网页内容不让选中和复制

在 Mac 上的 Safari 浏览器中如何放大网页?

<iframe>内的内容可以控制吗?