当前位置:首页 > JavaScript

js实现视口

2026-02-28 20:34:14JavaScript

获取视口尺寸

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

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

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

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 判断移动设备横竖屏:

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)转换为像素值:

js实现视口

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

标签: js
分享给朋友:

相关文章

jquery.js

jquery.js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,用于简化 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它的设计宗旨是“Write Less, Do Mor…

js实现验证

js实现验证

验证表单输入 使用JavaScript验证表单输入是常见的需求。可以通过监听表单提交事件,检查输入字段是否符合要求。 document.getElementById('myForm').addEve…

js实现延迟

js实现延迟

实现延迟的方法 在JavaScript中,实现延迟操作有多种方式,以下是几种常见的方法: 使用setTimeout函数 setTimeout是JavaScript中最常用的延迟执行方法。它接受一个回…

js实现授权

js实现授权

授权流程设计 授权流程通常涉及前端与后端的交互,常见方案包括OAuth2.0、JWT等。以JWT为例的典型流程: 用户提交凭证(如用户名密码)到认证服务 服务端验证通过后生成包含用户信息的JWT令牌…

js怎么实现异步

js怎么实现异步

异步实现方法 JavaScript中实现异步操作主要通过以下几种方式: Promise Promise是ES6引入的异步解决方案,用于处理异步操作的成功或失败状态。 const promise =…

js实现下拉菜单

js实现下拉菜单

使用HTML和CSS创建基础结构 HTML部分需要包含一个触发下拉的按钮和隐藏的下拉菜单内容: <div class="dropdown"> <button class="dr…