类似这么一张长图,让设计做运动轨迹图,鼠标经过、离开背景图片移动位置,进行运动。

工作中使用vue 需要传入参数,可以自行传入大小,但是需要计算比例值:

子组件:(需要的可以直接复制)

<template><div class="cd4 img" :data-max="max" :style="style"></div>
</template>
<script>
export default {data() {return {interval: null,};},props: {// 图片地址imgUrl: {type: String,default: "",},// 图片的个数max: {type: Number,default: 17,},// 图片的宽度width: {type: String,default: "140px",},// 单个图片的宽度height: {type: String,default: "140px",},},computed: {style() {return {backgroundImage: "url(" + this.imgUrl + ")",backgroundSize: "" + this.width + this.height * this.max + "",width: this.width,height: this.height,};},},created() {},mounted() {$(".img").each(function () {var $me = $(this);$me.data({nowStep: 0, //当前第几张图maxStep: $me.attr("data-max"), //图片的高度height: $me.height(), //图片的高度isOver: true, //鼠标是否移到上面active: false, //是否需要动起来});});$(".img").on("mouseover", function () {window.clearInterval(this.interval);this.interval = setInterval(bgMove, 30);$(this).data("isOver", true);$(this).data("active", true);}).on("mouseout", function () {window.clearInterval(this.interval);this.interval = setInterval(bgMove, 30);$(this).data("isOver", false);$(this).data("active", true);});function bgMove() {let flag = true;$(".img").each(function () {let $me = $(this);let nowStep = $me.data("nowStep");let maxStep = $me.data("maxStep");let height = $me.data("height");let isOver = $me.data("isOver");let active = $me.data("active");// 有鼠标操作if (active) {flag = false;// 移入if (isOver) {if (nowStep < maxStep - 1) {nowStep++;$me.data("nowStep", nowStep);$me.css({ "background-position-y": nowStep * -height });// 最后一帧 动画要停住} else {$me.data("active", false);}// 移出} else {if (nowStep > 0) {nowStep--;$me.data("nowStep", nowStep);$me.css({ "background-position-y": nowStep * -height });} else {$me.data("active", false);window.clearInterval(this.interval);}}}});// 没有在动的 就清除掉定时器if (flag) {window.clearInterval(this.interval);}}},methods: {},
};
</script><style scoped>
.cd4 {cursor: pointer;background-size: 100%;
}
</style>

引用方式:

<template><div><url:imgUrl="apngData.imgUrl":max="apngData.max":width="apngData.width":height="apngData.height"></url><url:imgUrl="apngData1.imgUrl":width="apngData1.width":height="apngData1.height":max="apngData1.max"></url><url:imgUrl="apngData2.imgUrl":width="apngData2.width":height="apngData2.height":max="apngData2.max"></url></div>
</template>
<script>
import url from "../../components/gif/index.vue";
export default {components: { url },data() {return {apngData: {imgUrl: require("../../assets/images/robit.png"),width: "80px",height: "80px",max: 29,},apngData1: {imgUrl: require("../../assets/images/222.png"),width: "200px",height: "200px",max: 21,},apngData2: {imgUrl: require("../../assets/images/111.png"),width: "30px",height: "30px",max: 21,},};},mounted() {},methods: {},
};
</script>

max:长图一共有多少个小图拼接而成;

width/height:图片宽高;

imgUrl:图片地址;

但是这个方法做出来的图,是行内样式,不适配,跟随屏幕大小改变而改变。

阿里云动图icon vue组件封装(juery)相关推荐

  1. vue使用阿里云矢量图

    vue使用阿里云矢量图 在vue中虽然使用了elementui中的图标,但是会发现图标数量有限,不能够适(zhuang)用(bi)系统,因此在vue中使用阿里云矢量图. 添加矢量图到"购物车 ...

  2. Vue 组件封装之 Carousel 轮播图

    Vue 组件封装之 Carousel 轮播图 一.Carousel 轮播图组件 二.使用案例 三.API 使用指南 四.源代码 一.Carousel 轮播图组件 组件说明: 实现无缝轮播. 效果展示: ...

  3. Vue 组件封装之 Questionnaire 问卷调查

    Vue 组件封装之 Questionnaire 问卷调查 前言 一.Questionnaire 组件 二.使用案例 三.API 使用指南 四.源代码 前言 问卷调查表也是目前前端比较常见的开发项目,目 ...

  4. Vue 组件封装之 List 列表

    Vue 组件封装之 List 列表 一.List 列表 二.使用案例 三.API 使用指南 四.源代码 一.List 列表 组件说明: 实现 List 列表布局排版. 效果展示: 实现的功能: 在一个 ...

  5. Vue 组件封装、组件传值、数据修改

    Vue 组件封装 封装的意义 当一个页面元素过多或者一个组件在多个页面都会被使用,就可以进行组件封装,可以对单个页面解耦,增加代码的可读性,并且多次使用的组件方便修改,只用修改一个地方就能对用到这个组 ...

  6. echarts vue组件封装

    echarts vue组件封装 为什么封装echarts组件 1.原生echarts不是vue组件风格的,不爽 2.原生echarts需要操作dom,麻烦 3.原生echarts没有响应式系统,太菜 ...

  7. 阿里云 部署SpringBoot和Vue项目 亲测可用(第一次部署经验贴)

    阿里云 部署SpringBoot和Vue项目 亲测可用!第一次部署经验贴! 前言:与伙伴一起写了一个项目,但是由于老师要我们部署到服务器上,而我从未有部署过,查看了csdn很多博客,试了好多篇,才成功 ...

  8. Vue 组件封装之 ScrollView 上拉加载更多

    Vue 组件封装之 ScrollView 上拉加载更多 一.ScrollView 上拉加载更多 二.使用案例 三.API 使用指南 四.源代码 一.ScrollView 上拉加载更多 组件说明: 实现 ...

  9. OSS(阿里云)图床搭建

    OSS(阿里云)图床搭建 OSS(阿里云)图床搭建 OSS设置 建立一个Bucket 获取ID和密钥值 下载和配置PicGo 下载 配置阿里云 测试Typroa使用图床 配置信息 测试 错误排查 OS ...

最新文章

  1. 宋体节点hdoj 1520 Anniversary party(树形dp)
  2. windows内存管理概述
  3. vc2008中mfc菜单、控件等汉字显示为问号或乱码的解决方法
  4. Effective Java之使类和成员的可访问性最小化(十三)
  5. bs4爬取的时候有两个标签相同_PYTHON爬取数据储存到excel
  6. vector容器中清空元素(但原来的元素还在)
  7. 经典面试题(26):以下代码将输出的结果是什么?
  8. bitsadmin命令(Windows下载文件命令)
  9. Python高级——赋值、浅拷贝与深拷贝
  10. php app()路由,谷歌云应用引擎app.yaml php72与路由问题
  11. 战之六 使用ADMT 3.2迁移用户和计算机
  12. ffmpeg API变更 2009-03-01—— 2017-05-09变更
  13. C++ HOOK实现全局键盘钩子的详细过程
  14. 微信创建公众号,获取AppID、AppSecret以及accesstoken
  15. dp主机_DP接口与HDMI接口的区别?
  16. E1. Divisible Numbers (easy version)(数学)
  17. python读取excel表格数据
  18. 湘潭大学计算机专业科目,湘潭大学(专业学位)计算机技术研究生考试科目和考研参考书目...
  19. 《狂飙》壁纸大嫂如此惊艳,做成日历壁纸天天看
  20. MySQL 数据库 分组查询

热门文章

  1. Problem 2 西行寺幽幽子(spring.cpp/c/pas)
  2. 五种思维方式助力商人成功
  3. 达龙云计算机,达龙云电脑
  4. 阿迪达斯公布新的公司战略“掌控全场”,聚焦三大重点领域
  5. SQL清空换行符和回车符
  6. 使用财务软件有什么好处
  7. unity内的阴影修复。
  8. js的判断以及图片的点击切换效果
  9. 信息系统项目管理师考点之错题知识汇总
  10. Node.js安装教程(Windows)