用 Vue.js 实现弹窗

要点:

  • 用v-on click 实现弹窗,类似Semantic UI 当中的http://semantic-ui.com/modules/modal.html#/definition Modeal功能,这里要用到v-on click后面接函数的用法,以及Vue中的methods表达方法。
  • 弹窗功能需要实现这个逻辑,即两个触发:
    • 点击一个按钮,弹框出来
    • 点击另外一个地方,弹框消失
  • 与弹窗需要触发对应的一个功能是,私密的博客,需要输入密码才能看见,在一开始就要运行(如刷新这个操作),而不是点击触发才去运行。这里涉及到一个基础知识,Vue中的ready,页面加载好马上做某事情。

一 基础知识

v-on click function.png
vue methods.png
Vue ready.png

二 代码实战


先在style标签后面写一个黑色遮罩,并做第一个触发,出现弹窗之后,点击背景,弹窗消失。

说明:

  • 其中的v-if="!model.show"是为了配合刷新即现实订阅弹窗而写的代码。

  • 要想调用,如fadeIn,需要在semantic UI的基础上加一个<link rel="stylesheet" href="css/animate.css" media="screen" title="no title">(可以去animate.css这个网址找到你想要的动画效果。)

        <div class="ui dimmer fadeIn active" v-if="!modal.show" v-on:click="modalSwitch">
            <div class="ui modal active">
                <h3 class="ui header">This is a header!</h3>
            </div>
        </div>

然后在Vue中添加一个modal的对象和modalSwitch的函数。

        <script>
            var vm = new Vue({
                el:"#app",
                // context
                data:{

                    modal:{
                        show:true,
                    },
                    
                    article:{
                        title:"This is a title",
                        content:"Hi there!",
                        fontSize:18
                    },
                    comments:[
                        {name:"John Doe",said:"Great!",show:true},
                        {name:"John Doe",said:"Great!",show:true},
                        {name:"John Doe",said:"Great!",show:true},
                        {name:"John Doe",said:"Great!",show:true},
                    ]
                },
                methods:{
                    modalSwitch:function () {
                        this.modal.show = !this.modal.show  # this 是JS一个需要注意的东西,python这实例化有一个self,与此类似。

                    }
                },
                ready:function () {
                    this.modalSwitch()
                }
            })
        </script>

做第二个触发,在文章后面条件一个关注订阅的按钮:
<button v-on:click="modalSwitch" class="ui inverted blue button"

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 下载安装搭建环境 可以选npm安装,或者简单下载一个开发版的vue.js文件 浏览器打开加载有vue的文档时,控制...
    冥冥2017阅读 6,087评论 0 42
  • 这篇笔记主要包含 Vue 2 不同于 Vue 1 或者特有的内容,还有我对于 Vue 1.0 印象不深的内容。关于...
    云之外阅读 5,079评论 0 29
  • 2017年,8月27日志。 昨天折腾到两三点睡觉,原本想多睡会儿,7:30还是醒来了。第一时间摸儿子的额头,看维轩...
    蓝朵格格阅读 217评论 0 1
  • 一、前言 上一篇文章:Weex系列(1)- Weex环境安装,了解了Weex的开发环境安装,接下来简单实现下Hel...
    chen飞鸿阅读 922评论 0 0
  • 压抑——最近生活的写照 这也是我这几年以来第一次感觉到这种感觉吧 很多事情明明很清楚就是做不了决定 简单的抉择 利...
    Even丶阅读 259评论 0 0