首页 > 其他分享 >开源项目推荐-vue2+element+axios 个人财务管理系统

开源项目推荐-vue2+element+axios 个人财务管理系统

时间:2024-06-21 12:30:15浏览次数:19  
标签:ball1 ballScale axios 项目 style element directionY vue2 left

在这里插入图片描述

文章目录


financialmanagement

项目简介

vue2+element+axios 个人财务管理系统 是基于 vue2+element+axios 等主流技术栈构建的免费开源的后台管理前端模板。

项目特色

  • 简洁易用:无过渡封装 ,易上手。

  • 权限管理:用户、角色、菜单、字典、部门等完善的权限系统功能。

  • 基础设施:路由、代码规范、Git 提交规范、常用组件封装。

  • 持续更新:持续更新,及时跟进最新的技术和工具。

项目预览

登录页面的为动态效果,在刚刷新或者刚进入的时候有个卫星环绕的动画效果,鼠标移动或者悬浮都有不同的动态效果。

首页首次进入效果:
请添加图片描述

卫星的实现方式:

主要是用到了渐变背景和阴影。在background中使用radial-gradient,控制不同的卫星的样式效果。再用box-shadow来展示卫星的发光效果。

    background: radial-gradient(circle at 124px 3px, #5babd1, #5babd1, #3689c0, #5babd1, #386a8b, #666);
    // 3个小球的渐变值不同
    box-shadow: 0px -5px 40px #5babd1;
    position: absolute;
    bottom: -100px;
    width: 20vw;
    height: 20vw;
    min-width: 200px;
    min-height: 200px;
    left: 40%;
    animation-name: ball1-example-37dfd6fc;
    animation-duration: 4s;

首次进入卫星效果的实现方式:

css3的动画效果,用transformrotate控制小球的运行轨迹。

@keyframes ball-example {
  from {
    transform: rotate(397deg);
  }
  to {
    transform: rotate(0deg);
  }
}
.ball1:hover {
  box-shadow: 0px -15px 80px #5babd1;
}

卫星跟随鼠标滑动的随机效果实现方式:

使用@mousewheel.prevent方法,在mousePoll中配置滚轮滑动的效果。
使用方法中的deltaY deltaX ,获取鼠标的动态。
向左右上下滑动,都有不同的动态效果。
由于@mousewheel.prevent是不断的返回数据,使用加了一个节流,2秒获取一次数据,以防出现问题。

    // 滚轮滑动
    mousePoll(e) {
      let directionY = e.deltaY > 0 ? "down" : "up";
      let directionX = e.deltaX > 0 ? "left" : "right";
      // 获取各个小球
      let ball1 = document.getElementsByClassName("ball1")[0];
      let ball2 = document.getElementsByClassName("ball2")[0];
      let ball3 = document.getElementsByClassName("ball3")[0];
      // 节流
      if (this.mousepollShow) {
        this.mousepollShow = false;
        // 上下滑动
        if (directionY === "down" || directionY === "up") {
          // 判断是否离得太远
          if (this.ballScale < 1.5 && this.ballScale > 0.5) {
            this.ballScale =
              directionY === "down"
                ? this.ballScale + 0.1
                : this.ballScale - 0.1;
          } else {
            this.ballScale =
              directionY === "down"
                ? this.ballScale - 0.1
                : this.ballScale + 0.1;
          }
          ball1.style.transform = `scale(${this.ballScale})`;
          ball2.style.transform = `scale(${this.ballScale})`;
          ball3.style.transform = `scale(${this.ballScale})`;
        }
        if (directionX === "left") {
          // 滑轮向left滚动
          ball1.style.left = `35%`;
          ball2.style.left = "8%";
          ball3.style.right = "8%";
        } else {
          // 滑轮向right滚动
          ball1.style.left = `45%`;
          ball2.style.left = "12%";
          ball3.style.right = "12%";
        }
// 如果一直向下滑动 就到下一面
        if (this.slideDown > 1 && directionY === "down") {
          document.getElementsByClassName("main-second")[0].scrollIntoView();
          this.slideDown = 0;
        } else {
          this.slideDown = this.slideDown + 1;
        }
        this.mouseShow();
      }
    },
    // 节流
    mouseShow() {
      const betterFn = () => {
        setTimeout(() => {
          this.mousepollShow = true;
        }, 2000);
      };
      betterFn();
    },

如果想要知道具体的实现思路,可以到项目中查看:项目地址》》

登录页面

登录页面

支出页面
收入页面

首页

设定目标

环境准备

环境名称版本下载地址
开发工具VSCode下载
运行环境Node ≥18下载

项目启动

# 克隆代码
git clone  https://gitee.com/naitang_room/Personal-Financial-Management-System.git


# 安装依赖
npm install

# 启动运行
npm run serve

# 打包
npm run build

项目部署

# 项目打包
npm run build:prod

项目地址

https://gitcode.com/wantRich/vue2_element_axios_PersonalFinancialManagementSystem.git

欢迎访问项目!

您好,我是肥晨。
欢迎关注我获取前端学习资源,日常分享技术变革,生存法则;行业内幕,洞察先机。

标签:ball1,ballScale,axios,项目,style,element,directionY,vue2,left
From: https://blog.csdn.net/weixin_48998573/article/details/139736112

相关文章

  • 09-axios在Vue中的导入与配置
    09-axios前言首先简单了解什么是Axios?以上完成后就可以使用了前言我们接着上一篇文章08-路由地址的数据获取来讲。下一篇文章10-vuex在Vue中的导入与配置首先简单了解什么是Axios?Axios是一个基于Promise用于浏览器和nodejs的HTTP客户端,本质上也是对......
  • 第二十四节:带你梳理Vue2 : Vue具名插槽/作用域插槽/v-slot指令
    1.具名插槽1.1没有使用具名插槽的问题有的时候我们在使用子组件时,在子组件模板上不同的位置插入不同的内容,只有一个插槽显然没法满足我们的需求,看示例:需求如下:子组件是一篇文章的结构父组件在调用子组件是给文章插入标题,正文,时间信息示例代码如下:<divid=......
  • Element-UI上传时修改上传图片的宽高
    //上传前beforeUpload(file){//创建一个Image对象constimage=newImage();//设置图片的src为选中文件的对象urlimage.src=URL.createObjectURL(file);returnnewPromise((resolve,reject)=>{image.onload=()=>{//设置想要的图片宽......
  • vs code 搭建 vue 3.0+Element-ui
    前言根据上一篇文章,通过vue-cli3.0创建了一个vue项目 https://www.cnblogs.com/FTAH/p/12427997.html 1.在当前项目中加入Element-ui前端框架1.首先在官方网站的这一页我们发现要安装框架 https://element.eleme.cn/#/zh-CN/component/installation 注意这里提供了......
  • Vue 3 + Element Plus实现PC和移动端兼容的技术探讨
    在现代Web开发中,实现PC端和移动端的兼容性已经成为一个必备的技能。Vue3作为一款流行的前端框架,结合ElementPlus这个优秀的UI组件库,为我们提供了丰富的工具和解决方案。在本文中,我们将探讨如何使用Vue3和ElementPlus来实现PC和移动端的兼容性,并结合vh、vw等单位实现响应......
  • 203. Remove Linked List Elements
    Giventheheadofalinkedlistandanintegerval,removeallthenodesofthelinkedlistthathasNode.val==val,andreturnthenewhead.Example1:Input:head=[1,2,6,3,4,5,6],val=6Output:[1,2,3,4,5]Example2:Input:head=[],val=......
  • 使用Element-plus的消息组件(ElMessage或ElNotification)时,出现z-index异常,导致被遮挡
    Nuxt3中使用ElementPlus的消息组件(ElMessage或ElNotification)时,出现z-index异常,导致被遮挡。背景介绍:我的页面中已经弹出了两个el-drawer组件,此种情况下我需要弹出一个提示信息。无论我是使用ElMessage,还是使用ElNotification都存在相同的问题,就是"遮罩层"给遮挡住以下......
  • 自动化之python读取目录结构转换为element-plus tree结构
    defget_project_tree(start_path:str,original_path:str,tree_data:list):child_files=os.listdir(start_path)forchild_fileinchild_files:ifchild_filein['.gitignore','.idea','venv','__pycache__......
  • 实现vue2的响应式原理
    /****基本原理:*1、通过Observer劫持data上的对象并监听data上的所有属性,遍历所有属性,并用Object.defineProperty转化为getter/setter,监听data上属性的的变化*2、将data上的属性挂载到vue的实例上,实例化后可以在vue使用this访问data属性*3、使用Compiler......
  • 基于Java+SpringBoot+Vue+elementUI的学生宿舍管理平台的设计与开发
    第一章绪论1.1选题背景和意义1.2国内外学生宿舍管理平台现状第二章相关技术简介2.1开发工具介绍2.1.1IDEA2.1.2VSCode2.1.3Navicat2.1.4宝塔面板2.2关键技术介绍2.2.1Java2.2.2SpringBoot2.2.3Mybatis2.2.4Vue2.2.5MySQL2.2.6Redis2.2.7E......