欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

vue2如何實現(xiàn)左滑刪除功能

這篇文章主要介紹vue2如何實現(xiàn)左滑刪除功能,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

創(chuàng)新互聯(lián)服務項目包括碌曲網站建設、碌曲網站制作、碌曲網頁制作以及碌曲網絡營銷策劃等。多年來,我們專注于互聯(lián)網行業(yè),利用自身積累的技術優(yōu)勢、行業(yè)經驗、深度合作伙伴關系等,向廣大中小型企業(yè)、政府機構等提供互聯(lián)網行業(yè)的解決方案,碌曲網站推廣取得了明顯的社會效益與經濟效益。目前,我們服務的客戶以成都為中心已經輻射到碌曲省份的部分城市,未來相信會繼續(xù)擴大服務區(qū)域并繼續(xù)獲得客戶的支持與信任!

左滑刪除,很多UI框架里有,比如Mint-UI, Muse-UI等,一開始我們就是用的這兩個,但是我們需求是要:左滑的時候出現(xiàn)img然后來實現(xiàn)點擊刪除,如下:

vue2如何實現(xiàn)左滑刪除功能

因為用UI框架,還得改底層代碼= =所以,我們小組就直接寫了一個- -,心累……此組件多地方使用,所以建議還是放到common下。。

<template>
  <div class="left-delete">
    <div class="move"
       @touchstart="_touchStart"
       @touchmove="_touchMove"
       @touchend="_touchEnd"
       :>
      <slot></slot>
    </div>
    <div class="deleteIcon" : @click.prevent="deleteItem(index)"></div>
  </div>
</template>

<script>
  export default {
    props: {
      index: Number
    },
    data() {
      return {
        startX: 0,    //觸摸位置
         moveX: 0,    //滑動時的位置
         disX: 0,    //移動距離
         txtStyle: '',
        delWidth: 200,
        top: '',
        zIndex: 'z-index:-1',
      }
    },
    methods: {
      _touchStart: function(ev) {
        ev = ev || event;
        if(ev.touches.length == 1){
          // 手指按下的時候記錄按下的位置
          this.startX = ev.touches[0].clientX;
          console.log(this.startX)
        }
      },
      _touchMove: function(ev) {
        ev = ev || event;
        if(ev.touches.length == 1) {
          // 滑動過程中的實時位置
          this.moveX = ev.touches[0].clientX
          // 滑動過程中實時計算滑動距離
          this.disX = this.startX - this.moveX;
          // console.log('disX==>',this.disX)
          // 如果是向右滑動或者只是點擊,不改變滑動位置
          if(this.disX < 0 || this.disX == 0) {
            // console.log('沒有移動');
            this.txtStyle = "transform:translateX(0rem)";
          }else if (this.disX > 0) {
如果是向左滑動,則實時給這個根元素一個向左的偏移-left,當偏移量到達固定值delWidth時,固定元素的偏移量為 delWidth
            this.txtStyle = "transform:translateX(-" + this.disX/100 + "rem)";
            if (this.disX >= this.delWidth/100) {
              this.txtStyle = "transform:translateX(-" + this.delWidth/100 + "rem)";
              this.zIndex = "z-index:" + 10 + "rem";
            }
          }
        }
      },
      _touchEnd: function(ev) {
        if (event.changedTouches.length == 1) {
          this.startX = 0;
          this.zIndex = "z-index:" + -1 + "rem";
          console.log(event.changedTouches[0].clientX)
          // 手指移動結束后的水平位置
          let endX = event.changedTouches[0].clientX;
          // 觸摸開始與結束,手指移動的距離
          this.disX = this.startX - endX;
          //如果距離小于刪除按鈕的1/2,不顯示刪除按鈕
        }
      },
      deleteItem: function(index) {
        this.$emit('deleteItem', index);
      }
    }
  }
</script>

<style>
  .left-delete{
    width:100%;
    height:100%;
    position:relative;
    z-index:2;
  }
  .move{
    position: relative;
  }
  .deleteIcon{
    width: 2rem;
    height:100%;
    position: absolute;
    right:0;
    top:0;
    background:url(./../../assets/main/4.png) no-repeat;
    background-size: contain;
  }
</style>

然后哪個頁面需要,哪個頁面引入就好。比如myCollect頁面需要,那么如下:

<template>
  <section class="myCollect">
 <section>
      <div v-for="(item,index) in collectionList">
        <left-slider :index="index" @deleteItem="deleteItem">
          <Financial :item="item" :index="index"></Financial>
        </left-slider>
      </div>
    </section>
  </section>
</template>
<script>
  import api from './../../fetch/api';
  import { mapGetters } from 'vuex';

  import Financial from './../common/financial.vue';
  import LeftSlider from './../common/leftSlider.vue';

  export default {
    name: 'MyCollect',
    props: {
      item: Object,
      index: Number
    },
    components: {
      Financial,
      LeftSlider
    },
    data() {
      return {

      }
    },
    created() {
      this.getCollectionList();
    },
    methods: {

    },
    computed: {
        ...mapGetters([
          'getContextPathSrc',
          'sessionId',
          'token'
        ]),
  },
  methods: {
    // 刪除
    deleteItem: function(index) {
      api.commonApi('后臺接口,請求數(shù)據')//此處api是封裝的axios,詳情看文章:vue2+vuex+axios即可
          .then(res => {
        console.debug("REQ_ADD_STORE.res.data.result -> " + res.data.result);
      this.collectionList.splice(index, 1);
    });
    }
  },
  mounted() {

  }
  }
</script>

然后就完成了。

以上是“vue2如何實現(xiàn)左滑刪除功能”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

分享標題:vue2如何實現(xiàn)左滑刪除功能
標題網址:http://aaarwkj.com/article28/ipdhcp.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、品牌網站建設、做網站、全網營銷推廣、網站設計網站收錄

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都網站建設公司
日韩不卡的一区免费视频| 国产精品六区久久综合亚洲av| 国产精品久久一级黄片| 日韩欧美人妻中文字幕| 日韩av在线不卡一区二区| 欧美日韩精品人妻中文| 国产实拍之强伦奸在线观看| 日本免费熟女一区二区| 亚洲天堂免费在线播放| sedoge在线播放免费有码| 一区二区三区蜜桃91| 六十路人妻一区二区三区| 天堂免费av在线播放| 欧美日韩亚洲精品久久| 亚洲综合国产一二三四五区| 午夜视频在线播放一区二区三区 | 精品蜜桃臀91人少妇| 不卡在线视频中文字幕| 亚洲禁看av一区不卡| 亚洲免费三级黄色片| 中文字幕乱码亚洲2019| 校园春色亚洲一区二区| 国产日韩欧美一区二区三区四区 | 免费爱爱视频在线观看| 在线观看高清国产黄色片| 人妻在线中文字幕一区 | 日韩专区欧美二区国产| 亚洲国产精品成人久久蜜臀| 久久精品国产91麻豆| 日韩精品一区二区91| 欧美高清视频免费播放| 久久精品中文字幕人妻| 99久久免费看国产精品| 欧美日韩另类综合一区| 禁止18岁以下观看的视频| 五月天丁香婷婷深爱| 国产第一页第二页在线| 免费亚洲网站在线观看视频| 九九九热这里只有精品| 亚洲国产精品有码专区| 伊人久久精品一区二区|