1.静态效果图

Chrom移动端浏览模式下可拖动按钮处于任意位置,并且点击可旋转按钮

2.代码

export default {

name: 'App',

data(){

return{

/*--------图标样式变量--------------*/

iconrotate:45,//旋转deg

icontranslateX:100,//沿x轴位移px

icontranslateY:100,//沿y轴位移px

/*--------拖动计算变量------------*/

mouseX:0,

mouseY:0,

objX:0,

objY:0,

isDown:false

}

},

methods:{

click:function(){//图标点击事件

if (this.iconrotate==0) {

this.iconrotate=315;

}else {

this.iconrotate=0;

}

},

touchstart:function(obj,e){//finger touch 触发

this.objX = this.icontranslateX;

this.objY = this.icontranslateY;

this.mouseX = e.touches[0].clientX;

this.mouseY = e.touches[0].clientY;

this.isDowm = true;

},

touchmove:function(e){//finger move 触发

let x = e.touches[0].clientX;

let y = e.touches[0].clientY;

if (this.isDowm) {

this.icontranslateX = parseInt(x) - parseInt(this.mouseX) + parseInt(this.objX);

this.icontranslateY = parseInt(y) - parseInt(this.mouseY) + parseInt(this.objY);

}

},

touchend:function(e){//finger from touch to notouch

if (this.isDowm) {

let x = e.touches[0].clientX;

let y = e.touches[0].clientY;

this.icontranslateX = parseInt(x) - parseInt(this.mouseX)+ parseInt(this.objX);

this.icontranslateY = parseInt(y) - parseInt(this.mouseY)+ parseInt(this.objY);

this.isDowm=false;

}

}

},

computed:{

iconstyle:function(){//图标动态样式

let arr = new Array();

arr.push('transform:');//注意:先移动后旋转,实现原地旋转;先旋转后移动,位置按照旋转后的新坐标系确定

arr.push('translateX('+this.icontranslateX+'px) ');

arr.push('translateY('+this.icontranslateY+'px) ');

arr.push('rotate('+this.iconrotate+'deg) ');

return arr.join("");

}

}

}

#app {

font-family: 'Avenir', Helvetica, Arial, sans-serif;

-webkit-font-smoothing: antialiased;

-moz-osx-font-smoothing: grayscale;

text-align: center;

color: #2c3e50;

margin-top: 60px;

}

/*加号*/

.icon-add-50{

position: relative;

box-sizing: border-box;

width: 50px;

height: 50px;

border: 2px solid gray;

border-radius: 50%;

box-shadow:darkgrey 0px 0px 2px 2px;

background-color: CornflowerBlue;

}

.icon-add-50:before{

content: '';

position: absolute;

width: 30px;

height: 2px;

left: 50%;

top: 50%;

margin-left: -15px;

margin-top: -1px;

background-color: white;

}

.icon-add-50:after{

content: '';

position: absolute;

width: 2px;

height: 30px;

left: 50%;

top: 50%;

margin-left: -1px;

margin-top: -15px;

background-color: white;

}

总结

以上所述是小编给大家介绍的Vue实现按钮旋转和移动位置的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

