资讯专栏INFORMATION COLUMN

干货--手把手撸vue移动UI框架:侧边菜单

bergwhite / 2994人阅读

摘要:最后提醒下,代码中使用而非的原因是为了启动移动端手机的动画加速,提升动画流畅度。

前言

最近面试发现很多前端程序员都从来没有写过插件的经验,基本上都是网上百度。所以打算写一系列文章,手把手的教一些没有写过组件的兄弟们如何去写插件。本系列文章都基于VUE,核心内容都一样,会了之后大家可以快速的改写成react、angular或者是小程序等组件。这篇文章是第一篇,写的是一个类似QQ的侧边菜单组件。

效果展示

先让大家看个效果展示,知道咱们要做的东西是个怎么样的样子,图片有点模糊,大家先将就点:

开始制作 DOM结构

整体结构中应该存在两个容器:1. 菜单容器 2. 主页面容器;因此当前DOM结构如下:

为了使得菜单内容和主题内容能够定制,我们再给两个容器中加入两个slot插槽:默认插槽中放置主体内容、菜单放置到menu插槽内:

css样式

我项目中使用了scss,代码如下:

此时我们就得到了两个绝对定位的容器

javascript

现在开始正式的代码编写了,首先我们理清下交互逻辑:

手指左右滑动的时候主体容器和菜单容器都跟着手指运动运动

当手指移动的距离超过菜单容器宽度的时候页面不能继续向右滑动

当手指向左移动使得菜单和页面的移动距离归零的时候页面不能继续向左移动

当手指释放离开屏幕的时候,页面滑动如果超过一定的距离(整个菜单宽度的比例)则打开整个菜单,如果小于一定距离则关闭菜单

所以现在咱们需要在使用组件的时候能够入参定制菜单宽度以及触发菜单收起关闭的临界值和菜单宽度的比例,同时需要给主体容器添加touch事件,最后我们给菜单容器和主体容器添加各自添加一个控制他们运动的style,通过控制这个style来控制容器的移动






写在最后

第一次写这样的干货,写的不好请见谅,如果大家觉得有用,给个赏钱喝杯茶呗,让我后续更有动力写完所有移动端常用的UI组件的文章(谁能教教我怎么在把这两个赞助码缩小啊,尴尬)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/93241.html

相关文章

  • 干货--把手vue移动UI框架:滑动轮播

    摘要:其次父组件中负责通用的功能,以及轮播的整体架构,其结构如下。下面的是一种移动端的适配方案。接下来实现函数运用动画切换到指定下标的子项到此为止,咱们就已经完成了一个初步的滑动切换轮播图的功能了。 前言 昨天写了一篇侧边菜单组件的文章,阅读人数挺多的,内心很欣喜(偷着乐,第一篇文章有这么多人看)!乘着这股劲,今天在继续写一篇我们平时工作中更常用的滑动轮播组件的文章。 效果展示 老规矩,咱们...

    MSchumi 评论0 收藏0
  • 干货--把手vue移动UI框架: 滑动加载

    摘要:前言在我们移动端还有一个很常用的组件,那就是滑动加载更多组件。平常我们看到的很多插件实现相当复杂就觉得这个组件很难,其实不是的这个组件其实可以很简单的就实现出来,而且体验也能非常的棒当然我们没有实现下拉刷新功能下面我们就一起来实现这个组件。 前言 在我们移动端还有一个很常用的组件,那就是滑动加载更多组件。平常我们看到的很多插件实现相当复杂就觉得这个组件很难,其实不是的!!这个组件其实可...

    Harpsichord1207 评论0 收藏0
  • 干货--把手vue移动UI框架: 滑动删除

    摘要:的结构如下样式我们这里让正文占据视图的,然后按钮容器靠右绝对定位,然后再把向右移动,这样就刚好衔接在后面。当向左滑动的时候,向左移动,显示出来。 前言 前几天因为项目需要,用jquery写了一个swiperOut组件,然后我就随便把这个组件翻译成基于Vue的了,有兴趣的朋友可以看下。Github源码(不麻烦的话帮忙start,请各位大爷赏个星星) demo展示 效果展示 老规矩,先上效...

    MkkHou 评论0 收藏0

发表评论

0条评论

bergwhite

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<