JavaScript浏览器全屏插件和jQuery元素大小调整插件

1 摘要

一些酷炫的网站需要对浏览器或者DOM元素进行自动或触发全屏化。对于浏览器全屏,通常浏览器都有提示用户按F11,这样会使浏览器全屏。相比于键盘,鼠标似乎更有效率和更符合我们的习惯。所以,今天介绍的screenfull.js插件解决了这个问题。该插件不仅对浏览器,而且对单个元素也可以进行全屏操作。
然而,浏览器全屏又是一个事件,利用该事件我们也可以做一些事情,jQuery中提供了resize()方法来响应该事件。但是,该方法有一个问题:resize事件是在窗口或框架的大小被调整时发生,包括最小化、最大化。在IE和Opera浏览器中,只要窗口边框被拖动,就触发该事件,在Mozilla浏览器中,resize 事件只是在停止改变窗口大小时才会触发。为了解决更好地兼容不同浏览器,让页面更加平滑,jquery.ba-resize.js插件则弥补了jQuery.resize()方法的不足。

2 插件介绍

2.1 screenfull.js

screenfull.js是对跨浏览器使用JavaScript全屏API进行简单的封装,它可以让你把网页或任何元素进入全屏。你也不必自己实现来平滑不同浏览器之间的差异,因为screenfull.js已帮你实现。

// 实例代码
// 利用按钮,对整个页面进行全屏或退出操作
$("#button").click(function(){
    if(screenfull.enabled){
        // 仅仅只进行全屏而不退出全屏可以调用
        // screenfull.request() 方法。
        screenfull.toggle();
    }else {
        // Ignore or do something else
    }
});
// 对单个元素进行全屏操作
// 注意 screenfull.js是用原生的js写的
// 所以每个函数输入的参数也必须是js对象
// 可以利用jQuery中数组下标来获取对应的js对象
$("#div_button").click(function(){
    if(screenfull.enabled){
        screenfull.toggle($("#div")[0]);
    }else {
        // Ignore or do something else
    }
});

2.2 jquery-resize

利用 jQuery 的 resize 事件,现在你可以将大小调整事件的操作者绑定到除了 window 之外的任何元素,然后就会显示非常赞的效果。

// 监听窗口大小调整事件,每次窗口改变大小就触发该事件
$(window).resize(function(){
    var elem = $(this);
    // 更新窗口宽度和高度
    // 可以替换这段代码,做一些有用的事情
    $('#window-info').text( 'window width: ' + elem.width() + ', height: ' + elem.height() );
});
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
06-18
概要<br>对于具有窗口, 只能是某些规模有时非常有用。 例如, MicrosoftWord 和 Microsoft Visual C++® 有工具栏是大小调整到最适合控件工具栏中特定大小。 这样做, 最好授予用户可视提示有关可用窗口大小。 通过示例 RESIZE 示例代码显示如何修改 Windows 窗口以便当用户使用鼠标来调整窗口边框跳转到下一个可用大小自动调整方式。 <br>更多信息<br>可用于从 Microsoft 下载中心下载下列文件:<br><br>Resize.exe (http://download.microsoft.com/download/platformsdk/sample52/1/w9xnt4/en-us/resize.exe)<br>有关如何下载 Microsoft 支持文件请单击下列文章编号以查看 Microsoft 知识库中相应: <br>119591 (http://support.microsoft.com/kb/119591/EN-US/) 如何从联机服务获取 Microsoft 支持文件 <br>此文件进行病毒扫描 Microsoft。 Microsoft 使用最新病毒检测软件, 投递文件日期上的可用。 文件存储, 有助于防止对文件进行任何未经授权更改安全性增强的服务器上。 当用户单击的窗口, 调整边框 Windows 进入 PeekMessage 循环以捕获所有鼠标消息发生直到已释放鼠标左键。 而在此循环, 每当鼠标移动移动矩形, 显示新窗口大小以向用户与新窗口大小将是什么提供可视提示。 <br><br>通过进入消息循环以捕获鼠标消息直到是左按钮释放其自己 RESIZE 示例代码修改调整操作。 不用每次接收鼠标移动, 更新矩形 RESIZE 代码检查以查看如果当前鼠标位置会使窗口大小之一可能窗口宽度和高度大小由应用程序所定义。 由此, RESIZE 应用程序提供更准确的可视提示有关调整操作将采取哪些。 <br><br>通过同时用于 Windows 和 RESIZE 应用 WM_NCLBUTTONDOWN 邮件触发调整操作。 当收到此消息, 消息循环输入来过滤掉除对两, WM _ MOUSEMOVE 和 WM _ LBUTTONUP 所有鼠标消息。 RESIZE 应用程序接收到 WM _ MOUSEMOVE 消息, 时检查以查看放大或缩小如果当前鼠标位置将使窗口。 如果窗口是小, 调整矩形移到下一个小维度由应用程序定义。 如果窗口是大, 程序将检查以是否会对下可能维度足够新大小以及相应更新矩形。 接收到 WM _ LBUTTONUP 消息, 时通过窗口大小更新到当前位置由鼠标完成调整操作并删除矩形。 <br><br>RESIZE 应用程序还利用了一部分由处理 WM_NCHITTEST 消息提供了灵活性。 Windows 向应用程序与鼠标位置发送此消息并期望应用程序能够描述的窗口, 包括鼠标位置部分。 经常, 应用程序传递到 DefWindowProc() 此消息并让默认计算是什么鼠标是顶部告诉系统负责。 RESIZE 应用允许 DefWindowProc() 来处理消息, 但然后检查以确定是否将鼠标置于某个在工作区或调整转角。 为了简化调整操作, RESIZE 不让调整从窗口角, 以便 HTTOPRIGHT 点击测试代码并返回 HTBOTTOM 或 HTTOP 替代 HTBOTTOMLEFT HTTOPLEFT, HTBOTTOMRIGHT, 应用程序和用户。 由此, 鼠标光标准确反映调整的方向。 当 HTCLIENT 命中返回测试代码, RESIZE 变为这 HTCAPTION 以便窗口以移动即使它没有标题栏。 <br><br>尽管此方法将使用 Windows 95, 就没有必要。 Windows 95 提供新消息 WM_SIZING, 将启用程序不处理 WM_NCxxx 消息或进入 PeekMessage() 循环进行完全相同。 <br>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路易斯·李

点个赞再走呗 :)

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值