@financial-times/o-viewport

中文文档
5.1.2发布于 2023/10/27MITES Module零依赖近 30 天下载 6329

用于附加解开的听众以调整窗口上的大小、滚动、取向和能见度

中文使用文档
文档目录18 节
  1. 使用量
  2. 方法
  3. o-viewport#listenTo(eventType)
  4. o-viewport#stopListeningTo(eventType)
  5. o-viewport#getOrientation()
  6. o-viewport#getVisibility()
  7. o-viewport#getSize(ignoreScrollbars)
  8. o-viewport#getScrollPosition()
  9. o-viewport#setThrottleInterval(eventType, interval) 仅使用产品
  10. o-viewport#debug()
  11. 活动
  12. oViewport.resize
  13. oViewport.orientation
  14. oViewport.visibility
  15. oViewport.scroll
  16. 调弦
  17. 移徙
  18. 许可证

o-视图端口 MIT licensed

用于附加解开的听众调整大小、卷轴、方向和可见度的事件 window。 。 。 .

使用量

检查出来 如何将 Origami 组件纳入您的项目 开始 o-viewport。 。 。 .

注:在组成部分的API和以下文件中 orientation 财务报告和审定财务报表 visibility 被替换为 orientationchange 或者说 visibilitychange,但实际浏览器事件是 orientationchange 或者说 visibilitychange

方法

o-viewport#listenTo(eventType)

