最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue實現(xiàn)按鈕旋轉和移動位置的實例代碼

 更新時間:2018年08月09日 11:04:08   作者:swiftlinlei  
這篇文章主要介紹了Vue實現(xiàn)按鈕旋轉和移動位置的實例代碼,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下

1.靜態(tài)效果圖

Chrom移動端瀏覽模式下可拖動按鈕處于任意位置,并且點擊可旋轉按鈕

2.代碼

<template>
 <div id="app">
  <div class="icon-add-50" :style="iconstyle" @click='click' @touchmove='touchmove' @touchstart='touchstart(this,$event)' @touchend='touchend'></div>
 </div>
</template>
<script>
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 觸發(fā)
   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 觸發(fā)
   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(){//圖標動態(tài)樣式
   let arr = new Array();
   arr.push('transform:');//注意:先移動后旋轉,實現(xiàn)原地旋轉;先旋轉后移動,位置按照旋轉后的新坐標系確定
   arr.push('translateX('+this.icontranslateX+'px) ');
   arr.push('translateY('+this.icontranslateY+'px) ');
   arr.push('rotate('+this.iconrotate+'deg) ');
   return arr.join("");
  }
 }
}
</script>
<style>
#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;
}
</style>

總結

以上所述是小編給大家介紹的Vue實現(xiàn)按鈕旋轉和移動位置的實例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關文章

  • vite打包出現(xiàn)?"default"?is?not?exported?by?"node_modules/...問題解決辦法

    vite打包出現(xiàn)?"default"?is?not?exported?by?"

    這篇文章主要給大家介紹了關于vite打包出現(xiàn)?"default"?is?not?exported?by?"node_modules/...問題的解決辦法,文中通過代碼將解決的辦法介紹的非常詳細,對同樣遇到這個問題的朋友具有一定的參考借鑒價值,需要的朋友可以參考下
    2024-06-06
  • 詳解在vue-cli中引用jQuery、bootstrap以及使用sass、less編寫css

    詳解在vue-cli中引用jQuery、bootstrap以及使用sass、less編寫css

    這篇文章主要介紹了詳解在vue-cli中引用jQuery、bootstrap以及使用sass、less編寫css,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • 實例詳解vue.js淺度監(jiān)聽和深度監(jiān)聽及watch用法

    實例詳解vue.js淺度監(jiān)聽和深度監(jiān)聽及watch用法

    這篇文章主要介紹了vue.js淺度監(jiān)聽和深度監(jiān)聽及watch用法,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友參考下吧
    2018-08-08
  • Vue3中Hooks函數(shù)的使用及封裝思想詳解

    Vue3中Hooks函數(shù)的使用及封裝思想詳解

    Vue?3中的Hooks函數(shù)是一種用于在組件中共享可復用邏輯的方式,簡單來說,就是將單獨功能的js代碼抽離出來,?加工成公共函數(shù),從而達到邏輯復用,下面小編就來和大家聊聊Hooks函數(shù)的使用及封裝思想吧
    2023-06-06
  • vue 實現(xiàn)類似淘寶星級評分的示例

    vue 實現(xiàn)類似淘寶星級評分的示例

    下面小編就為大家分享一篇vue 實現(xiàn)類似淘寶星級評分的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • vuex state及mapState的基礎用法詳解

    vuex state及mapState的基礎用法詳解

    這篇文章主要介紹了vuex state及mapState的基礎用法詳解,本文通過實例代碼相結合的形式給大家介紹的非常詳細,需要的朋友跟隨腳本之家小編一起學習吧
    2018-04-04
  • vue使用canvas實現(xiàn)移動端手寫簽名

    vue使用canvas實現(xiàn)移動端手寫簽名

    這篇文章主要為大家詳細介紹了基于vue使用canvas實現(xiàn)移動端手寫簽名,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-09-09
  • 一文詳解Vue中nextTick的原理與作用

    一文詳解Vue中nextTick的原理與作用

    Vue的nextTick方法是用于在DOM更新后執(zhí)行回調的工具函數(shù),它的作用是在當前JavaScript執(zhí)行環(huán)境中延遲執(zhí)行回調,以確保在下次DOM更新循環(huán)之前,可以訪問到更新后的DOM,本文就給大家介紹一下Vue nextTick原理與作用,需要的朋友可以參考下
    2023-08-08
  • vue @ ~ 相對路徑 路徑別名設置方式

    vue @ ~ 相對路徑 路徑別名設置方式

    這篇文章主要介紹了vue @ ~ 相對路徑 路徑別名設置方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • Vue+ECharts+高德地圖API實現(xiàn)天氣預報數(shù)據(jù)可視化的教程

    Vue+ECharts+高德地圖API實現(xiàn)天氣預報數(shù)據(jù)可視化的教程

    所謂數(shù)據(jù)可視化,我們可以理解為從宏觀角度來看一眼就能看出來整個數(shù)據(jù)的占比,走向,對于數(shù)據(jù)可視化,很多互聯(lián)網(wǎng)公司是很看重這一塊的,包括大廠,本就將給大家介紹如何通過Vue+ECharts+高德地圖API實現(xiàn)天氣預報數(shù)據(jù)可視化
    2023-06-06

最新評論

云浮市| 上饶县| 利津县| 延安市| 汾西县| 长岭县| 五常市| 丰城市| 精河县| 仁怀市| 堆龙德庆县| 木里| 固安县| 浑源县| 延川县| 盐津县| 楚雄市| 米泉市| 遂宁市| 顺昌县| 宁德市| 五峰| 千阳县| 项城市| 灯塔市| 富川| 济源市| 金平| 亚东县| 即墨市| 图片| 罗田县| 法库县| 凤山县| 固安县| 高要市| 玉田县| 景德镇市| 繁峙县| 潍坊市| 沐川县|