div旋转 vue_Vue实现按钮旋转和移动位置的实例代码相关推荐

  1. html立方体旋转展开,利用CSS实现立方体360度旋转效果实例代码

    静态效果图如下: 示例代码: 复制代码代码如下: * { margin: 0; padding: 0} ul {list-style: none;} ul { width: 200px; height ...

  2. css旋转按钮制作,css3 旋转按钮 使用CSS3创建一个旋转可变色按钮

    想把访客引到另一个页面?添加一个很炫的按钮是个很好的办法 !今天的文章提出了如何使用css3创建一个旋转,旋转,可变色按钮. 这是一个演示旋转的css3按钮.让我们先从html: 复制代码代码如下: ...

  3. iOS手动旋转屏幕、自动旋转屏幕

    有的时候,在iOS下需要实现手动旋转屏幕与自动旋转屏幕的自由切换.比如,在手机竖屏时希望点击按钮使页面横屏,然后当手机屏幕方向发生变化时,页面能正常的契合手机旋转的方向. 1.视图方向旋转:通过vie ...

  4. 【精】iOS6 及其以上版本自动旋转、手动强制旋转方案及布局适配

    1.布局适配方式 本文不讨论哪种布局适配方式最好,此处使用的是 Masonry 纯代码布局适配.(Masonry 底层就是 AutoLayout 的 NSLayoutConstraint) 2.iOS ...

  5. css3动画旋转360度,CSS3旋转动画(360度旋转、旋转放大、放大、移动) 用法和实例...

    CSS3旋转动画(360度旋转.旋转放大.放大.移动) 用法和实例 Internet Explorer 10.Firefox.Opera 支持 transform 属性. Internet Explo ...

  6. 【Android RTMP】NV21 图像旋转处理 ( 问题描述 | 图像顺时针旋转 90 度方案 | YUV 图像旋转细节 | 手机屏幕旋转方向 )

    文章目录 安卓直播推流专栏博客总结 一. NV21 图像格式与 Camera图像传感器方向问题 二. NV21 图像格式视频旋转 1. 图像旋转问题及解决方案 ( 顺时针旋转 90 度 ) 2. NV ...

  7. 关于使用旋转四元数绕轴旋转θ角度时,使用参数是θ/2的理解

    3D点A=(Xa,Ya,Za)绕轴N=(Nx,Ny,Nz)旋转θ角度.将点A扩展到四元数空间,则A=(0,Xa,Ya,Za),此时A点纯四元数(即第一位W分量等于0),处于四维空间中的一个超三维平面上 ...

  8. SpringBoot 集成 thumbnailator (图片缩放,区域裁剪,水印,旋转,保持比例)保姆级教程(含代码)

    Thumbnailator 是 Google 开源的图片处理库,支持:图片缩放,区域裁剪,水印,旋转,保持比例.详细介绍可以百度或官网,话不多说,直接上代码,具体要结合自己的业务需要进行使用(有些复杂 ...

  9. 11旋转编码器原理_旋转编码器的原理是什么?增量式编码器和绝对式编码器有什么区别?...

    先给出结论,最重要的区别在于:增量式编码器没有记忆,断电重启必须回到参考零位,才能找到需要的位置,而绝对式编码器,有记忆,断电重启不用回到零位,即可知道目标所在的位置. 接下来细说一下,主要包含如下的 ...

最新文章

  1. Python 为什么要使用描述符?
  2. C++中transform的用法
  3. [c、c++]宏中#和##的用法(zz)
  4. maven aspectj_使用Spring AspectJ和Maven进行面向方面的编程
  5. 哈哈,这个小游戏很有意思!
  6. 广州云栖大会:阿里云携手虎牙,首次落地直播行业边缘节点及云企业网服务
  7. Win7 格式化U盘
  8. [转载]敏捷开发之Scrum扫盲篇
  9. 微信小程序把玩(三十四)Audio API
  10. 从零实现深度学习框架——逻辑回归中的数值稳定
  11. python 3.X中打包二进制数据存储字符串出错原因分析
  12. VUE时间戳和时间相互转换,使用UI库为Ant Design of Vue
  13. 松翰单片机SN8P2711AD实现AD转换的C语言程序例子
  14. 王垠《清华梦破碎》沉思与反省
  15. ORCAD元件的批量替换与更新
  16. Axure RP 9笔记
  17. python中main.py是什么意思_关于python:什么是__main__.py?
  18. 余弦公式在c语言里面怎么用_C语言中求余弦值的相关函数总结
  19. 12个最佳的响应式网页设计教程,轻松带你入门
  20. 强化练习200题(一)正题:160

热门文章

  1. 室内不能摆的52种致癌植物
  2. ssm车辆维护管理系统java机动车汽车维修站用户信息jsp源码mysql
  3. dateformat系列之日期时间格式
  4. 微信登录——授权登录获取用户信息
  5. 十二 ES json数据格式
  6. matlab 海浪谱,基于海浪谱模型和FFT的海面建模.pdf
  7. 用 Python 实现定时自动化收取蚂蚁森林能量
  8. 产品运营 谈谈BBS
  9. 华为matepro40pro鸿蒙,华为Mate 40 Pro+新版本上市;魅族宣布接入鸿蒙
  10. 【水果蔬菜识别】基于计算机视觉实现水果蔬菜识别含Matlab源码