当前位置: 首页 > 知识库问答 >
问题:

前端 - 使用Vue.js制作图片到Div的飞入和缩小效果?

施驰
2024-03-19

大佬们,用vue怎么实现,上面是一个图片,下面是一个div,点击图片飞入到div里面(垂直方向上),且图片慢慢缩小直至消失呢?

translate(0rpx, 100px),用这个写,慢慢缩小的怎么做呢,且可以飞到div里指定位置

共有2个答案

朱丰
2024-03-19

试试这个。

html

<div>    <img      src="xxx.png"      @click="handleClick"      :style="{ transform: `translateY(${imageY}px) scale(${imageScale})`, transition: `transform ${transitionDuration}ms` }"    />    <div class="box"></div>  </div>

js

export default {  data() {    return {      imageY: 0,      imageScale: 1,      transitionDuration: 3000    };  },  methods: {    handleClick() {      this.imageY = 100;       this.imageScale = 0;    }  }};</script>

css

.box{  width: 200px;   height: 200px;   background: #ccc; }img {  width: 100px;  height: 100px;}
雷国兴
2024-03-19

在Vue.js中实现图片的飞入和缩小效果,你可以使用Vue的过渡效果系统(<transition> 组件)以及CSS动画或过渡。以下是一个简单的示例,展示如何实现你所描述的效果:

首先,在你的Vue组件的模板中,你需要定义图片和div,并且使用<transition>组件来包裹图片,以便应用过渡效果。同时,你还需要一个变量来控制图片是否应该被显示和过渡。

<template>  <div class="container">    <div class="target-div">这是目标div</div>    <transition      name="fly-and-shrink"      @before-enter="beforeEnter"      @enter="enter"    >      <img v-if="showImage" src="your-image-source.jpg" alt="Flying Image" />    </transition>  </div></template>

接下来,在你的Vue组件的script部分,定义showImage变量以及beforeEnterenter方法,这些方法将在过渡的不同阶段被调用。

<script>export default {  data() {    return {      showImage: false,    };  },  methods: {    beforeEnter(el) {      el.style.transform = 'translateY(-100px) scale(1)';      el.style.opacity = 0;    },    enter(el, done) {      const duration = 1000; // 过渡持续时间,单位为毫秒      el.style.transition = `transform ${duration}ms ease, opacity ${duration}ms ease`;      el.style.transform = 'translateY(0) scale(0)';      el.style.opacity = 1;      setTimeout(() => {        done();      }, duration);    },  },};</script>

最后,在你的CSS中定义fly-and-shrink过渡的样式。

<style scoped>.fly-and-shrink-enter-active,.fly-and-shrink-leave-active {  transition: transform 1s ease, opacity 1s ease;}.fly-and-shrink-enter,.fly-and-shrink-leave-to {  transform: translateY(-100px) scale(1);  opacity: 0;}</style>

在这个示例中,我们使用了Vue的<transition>组件,并在其中定义了beforeEnterenter两个钩子函数,分别用于在过渡开始之前和过渡开始时设置元素的初始状态。

beforeEnter钩子设置了图片的初始位置(translateY(-100px))和初始大小(scale(1)),以及初始透明度(opacity: 0)。

enter钩子设置了过渡的持续时间和过渡效果的属性,包括transformopacity。它改变了图片的位置(translateY(0))和大小(scale(0)),并设置了结束时的透明度(opacity: 1)。

注意,done回调函数在过渡完成后被调用,这是必要的,因为Vue需要知道何时过渡已经完成。

此外,请确保将showImage变量绑定到某个事件上,例如点击事件,以触发图片的显示和过渡效果。

这只是一个简单的示例,你可能需要根据你的具体需求对其进行调整。

 类似资料:
  • 本文向大家介绍python制作图片缩略图,包括了python制作图片缩略图的使用技巧和注意事项,需要的朋友参考一下 缩略图 在很多时候我们都需要将图片按照同比例缩小有利于存储 但是一张张手动去改的话太麻烦了 今天我们就用python实现一个简单的将一个文件夹中的所有图片进行指定大小的调整 缩略前: 代码: 缩略后: 参数使用说明: 1、os模块,python的os模块封装了常见的文件和目录操作。

  • 本文向大家介绍使用jQuery制作基础的Web图片轮播效果,包括了使用jQuery制作基础的Web图片轮播效果的使用技巧和注意事项,需要的朋友参考一下 首先看一下效果: 就这么个意思,没截动图哈~ 轮播效果分析: 轮播效果大致可以分为3个部分:轮播图片(图片或者是包含容器),控制轮播图显示的按钮(向左、向右按钮,索引按钮(例如上面效果图的顶部的数字按钮)),每隔一段时间轮流显示轮播图片。 轮播图的

  • 本文向大家介绍jQuery制作图片旋转效果,包括了jQuery制作图片旋转效果的使用技巧和注意事项,需要的朋友参考一下 以前用JQuery写过一个纵深方向上的图片旋转效果,在这里拿出来跟大家分享下,贴上一张图片看看效果是如何的: 其实现原理并不复杂,在数学上只用到了其中的正弦函数,制作过程大致如下: (1)先定义好图片旋转的半径 (2)图片旋转的过程需要用到setInterval()方法,来获取每

  • 本文向大家介绍移动端使用localResizeIMG4压缩图片,包括了移动端使用localResizeIMG4压缩图片的使用技巧和注意事项,需要的朋友参考一下 移动h5开发避免不了上传图片,一般我们使用html自带的控件input或者使用微信上传API。但微信上传API不是任何地方都可以使用的,使用html自带的控件input上传又免不了图片体积太大,上传不稳定。localResizeIMG4就是

  • 本文向大家介绍jquery制作图片时钟特效,包括了jquery制作图片时钟特效的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了jquery制作图片时钟特效的具体代码,供大家参考,具体内容如下 一、生成数字时钟 效果: 二、将数字转换为图片 方法一: 图片名称即数字,用最简单的写法。 用到图片: 写一个函数strToImg(str)将一个字符串str中每一个数字转换为对应图片,然后动态

  • 本文向大家介绍jQuery制作简洁的图片轮播效果,包括了jQuery制作简洁的图片轮播效果的使用技巧和注意事项,需要的朋友参考一下 演示图: 核心代码: 以上所述就是本文的全部内容了,希望大家能够喜欢。