<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

        基于vue2實(shí)現(xiàn)左滑刪除功能

        來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 22:24:33
        文檔

        基于vue2實(shí)現(xiàn)左滑刪除功能

        基于vue2實(shí)現(xiàn)左滑刪除功能:左滑刪除,很多UI框架里有,比如Mint-UI, Muse-UI等,一開始我們就是用的這兩個(gè),但是我們需求是要:左滑的時(shí)候出現(xiàn)img然后來實(shí)現(xiàn)點(diǎn)擊刪除,如下: 因?yàn)橛肬I框架,還得改底層代碼= =所以,我們小組就直接寫了一個(gè)- -,心累……此組件多地方使用,所以建議還
        推薦度:
        導(dǎo)讀基于vue2實(shí)現(xiàn)左滑刪除功能:左滑刪除,很多UI框架里有,比如Mint-UI, Muse-UI等,一開始我們就是用的這兩個(gè),但是我們需求是要:左滑的時(shí)候出現(xiàn)img然后來實(shí)現(xiàn)點(diǎn)擊刪除,如下: 因?yàn)橛肬I框架,還得改底層代碼= =所以,我們小組就直接寫了一個(gè)- -,心累……此組件多地方使用,所以建議還

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

        因?yàn)橛肬I框架,還得改底層代碼= =所以,我們小組就直接寫了一個(gè)- -,心累……此組件多地方使用,所以建議還是放到common下。

        <template>
         <div class="left-delete">
         <div class="move"
         @touchstart="_touchStart"
         @touchmove="_touchMove"
         @touchend="_touchEnd"
         :style="txtStyle">
         <slot></slot>
         </div>
         <div class="deleteIcon" :style="zIndex" @click.prevent="deleteItem(index)"></div>
         </div>
        </template>
        
        <script>
         export default {
         props: {
         index: Number
         },
         data() {
         return {
         startX: 0, //觸摸位置
         moveX: 0, //滑動(dòng)時(shí)的位置
         disX: 0, //移動(dòng)距離
         txtStyle: '',
         delWidth: 200,
         top: '',
         zIndex: 'z-index:-1',
         }
         },
         methods: {
         _touchStart: function(ev) {
         ev = ev || event;
         if(ev.touches.length == 1){
         // 手指按下的時(shí)候記錄按下的位置
         this.startX = ev.touches[0].clientX;
         console.log(this.startX)
         }
         },
         _touchMove: function(ev) {
         ev = ev || event;
         if(ev.touches.length == 1) {
         // 滑動(dòng)過程中的實(shí)時(shí)位置
         this.moveX = ev.touches[0].clientX
         // 滑動(dòng)過程中實(shí)時(shí)計(jì)算滑動(dòng)距離
         this.disX = this.startX - this.moveX;
         // console.log('disX==>',this.disX)
         // 如果是向右滑動(dòng)或者只是點(diǎn)擊,不改變滑動(dòng)位置
         if(this.disX < 0 || this.disX == 0) {
         // console.log('沒有移動(dòng)');
         this.txtStyle = "transform:translateX(0rem)";
         }else if (this.disX > 0) {
        如果是向左滑動(dòng),則實(shí)時(shí)給這個(gè)根元素一個(gè)向左的偏移-left,當(dāng)偏移量到達(dá)固定值delWidth時(shí),固定元素的偏移量為 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)
         // 手指移動(dòng)結(jié)束后的水平位置
         let endX = event.changedTouches[0].clientX;
         // 觸摸開始與結(jié)束,手指移動(dòng)的距離
         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>
        
        

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

        <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('后臺(tái)接口,請(qǐng)求數(shù)據(jù)')//此處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>
        
        

        然后就完成了。

        聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        基于vue2實(shí)現(xiàn)左滑刪除功能

        基于vue2實(shí)現(xiàn)左滑刪除功能:左滑刪除,很多UI框架里有,比如Mint-UI, Muse-UI等,一開始我們就是用的這兩個(gè),但是我們需求是要:左滑的時(shí)候出現(xiàn)img然后來實(shí)現(xiàn)點(diǎn)擊刪除,如下: 因?yàn)橛肬I框架,還得改底層代碼= =所以,我們小組就直接寫了一個(gè)- -,心累……此組件多地方使用,所以建議還
        推薦度:
        標(biāo)簽: VUE 左滑刪除 基于vue
        • 熱門焦點(diǎn)

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 在线观看免费亚洲| 国内免费高清在线观看| 亚洲AV无码成人精品区大在线| 亚洲中文字幕乱码AV波多JI| 一个人看www在线高清免费看 | 国产亚洲福利一区二区免费看| 好男人视频社区精品免费| 亚洲日本天堂在线| 日本一区免费电影| 理论片在线观看免费| 亚洲无码视频在线| 你懂的免费在线观看| 亚洲AV成人片色在线观看高潮 | 亚洲资源最新版在线观看| 成人免费视频69| 亚洲中文字幕乱码熟女在线| 韩国免费三片在线视频| 免费中文字幕视频| 亚洲成AV人片在| 好男人www免费高清视频在线| 在线播放亚洲精品| 亚洲色WWW成人永久网址| 91香蕉在线观看免费高清| 亚洲国产成人精品青青草原| 日本大片在线看黄a∨免费| 全部一级一级毛片免费看| 亚洲国产精品无码av| 亚洲成人免费在线观看| 亚洲成年网站在线观看| 亚洲精品综合久久| 2019中文字幕在线电影免费| 亚洲精品9999久久久久无码| 国产精品亚洲综合一区| 91黑丝国产线观看免费| 麻豆亚洲AV成人无码久久精品 | 亚洲伊人久久大香线蕉结合| 四虎永久在线免费观看| 三年片在线观看免费观看大全一| 精品国产日韩久久亚洲| 色噜噜AV亚洲色一区二区| 思思re热免费精品视频66|