首页 > 其他分享 >手机网站左侧弹出菜单功能-uniapp

手机网站左侧弹出菜单功能-uniapp

时间:2023-04-17 17:36:56浏览次数:40  
标签:uniapp 菜单 false keyframes width animation 左侧 close left

效果图

     

 

 

<template>
	<view class="drawer" :class="{ moveRight: isActive, moveLeft: isClose }">

		<uni-nav-bar dark shadow background-color="#007AFF" status-bar :left-icon="left_icon" left-text="" title="学校模板"
			@clickLeft="clickBtn" />

		<!-- self可以理解为跳过冒泡事件,即捕获事件在该元素上发生的方法。 -->
		<view class="background" v-if="open" @click="closeDrop">
			<view class="drop" :class="{ active: isActive, close: isClose }">drop</view>
		</view>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				open: false,
				isActive: false,
				isClose: false,
				left_icon: "list",
			}
		},
		methods: {

			clickBtn() {
				this.open = true;
				this.isActive = true;
				this.isClose = false;
				this.left_icon = "closeempty";
			},
			// 控制点击遮罩关闭抽屉
			closeDrop() {
				this.isClose = true;
				setTimeout(() => {
					this.open = false;
					this.left_icon = "list";
				}, 200);
			}


		}
	}
</script>

<style scoped lang="scss">
	.moveRight {
		animation: bodyMoveRight 0.5s normal forwards;
	}

	@keyframes bodyMoveRight {
		from {
			margin-left: 0;
		}

		to {
			//打开的抽屉宽度
			margin-left: 40%;
		}
	}

	.moveLeft {
		animation: bodyMoveLeft 0.3s normal forwards;
	}

	@keyframes bodyMoveLeft {
		0% {
			margin-left: 40%;
		}

		100% {
			margin-left: 0;

		}
	}

	.background {
		// z-index 控制是全屏还是半屏,即是否占顶部导航栏的位置
		z-index: 9999;
		position: fixed;
		top: 0;
		bottom: 0;
		left: 0;
		right: 0;
		// 遮罩颜色
		background: rgba($color: #fff, $alpha: 0.0);

		.drop {
			width: 0px;
			position: absolute;
			top: 0;
			left: 0;
			bottom: 0;
			background: #fff;
		}

		// 开
		.active {
			animation: opendoor 0.5s normal forwards;
		}


		// @keyframes 可以创建动画;
		// opendoor对应上方active类中animation属性的opendoor
		@keyframes opendoor {
			from {
				width: 0;
			}

			to {
				//打开的抽屉宽度
				width: 40%;
			}
		}


		// 关
		.close {
			animation: close 0.3s normal forwards;
		}

		// close对应上方close类中animation属性的 close
		@keyframes close {
			0% {
				width: 40%;
			}

			100% {
				width: 0;
				opacity: 0;
			}
		}


	}
</style>

  

标签:uniapp,菜单,false,keyframes,width,animation,左侧,close,left
From: https://www.cnblogs.com/saonian/p/17326515.html

相关文章

  • FinClip 与 uniapp:轻应用平台与前端开发框架
    原文地址juejin.cnFinClip背后的产品经理发现很多开发者或业务部门的朋友,在刚了解到FinClip的时候,都会好奇FinClip能解决怎样的问题,也会经常将FinClip与uni-app进行对比考虑二者的区别与优劣势。因此在本文中,FinClip的产品经理会和我们深入地探讨FinClip与uni-app之......
  • OpenWrt主题在菜单中不显示
    问题:路径中有对应的主题,但是makemenuconfig中不显示原因:需要建立软连接在路径 SDK-DR232-20221220/package/feeds/luci中运行ls-s../../../feeds/luci/themes/luci2-theme-sidenav......
  • 使用注册表编辑win10鼠标右键菜单,详细解释(右键文件夹、文件以及右键空白区域下三种情
    win10鼠标右键菜单管理:右键文件夹、文件以及右键空白区域三种情形将鼠标右键菜单分文下三种情况:  右键空白区域(分为桌面空白区域和其他文件夹下空白区域)  右键文件夹  右键文件(分为所有文件和某类型文件两种)1.通过修改注册表项来修改右键菜单无论右键什么位置,弹......
  • gitee github 左侧栏树形显示插件 Octotree codetree 浏览器插件
    起因看到一位仁兄用gitee做仓库https://gitee.com/zhengqingya/java-developer-document然后左侧栏挺方便(抖音视频)下载chrome扩展市场搜octotree用于githubcodetree用于gitee双核浏览器扩展市场搜octotree用于githubgitcodetree用于gitee......
  • uniapp面试题
    1.uniapp进行条件编译的两种方法?小程序端和H5的代表值是什么?通过#ifdef、#ifndef的方式H5:H5MP-WEIXIN:微信小程序2.uniapp的配置文件、入口文件、主组件、页面管理部分pages.json配置文件main.js入口文件App.vue主组件pages页面管理部分3.uniapp上传文件时用到a......
  • 2023-04-15 uniapp 点击事件冒泡
    简而言之,即父子元素都有点击事件,这时候子元素触发点击事件会连同父元素的点击事件一并触发,这就是冒泡;而需求就是子不触父。解决方案:子元素的点击事件由原来的@click或者@tap统统换成@tap.stop,据说@tap.stop比@click.stop好。注:只需改变子元素点击事件,子变父不变。......
  • vue-element-admin 动态菜单改造
    vue-element-admin动态菜单改造vue-element-admin是一款优秀后台前端解决方案,它基于vue和element-ui实现。开源后台管理系统解决方案项目Boot-admin的前端模块就是基于vue-element-admin开发而来。作为一款纯前端的后台界面解决方案,vue-element-admin是通过遍历路由进行渲......
  • 两个循环搞定多级菜单列表递归成tree
    菜单类publicstaticclassMenu{Menu(Stringdata){String[]split=data.split("");this.id=Integer.valueOf(split[0]);this.name=split[1];this.pid=Integer.valueOf(split[2]);......
  • electron加载远程和本地右键菜单冲突问题处理
    electron加载远程页面,远程页面有自己的右键,但是electron也有自己的菜单,为了防止两个右键菜单同时显示,使用window.myrightmenu进行限制,window.myrightmenu非空则显示远程的,window.myrightmenu为空则显示electron的默认菜单。下面是远程界面代码://右键rightClick(ro......
  • uniapp 使用cli模式,利用jenkins远程部署
    1、uniapp必须使用cli模式,如果是hbuliderx创建的,不支持2、jenkins配置需要publishoverssh插件和node插件,自行百度即可现在主要说说配置1)、系统管理-》系统配置中,找到publishoverssh 2          ......