Axure实战20:使用Axure和JavaScript实现浏览器FullScreen全屏效果

简介: Axure实战20:使用Axure和JavaScript实现浏览器FullScreen全屏效果

image.png

在本章中,你将学会使用Axure和JavaScript实现浏览器全屏效果。


项目背景


在B端或G端产品设计中,我们常常会接触到数据分析中台页面的设计。为了更好地展示数据分析的效果及给予用户更好的体验,覆盖式全屏展示模式成为一些大屏数据分析页面或者报表的首选。

那么本章中,我们将学习如何使用Axure和JavaScript实现浏览器全屏效果。


项目搭建


首先,创建一个新项目,命名为FullScreen。

image.png

页面样式-示例页面

我们拿一个数据分析页面作为示例页面。


image.png

示例页面也比较简单。

我们加了背景颜色#F0F2F5作为底色,然后拖入了一些矩形组件,修订了矩形的圆角,让卡片视图看起来没有那么锐利。

排布好卡片视图后,接着我们使用了第三方提供的图标库渲染页面。

我们在浏览器中预览下效果,PS:数据仅作为展示效果,不含其他业务逻辑。

image.png

页面样式-全屏按钮


接下来,我们来完成全屏的操作。

全屏的操作分为两部分:全屏展开、收起全屏。当我们点击全屏的时候,页面全屏时,全屏的按钮需要变成收起按钮;而我们收起全屏时,收起按钮需要变成全屏按钮。

基于这个页面逻辑,我们使用动态面板,设置两个状态,每个状态中放置一个按钮,点击时切换到另一个状态。

image.png

交互动作-全屏

页面样式完成后,我们来实现下交互动作,这里我们需要引用到两段JavaScript代码。


/*展开全屏*/
javascript:
function requestFullScreen(element) {
    var requestMethod = element.requestFullScreen || 
    element.webkitRequestFullScreen ||
    element.mozRequestFullScreen || 
    element.msRequestFullScreen;
    if (requestMethod) {
        requestMethod.call(element);
    } else if (typeof window.ActiveXObject !== "undefined") { 
                var wscript = new ActiveXObject("WScript.Shell");
                if (wscript !== null) {
                    wscript.SendKeys("{F11}");
                }
            }
       };
requestFullScreen(document.documentElement);


我们来看下javascript代码。

Element.requestFullscreen()方法用于异步请求,使得Element(元素)全屏显示。

然后需要这个请求支持谷歌(webkit)、火狐浏览器(moz)、IE浏览器(ms)的内核,如果请求成功就发出异步请求实现元素全屏显示。

收起全屏的代码也差不多的逻辑。


/*收起全屏*/
javascript:
function exitFull() {      
        var exitMethod = document.exitFullscreen || 
            document.mozCancelFullScreen || 
            document.webkitExitFullscreen || 
            document.webkitExitFullscreen; 
        if (exitMethod) {
            exitMethod.call(document);
        } else if (typeof window.ActiveXObject !== "undefined") {
            var wscript = new ActiveXObject("WScript.Shell");
            if (wscript !== null) {
                wscript.SendKeys("{F11}");
            }
        }
    };
javascript:
function exitFull() {      
        var exitMethod = document.exitFullscreen || 
            document.mozCancelFullScreen || 
            document.webkitExitFullscreen || 
            document.webkitExitFullscreen; 
        if (exitMethod) {
            exitMethod.call(document);
        } else if (typeof window.ActiveXObject !== "undefined") {
            var wscript = new ActiveXObject("WScript.Shell");
            if (wscript !== null) {
                wscript.SendKeys("{F11}");
            }
        }
    };
exitFull();


我们需要分别给展示全屏按钮、收起全屏按钮加入交互动作。

在“单击时”交互中,选择“打开链接”,选择“链接到URL或文件路径”,点击fx打开编辑弹窗,将JavaScript代码复制进去。

值得注意的一点是,一定要点击fx打开弹窗,在弹窗中复制,不然可能会因为格式排版问题造成不必要的错误。


image.png

项目预览

完成后,我们在浏览器中预览下效果。


image.png

当我们点击全屏的时候,页面全屏,并且全屏按钮变成收起,点击收起按钮,页面收起,收起按钮变成全屏。

