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布局;
或者把元素的大小改为百分比单位;
又或者使用vh单位和vw单位,他们是基于显示屏的长宽比来计算内容的大小:
是通过给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控制浏览器网页内容的百分比缩放的主要内容,如果未能解决你的问题,请参考以下文章