彈窗在官方文檔中稱為Modal,一種常見的用戶交互方式。在Vue中,我們可以使用第三方組件庫或自己編寫組件實現彈窗。本文主要介紹使用Vue+element-ui實現的彈窗圖片裂開效果。
我們首先在Vue組件中引入element-ui庫,然后使用el-dialog組件實現彈窗效果,同時使用el-image組件展示圖片。
<template> <div> <el-dialog :visible.sync="visible"> <template #title> 彈窗圖片裂開效果 </template> <el-image src="./assets/img.jpg"></el-image> </el-dialog> </div> </template> <script> import { ElDialog, ElImage } from 'element-ui' export default { components: { ElDialog, ElImage }, data () { return { visible: false } } } </script>
以上代碼實現了一個簡單的彈窗,在彈窗中展示一張圖片。接下來我們通過添加CSS樣式實現圖片裂開效果。首先給圖片容器設置一個背景顏色,然后添加兩個偽元素作為背景圖片層,分別從左側和右側裂開。最后在hover事件中切換偽元素寬度,實現圖片裂開效果。
<style scoped> .image-container{ position: relative; background-color: #000; width: 500px; height: 300px; } .image-container::before, .image-container::after{ position: absolute; content: ""; background-image: url('./assets/img.jpg'); top:0; bottom:0; width:50%; z-index: -1; transition: all 0.5s ease-out; } .image-container::before{ left:0; transform: translateX(-100%); } .image-container::after{ right:0; transform: translateX(100%); } .image-container:hover::before, .image-container:hover::after{ width:100%; } </style> <template> <div> <el-dialog :visible.sync="visible"> <template #title> 彈窗圖片裂開效果 </template> <div class="image-container"> <el-image src="./assets/img.jpg"></el-image> </div> </el-dialog> </div> </template>
以上代碼實現了element-ui彈窗中圖片裂開效果,實現思路簡單,效果十分炫酷。本文著重介紹實現思路,希望對大家有所幫助。
上一篇java 和%