Vue實(shí)現(xiàn)通知或詳情類彈窗
本文實(shí)例為大家分享了Vue實(shí)現(xiàn)通知或詳情類彈窗的具體代碼,供大家參考,具體內(nèi)容如下
效果如圖所示:(整體樣式模仿ant-design-vue Modal樣式,同時(shí)陰影覆蓋瀏覽器窗口,并自定義滾動(dòng)條樣式)

①創(chuàng)建彈窗組件Dialog.vue:
<template>
? <div class="m-dialog-mask">
? ? <div class="m-modal">
? ? ? <div class="m-modal-content">
? ? ? ? <div @click="onClose" class="u-close">✖</div>
? ? ? ? <div class="m-modal-header">
? ? ? ? ? <div class="u-head">{{ title }}</div>
? ? ? ? </div>
? ? ? ? <div class="m-modal-body">
? ? ? ? ? <p class="u-content" v-html="content"></p>
? ? ? ? </div>
? ? ? </div>
? ? </div>
? </div>
</template>
<script>
export default {
? name: 'Dialog',
? props: {
? ? title: {
? ? ? type: String,
? ? ? default: '提示'
? ? },
? ? content: {
? ? ? type: String,
? ? ? default: ''
? ? }
? },
? methods: {
? ? onClose () {
? ? ? this.$emit('close')
? ? }
? }
}
</script>
<style lang="less>
.m-dialog-mask {
? position: fixed;
? top: 0;
? right: 0;
? bottom: 0;
? left: 0;
? width: 100%;
? height: 100%;
? z-index: 1000000;
? background: rgba(0,0,0,0.45);
? .m-modal {
? ? width: 720px;
? ? position: relative;
? ? top: calc(50% - 240px);
? ? margin: 0 auto;
? ? .m-modal-content {
? ? ? position: relative;
? ? ? background: #fff;
? ? ? border-radius: 4px;
? ? ? box-shadow: 0 4px 12px rgba(0,0,0,.1);
? ? ? .u-close {
? ? ? ? position: absolute;
? ? ? ? top: 16px;
? ? ? ? right: 24px;
? ? ? ? color: rgba(0,0,0,.45);
? ? ? ? font-size: 18px;
? ? ? ? line-height: 22px;
? ? ? ? cursor: pointer;
? ? ? ? transition: color .3s;
? ? ? ? &:hover {
? ? ? ? ? color: rgba(0,0,0,.75);
? ? ? ? }
? ? ? }
? ? ? .m-modal-header {
? ? ? ? height: 22px;
? ? ? ? padding: 16px 24px;
? ? ? ? border-radius: 4px 4px 0 0;
? ? ? ? border-bottom: 1px solid #e8e8e8;
? ? ? ? .u-head {
? ? ? ? ? margin: 0;
? ? ? ? ? color: rgba(0,0,0,.85);
? ? ? ? ? font-weight: 500;
? ? ? ? ? font-size: 16px;
? ? ? ? ? line-height: 22px;
? ? ? ? ? word-wrap: break-word;
? ? ? ? }
? ? ? }
? ? ? .m-modal-body {
? ? ? ? height: 425px;
? ? ? ? padding: 24px;
? ? ? ? font-size: 16px;
? ? ? ? line-height: 1.5;
? ? ? ? word-wrap: break-word;
? ? ? ? box-sizing: border-box;
? ? ? ? overflow: auto;
? ? ? ? .u-content {
? ? ? ? ? width: 672px;
? ? ? ? ? img { max-width: 100%; } // v-html中圖片過(guò)大時(shí),設(shè)置其樣式最大寬度為100%
? ? ? ? }
? ? ? }
? ? ? /* 自定義滾動(dòng)條樣式 */
? ? ? .m-modal-body::-webkit-scrollbar {
? ? ? ? width: 10px; /*對(duì)垂直流動(dòng)條有效*/
? ? ? ? height: 10px; /*對(duì)水平流動(dòng)條有效*/
? ? ? }
? ? ? /*定義滾動(dòng)條的圓角、內(nèi)陰影及軌道樣式*/
? ? ? .m-modal-body::-webkit-scrollbar-track {
? ? ? ? border-radius: 5px;
? ? ? ? box-shadow: inset 0 0 6px rgba(0,0,0,.3);
? ? ? ? background: #fff;
? ? ? }
? ? ? /* 滾動(dòng)條上部軌道樣式 */
? ? ? .m-modal-body::-webkit-scrollbar-track-piece:vertical:start {
? ? ? ? border-radius: 5px;
? ? ? ? background: #c3c3c3;
? ? ? }
? ? ? /*定義圓角、內(nèi)陰影及滑塊樣式*/
? ? ? .m-modal-body::-webkit-scrollbar-thumb {
? ? ? ? border-radius: 5px;
? ? ? ? box-shadow: inset 0 0 6px rgba(0,0,0,.3);
? ? ? ? background: #e8e8e8;
? ? ? ? &:hover { // 懸浮或選中時(shí)滑塊樣式
? ? ? ? ? background: #c9c9c9;
? ? ? ? }
? ? ? }
? ? }
? }
}
</style>②使用Dialog組件進(jìn)行通知,詳情類的展示:
<Dialog
? ? ? title="提示"
? ? ? :content="content"
? ? ? @close="onClose"
? ? ? v-show="showDialog"
? ? ? />
?
import Dialog from '@/components/Dialog'
components: {
? ? Dialog
}
?
data () {
? ? return {
? ? ? showDialog: false,
? ? ? content: '',
? ? }
}
methods: {
? ? onDialog (content) { // 調(diào)用Dialog彈窗展示
? ? ? this.content = content
? ? ? this.showDialog = true
? ? },
? ? onClose () { // 關(guān)閉dialog
? ? ? this.showDialog = false
? ? }
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 使用Vue組件實(shí)現(xiàn)一個(gè)簡(jiǎn)單彈窗效果
- 關(guān)于vue.js彈窗組件的知識(shí)點(diǎn)總結(jié)
- vue實(shí)現(xiàn)點(diǎn)擊按鈕“查看詳情”彈窗展示詳情列表操作
- 很棒的vue彈窗組件
- vue彈窗消息組件的使用方法
- VUE實(shí)現(xiàn)可隨意拖動(dòng)的彈窗組件
- Vue中關(guān)閉彈窗組件時(shí)銷毀并隱藏操作
- vue中實(shí)現(xiàn)點(diǎn)擊空白區(qū)域關(guān)閉彈窗的兩種方法
- vue的toast彈窗組件實(shí)例詳解
- vue 彈窗時(shí) 監(jiān)聽(tīng)手機(jī)返回鍵關(guān)閉彈窗功能(頁(yè)面不跳轉(zhuǎn))
相關(guān)文章
ElementUI實(shí)現(xiàn)在下拉列表里面進(jìn)行搜索功能詳解
有時(shí)候需要用到下拉列表全選和搜索,下面這篇文章主要給大家介紹了關(guān)于ElementUI實(shí)現(xiàn)在下拉列表里面進(jìn)行搜索功能的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-04-04
vue實(shí)現(xiàn)移動(dòng)端輕量日期組件不依賴第三方庫(kù)的方法
這篇文章主要介紹了vue 移動(dòng)端輕量日期組件不依賴第三方庫(kù),需要的朋友可以參考下2019-04-04
使用vue制作FullPage頁(yè)面滾動(dòng)效果
本篇文章主要介紹了使用vue制作FullPage頁(yè)面滾動(dòng)效果,詳細(xì)的介紹了FullPage頁(yè)面的思路和實(shí)現(xiàn),有興趣的可以了解一下2017-08-08
vscode 配置vue+vetur+eslint+prettier自動(dòng)格式化功能
這篇文章主要介紹了vscode 配置vue+vetur+eslint+prettier自動(dòng)格式化功能,本文通過(guò)實(shí)例代碼圖文的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03
Vue中splice()方法對(duì)數(shù)組進(jìn)行增刪改等操作的實(shí)現(xiàn)
vue中對(duì)數(shù)組的元素進(jìn)行刪除,以前一直以為這個(gè)方法是vue中特有的,后來(lái)百度之后才知道原來(lái)是js的一個(gè)寫(xiě)法,下面這篇文章主要給大家介紹了關(guān)于Vue中splice()方法對(duì)數(shù)組進(jìn)行增刪改等操作的實(shí)現(xiàn)方法,需要的朋友可以參考下2023-05-05
vue前端實(shí)現(xiàn)導(dǎo)出頁(yè)面為word的兩種方法代碼
在前端開(kāi)發(fā)中我們常常需要將頁(yè)面頁(yè)面為word文件,這篇文章主要給大家介紹了關(guān)于vue前端實(shí)現(xiàn)導(dǎo)出頁(yè)面為word的兩種方法,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-04-04

