当前位置:首页 > JavaScript

js实现视口

2026-02-28 20:34:14JavaScript

获取视口尺寸

通过 window.innerWidthwindow.innerHeight 获取当前视口的宽度和高度(包含滚动条):

const viewportWidth = window.innerWidth;
const viewportHeight = window.innerHeight;

若需排除滚动条宽度,使用 document.documentElement.clientWidthclientHeight

js实现视口

const noScrollbarWidth = document.documentElement.clientWidth;
const noScrollbarHeight = document.documentElement.clientHeight;

监听视口变化

通过 resize 事件监听视口尺寸变化,并使用防抖优化性能:

function debounce(fn, delay) {
  let timer;
  return function() {
    clearTimeout(timer);
    timer = setTimeout(() => fn.apply(this, arguments), delay);
  };
}

window.addEventListener('resize', debounce(() => {
  console.log(`New viewport size: ${window.innerWidth}x${window.innerHeight}`);
}, 300));

检测移动设备视口

结合 window.screen.widthwindow.orientation 判断移动设备横竖屏:

js实现视口

const isMobilePortrait = window.innerWidth < window.innerHeight && 
                         window.screen.width < 768;
const isMobileLandscape = window.innerWidth > window.innerHeight && 
                          window.screen.width >= 768;

设置视口 Meta 标签

通过 JavaScript 动态修改 <meta name="viewport"> 内容:

const metaViewport = document.querySelector('meta[name="viewport"]');
metaViewport.setAttribute('content', 'width=device-width, initial-scale=1.0, maximum-scale=1.0');

视口相关 CSS 单位转换

将视口单位(vw/vh)转换为像素值:

function vwToPixels(vw) {
  return (vw * window.innerWidth) / 100;
}
function vhToPixels(vh) {
  return (vh * window.innerHeight) / 100;
}

标签: js
分享给朋友:

相关文章

js实现跳转

js实现跳转

使用 window.location 跳转 通过修改 window.location.href 或直接使用 window.location 实现页面跳转,适用于普通跳转或带参数的 URL。 //…

js实现轮播图

js实现轮播图

轮播图实现方法 基础HTML结构 <div class="slider"> <div class="slides"> <img src="image1.jpg…

js 实现倒计时

js 实现倒计时

实现倒计时的基本方法 使用 JavaScript 实现倒计时可以通过 setInterval 或 setTimeout 结合日期计算来完成。以下是两种常见实现方式。 使用 setInterval…

js实现类

js实现类

JavaScript 实现类的几种方式 JavaScript 是一种基于原型的语言,但在 ES6 之后引入了 class 语法糖,使得实现类更加直观。以下是几种常见的实现方式: 使用构造函数 传统…

js实现换肤

js实现换肤

使用CSS变量实现换肤 通过CSS变量可以轻松实现主题切换功能。CSS变量在根元素中定义,通过JavaScript动态修改这些变量值。 :root { --primary-color: #349…

js实现dh

js实现dh

JavaScript 实现 DH(Diffie-Hellman)密钥交换 Diffie-Hellman(DH)密钥交换是一种安全协议,允许双方在不安全的通信信道上建立一个共享密钥。以下是如何在 Jav…