当前位置:首页 > VUE

vue实现盖章

2026-03-07 01:45:11VUE

Vue 实现盖章效果

在 Vue 中实现盖章效果可以通过 CSS 动画和动态组件结合实现。以下是具体实现方法:

vue实现盖章

使用 CSS 动画和动态组件

创建印章组件,通过 CSS 定义印章的样式和动画效果:

vue实现盖章

<template>
  <div class="stamp" :style="{ left: position.x + 'px', top: position.y + 'px' }">
    {{ text }}
  </div>
</template>

<script>
export default {
  props: {
    text: String,
    position: Object
  }
}
</script>

<style>
.stamp {
  position: absolute;
  padding: 10px 20px;
  color: red;
  border: 3px solid red;
  border-radius: 5px;
  font-weight: bold;
  transform: rotate(-15deg);
  opacity: 0;
  animation: stamp 0.5s ease-out forwards;
}

@keyframes stamp {
  0% {
    transform: scale(3) rotate(-15deg);
    opacity: 0;
  }
  100% {
    transform: scale(1) rotate(-15deg);
    opacity: 0.8;
  }
}
</style>

在父组件中使用

在需要盖章的页面中动态添加印章组件:

<template>
  <div class="document" @click="addStamp">
    <Stamp v-for="(stamp, index) in stamps" :key="index" :text="stamp.text" :position="stamp.position" />
    <!-- 文档内容 -->
  </div>
</template>

<script>
import Stamp from './Stamp.vue'

export default {
  components: { Stamp },
  data() {
    return {
      stamps: []
    }
  },
  methods: {
    addStamp(event) {
      this.stamps.push({
        text: '已审核',
        position: { x: event.clientX, y: event.clientY }
      })
    }
  }
}
</script>

<style>
.document {
  position: relative;
  min-height: 100vh;
  cursor: pointer;
}
</style>

使用 SVG 实现更复杂印章

如果需要更复杂的印章效果,可以使用 SVG:

<template>
  <svg class="stamp" :style="{ left: position.x + 'px', top: position.y + 'px' }" viewBox="0 0 200 200">
    <circle cx="100" cy="100" r="90" fill="none" stroke="red" stroke-width="5"/>
    <text x="100" y="100" text-anchor="middle" fill="red" font-size="24" font-weight="bold">{{ text }}</text>
  </svg>
</template>

注意事项

  • 确保印章组件有正确的定位上下文(父元素需要设置 position: relative)
  • 调整动画时间和效果以获得最佳视觉体验
  • 可以扩展组件支持不同印章样式和颜色
  • 考虑添加点击事件阻止冒泡,避免与文档其他交互冲突

以上方法可以实现基本的盖章效果,可以根据实际需求调整样式和交互方式。

标签: vue
分享给朋友:

相关文章

vue实现无线滚动列表

vue实现无线滚动列表

无限滚动列表的实现方法 在Vue中实现无限滚动列表通常结合监听滚动事件和动态加载数据。以下是几种常见方法: 使用自定义指令 创建自定义指令v-infinite-scroll监听滚动事件:…

vue实现3d宇宙

vue实现3d宇宙

Vue实现3D宇宙效果 使用Three.js库 Three.js是一个强大的JavaScript 3D库,可以轻松集成到Vue项目中。安装Three.js依赖: npm install three…

vue分类实现

vue分类实现

Vue分类实现方法 在Vue中实现分类功能通常涉及数据分组、动态渲染和交互逻辑。以下是几种常见的实现方式: 基于计算属性的分类 通过计算属性对原始数据进行分组处理,适合静态或少量数据分类: com…

vue单选实现

vue单选实现

Vue 单选实现 在 Vue 中实现单选功能可以通过多种方式完成,以下是几种常见的方法: 使用 v-model 绑定单选按钮 通过 v-model 绑定一个变量,可以实现单选效果。当用户选择不同的选…

vue实现gps

vue实现gps

Vue 中实现 GPS 定位功能 在 Vue 中实现 GPS 定位功能通常依赖于浏览器的 Geolocation API 或第三方地图服务(如高德、百度地图等)。以下是两种常见的实现方式: 使用浏览…

vue首页实现

vue首页实现

实现Vue首页的基本步骤 创建一个Vue首页通常涉及项目初始化、页面结构设计、路由配置和组件开发。以下是具体实现方法: 初始化Vue项目 使用Vue CLI或Vite快速搭建项目结构: npm i…