向窗口上的事件附上解禁/解冻(酌情)听众[resize, (中文(简体) ), scroll, (中文(简体) ), orientation, (中文(简体) ), visibility 或者说 all它反过来又在 oViewport 命名空间( 参见 活动 页:1.

注意: 全部启用所有 O- Viewport 活动 .

import oViewport from '@financial-times/o-viewport';

// Fire for orientation events.
oViewport.listenTo('orientation');

// Listener for debounced orientation events via o-viewport.
document.body.addEventListener('oViewport.orientation', function(event) {
    console.log(event.type); // oViewport.orientation
    console.log(event.viewport); // { height, width }
    console.log(event.orientation); // 'portrait' or 'landscape'
    console.log(event.originalEvent); // the original browser event
});

见 事件 需要更多的实例.

o-viewport#stopListeningTo(eventType)

从窗口中删除所附带的对已命名事件的听众[resize, (中文(简体) ), scroll, (中文(简体) ), orientation, (中文(简体) ), visibility 或者说 all[ [ ] [ ] ]. ].

注意: 所有都会禁用所有 o-viewport 事件 .

// Stop listening to the orientation event.
oViewport.stopListeningTo('orientation');

o-viewport#getOrientation()

提供了一种合理的可靠方式(比 window.orientation)获得取景点的当前取向.

oViewport.getOrientation(); // 'portrait' or 'landscape'

o-viewport#getVisibility()

提供了合理可靠的方法,以获得目前景点的能见度.

oViewport.getVisibility(); // boolean, true if visible

o-viewport#getSize(ignoreScrollbars)

提供了获取浏览器窗口当前尺寸的可靠方式. 返回带有属性的对象 width 财务报告和审定财务报表 height。 。 。 .

默认情况下或者如果没有通过参数,方法将返回包括滚动条在内的取景口大小. 然而,在某些情况下(如广告),你可能想要获得没有滚动条的取景口大小. 在这种情况下,通过 true 以忽略滚动条.

oViewport.getSize(); // {width: 108, height: 100} including scrollbar width
oViewport.getSize(true); // {width: 100, height: 100} without scrollbars

o-viewport#getScrollPosition()

提供了获取视图站当前滚动位置的可靠方式. 返回带有属性的对象 width, (中文(简体) ), height, (中文(简体) ), left 财务报告和审定财务报表 top

oViewport.getScrollPosition(); // {width: 100, height: 100, left: 0, top: 10}

o-viewport#setThrottleInterval(eventType, interval) 仅使用产品

设定特定事件的解跳/ 喉管间隔[ ]scroll, (中文(简体) ), resize 或者说 orientation[ [ ] [ ] ]. ]. 作为简写,呼叫 setThrottleInterval 1 - 3 个数字将设定间隔 scroll, (中文(简体) ), resize 财务报告和审定财务报表 orientation 依此顺序,例如:. setThrottleInterval(100, undefined, 300) 等于:

setThrottleInterval('scroll', 100)
setThrottleInterval('resize') // which does nothing
setThrottleInterval('orientation', 300)
setThrottleInterval('visibility', 30)

其中每一个的默认值为 100 ms

o-viewport#debug()

打开调试模式(博客事件细节到控制台).

活动

每一个这些定制事件都遭到射击 document.body。每个自定义事件 event.detail.originalEvent 包含对原始浏览器事件的引用和 event.detail.viewport 结果 o-viewport#getSize()。例如:

import oViewport from '@financial-times/o-viewport';

// Fire for all viewport events.
oViewport.listenTo('all');

// Listener for debounced visibility events via o-viewport.
document.body.addEventListener('oViewport.visibility', function(event) {
    console.log(event.type); // oViewport.resize
    console.log(event.detail.viewport); // { height, width }
    console.log(event.detail.hidden); // boolean
});

说明 event.detail.hidden 独有的 oViewport.visibility 活动。 用于 o-viewport 下文详细介绍这些活动.

oViewport.resize

  • 无附加属性 .

oViewport.orientation

  • 数据。方向 : “ 图像” 或“ 地貌”

oViewport.visibility

  • 数据.隐藏:真假

oViewport.scroll

  • 数据.scrollLeft:滚动位置的无单位px值
  • 数据.scrollTop:滚动位置的无单位px值
  • 数据.scrollHeight:滚动高度的无单位px值
  • 数据.scrollWidth:滚动宽度的无单位px值

调弦

  • oViewport.resize, (中文(简体) ), oViewport.orientation 财务报告和审定财务报表 oViewport.visibility 即如果本地事件连续几次迅速起火 定制事件只会起火一次 n 上次事件之后的毫秒, 其中 n 是节流阀间隔
  • oViewport.scroll 被节制,即如果当地人 scroll 事件连续数次迅速起火 定制事件最多每次起火一次 n 毫秒, 在哪个 n 是节流阀间隔

使用 调制解码器 用于定制节奏的方法.

移徙

状态主要版本最后一个小版本移徙指南
活动页:1不详迁移到 v5
维护页:14.0.5 (单位:千美元)迁移到 v4
已贬值3个3.3 国家迁移到 v3
已贬值2个第2.3条迁移到 v2
已贬值1个1. 5个不详

许可证

版权 (c)2016金融时报有限公司. 版权所有.

该软件在以下 麻省理工学院许可证。 。 。 .

版本与发布记录

@financial-times/o-viewport 共发布 19 个版本,首次发布于 2019/02/13;过去 12 个月发布了 0 个版本。

版本发布日期距今
5.1.2latest2023/10/273 年前
5.1.12022/01/134 年前
5.1.02021/11/254 年前
5.0.12021/09/215 年前
5.0.02021/06/225 年前
5.0.0-beta.0prerelease2021/04/295 年前

关于 @financial-times/o-viewport 的常见问题

@financial-times/o-viewport 是什么?

用于附加解开的听众以调整窗口上的大小、滚动、取向和能见度

如何安装 @financial-times/o-viewport?

在项目目录运行 npm install @financial-times/o-viewport,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@financial-times/o-utils(^2.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@financial-times/o-viewport 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/financial-times__o-viewport 是否存在。

@financial-times/o-viewport 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@financial-times/o-viewport 可以商用吗?

@financial-times/o-viewport 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@financial-times/o-viewport 的下载量有多少?

根据 npm 官方下载统计,@financial-times/o-viewport 在 2026/10/15 – 2026/11/13 这 30 天内被下载 6,329 次,日均约 211 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@financial-times/o-viewport 还在维护吗?

最新版本 5.1.2 发布于 2023/10/27(3 年前);至今共发布 19 个版本,其中过去 12 个月发布了 0 个;首次发布于 2019/02/13。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。