哈哈哈,效果不错!

为了让这个项目能够公开访问,我们可以生成html文件,然后发布到gitHub或者gitee中,这样就可以将网站分享给朋友们了。


项目地址


FullScreen全屏: ricardowesley.gitee.io/fullscreen

快来动手试试吧!



相关文章
|
2月前
|
自然语言处理 JavaScript 前端开发
深入理解JavaScript中的闭包:原理与实战
【10月更文挑战第12天】深入理解JavaScript中的闭包:原理与实战
|
1月前
|
移动开发 JavaScript 前端开发
一些处理浏览器兼容性问题的JavaScript库
这些库在处理浏览器兼容性问题方面都有着各自的特点和优势,可以根据具体的需求和项目情况选择合适的库来使用,从而提高代码的兼容性和稳定性,为用户提供更好的体验。同时,随着浏览器技术的不断发展,还需要持续关注和学习新的兼容性解决方案。
104 48
|
16天前
Next.js 实战 (二):搭建 Layouts 基础排版布局
本文介绍了作者在Next.js v15.x版本发布后,对一个旧项目的重构过程。文章详细说明了项目开发规范配置、UI组件库选择(最终选择了Ant-Design)、以及使用Ant Design的Layout组件实现中后台布局的方法。文末展示了布局的初步效果,并提供了GitHub仓库链接供读者参考学习。
Next.js 实战 (二):搭建 Layouts 基础排版布局
|
11天前
|
存储 网络架构
Next.js 实战 (四):i18n 国际化的最优方案实践
这篇文章介绍了Next.js国际化方案,作者对比了网上常见的方案并提出了自己的需求:不破坏应用程序的目录结构和路由。文章推荐使用next-intl库来实现国际化,并提供了详细的安装步骤和代码示例。作者实现了国际化切换时不改变路由,并把当前语言的key存储到浏览器cookie中,使得刷新浏览器后语言不会失效。最后,文章总结了这种国际化方案的优势,并提供Github仓库链接供读者参考。
|
11天前
Next.js 实战 (三):优雅的实现暗黑主题模式
这篇文章介绍了在Next.js中实现暗黑模式的具体步骤。首先,需要安装next-themes库。然后,在/components/ThemeProvider/index.tsx文件中新增ThemeProvider组件,并在/app/layout.tsx文件中注入该组件。如果想要加入过渡动画,可以修改代码实现主题切换时的动画效果。最后,需要在需要的位置引入ThemeModeButton组件,实现暗黑模式的切换。
|
1月前
|
JSON 移动开发 JavaScript
在浏览器执行js脚本的两种方式
【10月更文挑战第20天】本文介绍了在浏览器中执行HTTP请求的两种方式:`fetch`和`XMLHttpRequest`。`fetch`支持GET和POST请求,返回Promise对象,可以方便地处理异步操作。`XMLHttpRequest`则通过回调函数处理请求结果,适用于需要兼容旧浏览器的场景。文中还提供了具体的代码示例。
在浏览器执行js脚本的两种方式
|
27天前
|
设计模式 前端开发 JavaScript
JavaScript设计模式及其在实战中的应用,涵盖单例、工厂、观察者、装饰器和策略模式
本文深入探讨了JavaScript设计模式及其在实战中的应用,涵盖单例、工厂、观察者、装饰器和策略模式,结合电商网站案例,展示了设计模式如何提升代码的可维护性、扩展性和可读性,强调了其在前端开发中的重要性。
29 2
|
1月前
|
JavaScript 前端开发 数据处理
模板字符串和普通字符串在浏览器和 Node.js 中的性能表现是否一致?
综上所述,模板字符串和普通字符串在浏览器和 Node.js 中的性能表现既有相似之处,也有不同之处。在实际应用中,需要根据具体的场景和性能需求来选择使用哪种字符串处理方式,以达到最佳的性能和开发效率。
|
1月前
|
算法 开发者
Moment.js库是如何处理不同浏览器的时间戳格式差异的?
总的来说,Moment.js 通过一系列的技术手段和策略,有效地处理了不同浏览器的时间戳格式差异,为开发者提供了一个稳定、可靠且易于使用的时间处理工具。
35 1
|
1月前
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
114 1