实例:vue

news/2024/10/5 17:27:29

实例:vue.js实现模态窗口(弹窗)| Id | Title | DateAdded | SourceUrl | PostType | Body | BlogId | Description | DateUpdated | IsMarkdown | EntryName | CreatedTime | IsActive | AutoDesc | AccessPermission |

| -------------| -------------| -------------| -------------| -------------| -------------| -------------| -------------| -------------| -------------| -------------| -------------| -------------| -------------| -------------|
| 16459901| 实例:vue.js实现模态窗口(弹窗)| 2022-07-08T23:15:00| | BlogPost|

前面曾介绍过使用JS或纯CSS来实现的模态弹窗,比如10款纯CSS模态弹窗/模式窗口(modal popup)4款响应式模态弹窗(modal popup),实现弹窗的设计并不难也不复杂,不过如果使用第三方组件Vue.js,则可以让模态窗口(弹窗)的设计变得更加容易,编写代码更少,并且效果更佳。

demodownload

 

https://files.cnblogs.com/files/roak/js-vue-modal-component.rar?t=1657293362

HTML

  1. <div id="app">
  2. <div class="content">
  3.     <p class="subtitle"><strong>Vue.js</strong> 组件</p>
  4.     <h1 class="title">模态窗口</h1>
  5.     <hr/>
  6.     <p>使用模态窗口组件,点击按钮查看详细介绍。</p>
  7.     <button class="button is-primary" @click="showModal = true">产品描述</button>
  8. </div>
  9. <transition name="fade">
  10.     <modal v-if="showModal" @close="showModal = false">
  11.       <template slot="header">产品描述</template>
  12.       <div class="content">
  13.         <p>Vue是一套用于构建用户界面的渐进式框架。</p>
  14.         <p>与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。</p>
  15.       </div>
  16.     </modal>
  17. </transition>
  18. </div>

idappdiv,是vue.js组件监控的元素,idapp需与实例里的jquery编程代码el: '#app'一致。

 

class值为contentdiv,是存放网页内容的元素标签。里面的按钮使用button元素,其class值是button,另外其有一个@click属性,值为showModal = true

name值为fadetransition标签,是弹窗容器,该容器的子元素modal,有个v-if属性,其值为showModal;另外还有一个属性@close,其值为showModal = false

JS

  1. <script src='jquery-3.2.1.min.js'></script>
  2. <script src='vue.min.js'></script>
  3. <script>
  4. Vue.component('modal', {
  5.   template: `
  6.     <div class="modal is-active">
  7.       <div class="modal-background"></div>
  8.         <div class="modal-card">
  9.           <header class="modal-card-head">
  10.             <class="modal-card-title">
  11.               <slot name="header"></slot>
  12.             </p>
  13.             <button class="delete" aria-label="close" @click="$emit('close')"></button>
  14.           </header>
  15.           <section class="modal-card-body">
  16.             <slot></slot>
  17.           </section>
  18.           <footer class="modal-card-foot">
  19.             <slot name="footer">
  20.               <button class="button is-success" @click="$emit('close')">OK</button>
  21.               <button class="button" @click="$emit('close')">Cancel</button>
  22.             </slot>
  23.           </footer>
  24.         </div>
  25.     </div>
  26.   ` });
  27.  
  28.  
  29. new Vue({
  30.   el: '#app',
  31.  
  32.   data: {
  33.     showModal: false } });
  34. </script>

本实例用到JQuery编程,所以首先需要加载jquery.js库文件。此外,还需加载vue.min.js库文件。

弹窗里的OK和Cancel按钮文字在JQuery程序里设置。

CSS

该实例CSS需要引用一个库文件。

  1. <link rel='stylesheet' href='bulma.min.css'>

 另外的CSS样式主要是网页内容布局、位置、文字、按钮、弹窗过度效果等样式的个性化设计。

  1. #app {
  2.   margin: 3.75em auto;
  3.   padding: 0.75em;
  4.   max-width: 37.5em;
  5. }
  6.  
  7. .container {
  8.   margin-bottom: 1.5em;
  9. }
  10.  
  11. .btn-action-delete {
  12.   color: #cc4b37;
  13.   cursor: pointer;
  14. }
  15.  
  16. .tasks {
  17.   list-style: none;
  18.   margin-left: 0;
  19. }
  20.  
  21. .task label {
  22.   margin: 0 0.125em;
  23. }
  24.  
  25. .completed label {
  26.   text-decoration: line-through;
  27.   color: #cacaca;
  28. }
  29.  
  30. .fade-enter-active,
  31. .fade-leave-active {
  32.   transition: opacity 0.2s ease-out;
  33. }
  34. .fade-enter-active .modal-card,
  35. .fade-leave-active .modal-card {
  36.   transition: transform 0.2s ease-out;
  37. }
  38.  
  39. .fade-enter,
  40. .fade-leave-to {
  41.   opacity: 0;
  42. }
  43. .fade-enter .modal-card,
  44. .fade-leave-to .modal-card {
  45.   transform: scale(0.9);
  46. }
 

