vue-flickity的fullScreen功能实现

算法调
• 阅读 2172

描述

在项目集成了vue-flickity组件后发现,该组件参考flickity官网的fullscreen配置不起作用

实现方法

  1. 需要添加flickity-fullscreen组件
  2. 在main.js中导入flickity-fullscreen组件
  3. 添加flickity组件的fullscreen属性
  4. 定义fullscreen的CSS样式

具体步骤

1.添加flickity-fullscreen组件

需要提前配置好flickity

yarn: yarn add flickity-fullscreen --save

npm: npm install flickity-fullscreen

Bower: bower install flickity-fullscreen
2. 在main.js中导入flickity-fullscreen组件

vue-flickity的fullScreen功能实现

3. 添加flickity组件的fullscreen属性

vue-flickity的fullScreen功能实现
vue-flickity的fullScreen功能实现

4. 定义fullscreen的CSS样式
/* 展开全屏按钮样式 */
.flickity-fullscreen-button-view{
    position: absolute;
    width:auto;
    height:auto;
    z-index: 999999;
    top: 0;
    right: 0;
    padding: 5px 10px;
    border-radius: 5px;
    box-shadow: 0 0 10px #0000000f;
}

/* 退出全屏按钮样式,
 * 设置display:none;是为了不让【展开全屏按钮】和【退出全屏按钮】同时显示在页面上
 */
.flickity-fullscreen-button-exit{
   display: none;
}

/* 点击全屏显示效果 */
.is-fullscreen  {
    position: fixed;
    z-index: 1100;
    height: 100vh;
    width: 100vw;
    top: 0;
    left: 0;
    background: #0000009e;
  }

/* 当显示了全屏时,隐藏【展开全屏按钮】 */
.is-fullscreen .flickity-fullscreen-button-view{
    display: none;
}

/* 显示全屏时,显示【退出全屏按钮】设置按钮在页面右上方*/
.is-fullscreen .flickity-fullscreen-button-exit{
    display: block;
    position: absolute;
    width:auto;
    height:auto;   
    z-index: 999999;
    top: 0;
    padding: 5px 10px;
    border-radius: 5px;
    box-shadow: 0 0 10px #0000000f;
    right:0;
}

/* 设置被选中的图片大小为全屏*/
.is-fullscreen .is-selected{
    width: 100vw !important;
    height:100vh !important;
}

/* 设置选中的图片自适应屏幕大小,按屏幕大小进行缩放*/
.is-fullscreen .carousel-img{
    width:auto !important;
    height:auto !important;
    max-width: 100% !important;
    max-height: 100% !important;
}

/* 取消展开退出按钮点击的边框样式*/
.flickity-button:focus{
    box-shadow: unset;;
}

/* 设置展开退出按钮的宽度*/
.flickity-button-icon{
    width:20px;
}

实际效果

vue-flickity的fullScreen功能实现

vue-flickity的fullScreen功能实现

Tips

  1. 不能点击图片显示全屏,暂时只能点击fullscreen按钮
  2. 全屏状态下没有左右箭头显示,但是可以左右滑动切换图片

参考

https://github.com/metafizzy/...
https://github.com/drewjbartl...

点赞
收藏
评论区
推荐文章
晴空闲云 晴空闲云
3年前
vue3中基于script setup语法糖的$refs使用
在用vue3开发项目的时候,需要调用子组件的方法,于是想着用$refs来实现,但是我是使用scriptsetup语法糖,原先vue2的语法已经不适用了。于是一番折腾和查阅资料,终于搞定。vue2语法vue2语法在组件上设置ref属性后,在代码里可以通过this.$refs.ref值访问到对应的子组件。一个设置ref值的组件:html在js代码中可以通
Alex799 Alex799
4年前
Vue进阶(幺柒幺):前端用户体验提升(五)Flex实现弹性布局
需求背景在实现组件拖拽设计过程中,发现组件样式中设置了display:flex属性信息,导致组件生成后无法实现拖拽效果,网上查阅资料后发现Flex布局大有天地。Flex来源
Chase620 Chase620
4年前
关于:父组件中的子组件中的子组件(孙级)添加数据后怎么样去调用父组件中的方法呢?
1、需求引入image.png这是父组件下的子组件的子组件,一个绑定子设备的弹出窗modal,那么我们怎么样在这个组件中选中子设备后点击确定时去触发父组件的父组件的table列表数据刷新呢?image.pngimage.pngimage.png组件的层级关系.png上述的图示便是部分代码的展示,一般的组件传值有父组件传子组件(
Stella981 Stella981
3年前
Flutter子组件调用父组件方法修改父组件参数
子组件调用父级组件方法的主要实现是父组件给子组件传入一个方法,然后在子组件中调用父级方法来修改父级的参数。看一下效果图!(https://img2018.cnblogs.com/blog/1038765/201907/103876520190702152130487420290106.gif)父级组件实现在父级组件中写一个
Stella981 Stella981
3年前
ReactNative遇到的坑总结(持续更新)
问题:在Android中input组件,文字会有遮挡在Android中,input组件默认会有内边距,所以把padding改为0可以解决问题问题:在Android中input组件,底部会有条白线添加红色的属性underlineColorAndroid<TextInputplaceholder"搜索关键字"
Stella981 Stella981
3年前
Spring Boot快速入门(三):依赖注入
springboot使用依赖注入的方式很简单,只需要给添加相应的注解即可@Service用于标注业务层组件 @Controller用于标注控制层组件@Repository用于标注数据访问组件,即DAO组件 @Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。然后在使用的地方使用@A
Stella981 Stella981
3年前
Activity设置全屏两种方法
继承Activityone:   在onCreate方法中添加requestWindowFeature(Window.FEATURE\_NO\_TITLE);//隐藏标题栏   getWindow().setFlags(WindowManger.LayoutParams.FLAGS\_FULLSCREEN,WindowManger.  
React memo的原理、实践与思考
前言在react中,对一个组件进行点击事件等操作时,该组件以及该组件的子组件都会重新渲染。避免组件的重新渲染一般可以借助React.memo、useCallback等来实现。什么是memomemo原理memo类似于class中pureComponent的特
taskbuilder taskbuilder
5个月前
TaskBuilder前端页面UI界面设计
TaskBuilder前端页面UI界面设计为了方便大家快速设计前端页面的UI界面,TaskBuilder提供了可视化的UI界面设计器,在该设计器内,可以从左侧的组件库中拖拽组件到页面上实现组件的添加,TaskBuilder提供了几十种丰富的UI组件,分为容
taskbuilder taskbuilder
4个月前
TaskBuilder数据添加页面前后端交互原理解析
在TaskBuilder内打开学员管理项目前端文件里的add.tfp页面,下面以这个文件为例介绍一下数据添加页面如何实现前后端的数据交互。如果要将页面里输入项的数据提交到后台,需要将这些输入项都放到表单组件中,然后通过表单组件实现数据的统一提交,具体原理如
鸿蒙小林 鸿蒙小林
23小时前
《仿盒马》app开发技术分享-- 扫一扫功能(35)
技术栈Appgalleryconnect开发准备随着app的逐渐完善,我们现在需要在细节处做更多的打磨,在首页我们添加了很多静态的按钮和组件,现在我们开始对这些组件进行功能的添加,这次首先实现的是首页头部的扫一扫功能,扫一扫我们实现扫码后跳转商品详情页功能