当前位置: 首页 > wzjs >正文

重庆设计有限公司关于进一步优化落实疫情防控措施

重庆设计有限公司,关于进一步优化落实疫情防控措施,如何创建一个个人网站简答题,网页设计网站设计欣赏本篇主要探讨如何在导航栏(Navbar)中添加全屏切换按钮,并借助功能强大的 screenfull 插件,丝滑实现全屏切换功能,为用户打造更为便捷、流畅的交互体验。 1 安装插件 screenfull screenfull 是一个轻量级的 JavaScript…

本篇主要探讨如何在导航栏(Navbar)中添加全屏切换按钮,并借助功能强大的 screenfull 插件,丝滑实现全屏切换功能,为用户打造更为便捷、流畅的交互体验。

1 安装插件 screenfull

screenfull 是一个轻量级的 JavaScript 库,用于简化在网页中实现全屏功能的操作。它屏蔽了不同浏览器在全屏 API 上的差异,提供统一且易用的接口,增强了跨浏览器兼容性。

 

使用时,首先通过 npm 或 yarn 安装该插件。其核心方法包括:request 用于请求指定元素进入全屏;exit 用于退出全屏;toggle 用于切换全屏状态。

例如,若要让 id 为 myDiv 的元素进入全屏,只需检查 screenfull.isEnabled 为 true 后,调用 screenfull.request(document.getElementById('myDiv')) 即可。此外,还能监听 change 事件,根据全屏状态变化执行相应逻辑。

通过 pnpm 安装 screenfull 插件,代码如下:

pnpm install screenfull

2 Screenfull 组件开发

在 src/components 下新建 Screenfull 文件夹,新建 index.vue 文件,代码如下:

//src/components/Screenfull/index.vue
<template><!-- 定义一个 SVG 图标组件,用于切换全屏状态 --><svg-icon@click="handleClick"custom-class="w-2em h-2em":icon-name="isFullScreen? 'ant-design:fullscreen-exit-outlined': 'ant-design:fullscreen-outlined'"></svg-icon>
</template><script lang="ts" setup>
// 引入 screenfull 库,用于处理全屏相关操作
import screenfull from "screenfull";
// 引入 Vue 的 ref 函数,用于创建响应式数据
import { ref, onMounted, onBeforeUnmount, getCurrentInstance } from "vue";// 创建一个响应式变量 isFullScreen,用于记录当前是否处于全屏状态,初始值为 false
const isFullScreen = ref(false);
// 获取当前组件实例
const { proxy } = getCurrentInstance()!;// 定义点击事件处理函数,用于处理图标点击时的操作
function handleClick() {// 检查浏览器是否支持全屏功能if (screenfull.isEnabled) {// 如果支持,切换全屏状态screenfull.toggle();} else {// 如果不支持,通过消息提示告知用户浏览器不支持全屏proxy!.$message("浏览器不支持全屏");}
}// 定义更新全屏状态的函数,用于监听全屏状态变化并更新 isFullScreen 的值
function updateFullscreenStatus() {// 获取当前是否处于全屏状态,并更新 isFullScreen 的值isFullScreen.value = screenfull.isFullscreen;
}// 组件挂载完成后执行的生命周期钩子函数
onMounted(() => {// 检查浏览器是否支持全屏功能if (screenfull.isEnabled) {// 如果支持,监听全屏状态变化事件,并在状态变化时调用 updateFullscreenStatus 函数screenfull.on("change", updateFullscreenStatus);}
});// 组件即将卸载前执行的生命周期钩子函数
onBeforeUnmount(() => {// 检查浏览器是否支持全屏功能if (screenfull.isEnabled) {// 如果支持,移除对全屏状态变化事件的监听screenfull.off("change", updateFullscreenStatus);}
});
</script>

这段代码实现了一个切换全屏状态的功能,通过点击 SVG 图标来切换全屏和退出全屏,同时会根据当前的全屏状态显示不同的图标。并且在组件挂载和卸载时,分别添加和移除对全屏状态变化的监听。  

3 页面引用

在 src/layout/components/Navbar.vue 中引入 Screenfull 组件,代码如下:

//src/layout/components/Navbar.vue
<template><div class="navbar" flex><hamburger@toggleCollapse="toggleSidebar":collapse="sidebar.opened"></hamburger><BreadCrumb></BreadCrumb><div flex justify-end flex-1 items-center mr-20px><screenfull mx-5px></screenfull></div></div>
</template><style scoped lang="scss">
.navbar {@apply h-[var(--navbar-height)];
}
</style><script lang="ts" setup>
import { useAppStore } from "@/stores/app";
// 在解构的时候要考虑值是不是对象,如果非对象解构出来就 丧失响应式了
const { toggleSidebar, sidebar } = useAppStore();
</script>

npm run dev 启动后,页面效果如下:

以上,全屏切换组件就完成了。

下一篇将继续探讨组件尺寸多语言实现,敬请期待~

http://www.dtcms.com/wzjs/13807.html

相关文章:

  • 电商网站入口网站seo排名优化
  • 如何保存个人网站nba新闻最新消息
  • 番禺网站制作设计百度福州分公司
  • 服装设计公司属于什么行业类型广东seo推广哪里好
  • 树莓派用来做网站如何自己开网站
  • 香港主机网站速度怎样优化标题关键词
  • 太原市免费网站建设资阳市网站seo
  • 钓鱼网站代做迅雷磁力链bt磁力天堂下载
  • 沈阳祥云医院男科怎么样沈阳seo顾问
  • 网站设计思想青岛官网优化
  • 西宁做网站的有吗看网站搜什么关键词
  • 东莞市建设局网站6湖南网站seo推广
  • 外贸网站 费用百度搜索热度查询
  • 徐州品牌网站建设百度经验官网
  • 做游戏ppt下载网站有哪些内容营销心得体会感悟300字
  • 网站一个页面多少钱23岁老牌网站
  • 网站建设 杭州市萧山区百度推广官网
  • 网站建设开发ppt模板下载百度云超级会员试用1天
  • 响应式做的好的网站有哪些网络信息发布平台
  • 上海网站建设网站优化app三只松鼠搜索引擎推广
  • 中小型网站建设讯息杭州网站设计
  • 浙江圣大建设集团有限公司网站新手怎么入行sem
  • 做营销网站制作人工智能教育培训机构排名
  • 怎么做企业招聘网站google海外版入口
  • 怎么申请个人网站安徽网站seo公司
  • 网页设计尺寸pt是什么意思什么叫seo
  • 西宁做网站制作的公司seo优化教程自学
  • 桂林市是哪个省的网站优化seo培
  • 做网站开发学什么语言百度关键词热度查询
  • 做qq头像的网站注册百度推广账号