总结

本实例介绍了如何用vue.js组件来实现模态弹窗的设计,相比纯JS/CSS实现的弹窗方法,该方法多引用了几个文件(js、css),不过该方法实现的效果更佳,代码更少,用户使用体验会更好。

 

实例:vue.js实现模态窗口(弹窗) - js技术_卡卡网 (webkaka.com)

| 648658| | 2022-07-08T23:16:00| false| | 2022-07-08T23:15:01.157| true| 前面曾介绍过使用JS或纯CSS来实现的模态弹窗,比如10款纯CSS模态弹窗/模式窗口(modal popup),4款响应式模态弹窗(modal popup),实现弹窗的设计并不难也不复杂,不过如果使用第三方组件Vue.js,则可以让模态窗口(弹窗)的设计变得更加容易,编写代码更少,并且效果更佳。 d| Anonymous|

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hjln.cn/news/43193.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

同步mysql数据到ElasticSearch的最佳实践

同步mysql数据到ElasticSearch的最佳实践| Id | Title | DateAdded | SourceUrl | PostType | Body | BlogId | Description | DateUpdated | IsMarkdown | EntryName | CreatedTime | IsActive | AutoDesc | AccessPermission | | -------------| -------------| ------------…

开源无代码 / 低代码平台 NocoBase 1.0.1-alpha.1: 区块支持高度设置

NocoBase 是一个极易扩展的开源无代码开发平台。完全掌控,无限扩展,助力你的开发团队快速响应变化,显著降低成本,不必投入几年时间和数百万资金研发,只需要花几分钟部署 NocoBase。 NocoBase 中文官网 官方文档 在线 Demo 新特性 区块支持高度设置(#4441)参考文档:区块…

Apifox安装使用

下载双击安装登录后,查看本地Mock快捷请求测试复制url到浏览器测试

机器学习实践——支持向量机

一.什么是支持向量机 支持向量机(SVM)是一种广泛使用的监督学习方法,主要用于分类和回归分析。它的基本原理是找到一个超平面(在二维空间中是一条直线),以最大化不同类别之间的边界。以下是SVM的关键概念:超平面:决策边界,用于分类的直线或平面。边界(Margin):从超…

软件工程-五 过程

软件工程-五 过程 做过程不是做工程 软件工程这个概念被提出的时候大概是在20个世纪60年代末。它作为成熟的概念的标志是软件工程的瀑布模型的提出。 瀑布模型将软件开发的过程分成需求、分析、设计、开发和测试五个主要阶段,其主要环节关系表现为如下的这样一种形态在瀑布模…

centos tream 9安装dingding

https://github.com/zhullyb/dingtalk-for-fedora/blob/master/README_zh.md 用deb包转成rpm,然后用dnf安装rpm即可 dingtalk-for-fedora提供了如何转化,需要了解rpmrebuild如何使用

redis自学(46)键值设计

Redis键值设计 优雅的key结构 Redis的Key虽然可以自定义,到但是最好遵循下面的几个最佳实践约定: l 遵循基本格式:[业务名称]:[数据名]:[id] l 长度不超过44字节(长度越小,占用的内存越少) l 不包含特殊字符优点: ① 可读性强 ② 避免key冲突 ③ 方便管理 ④ 更节省…

windows计划任务的“等待空闲时间”已弃用

想使用windows的计划任务来实现:当计算机空闲时,自动关机,避免资源浪费。 方案一: 测试了过多个软件,如shutter,WinOFFSetup,虽然功能多,但这些软件只能在用户登录时运行。而windows 11一段时间后会自动注销,查了多种设置方法没有解决。 方案二: 用AI写了检测用户空闲…