• app实现长按出现弹窗 或者 出现 删除


    <!-- Kpi -->
    <template>
    <div class="kpi_container">
    <nav-bar :title="title"></nav-bar>
    <scroll class="content" :data="list">
    <ul class="list-wp">
    <li v-for="(item,index) in list" :key="index" @touchstart.prevent="touchinUk(index,item.id,$event)" @touchend.prevent="cleartime(index)">  //长按事件 和 长按结束事件清楚定时器
    <van-image
    width="100%"
    height="100%"
    src="http://y.gtimg.cn/music/common/upload/MUSIC_FOCUS/1540527.jpg"
    />
    <div class="text">
    <h3 class="title">{{item.title}}</h3>
    <span class="number">{{item.num}}</span>
     //核心思想(遍历的时候直接就给每一个li添加上遮罩层 或者 弹框  然后用v-show判断)
    </div>
    <div class="mask" v-show="isID==item.id">   //这里用赋值完毕的id 和 判断 后台的id是否相等
    <a href="javascript:;" @click="del(item.id)">删除</a>  //这里是遮罩层里面的删除
    </div>
    </li>
    </ul>
    </scroll>
    </div>
    </template>

    <script>
    import NavBar from "@/components/NavBar/NavBar";
    import scroll from "@/base/scroll";
    export default {
    data() {
    return {
    title: "KPI订阅",
    list: [
    {id:0, title: "今日供水量", num: "56m³" },
    {id:1, title: "抄表完成总量", num: "5581个" },
    {id:2, title: "应急抢修上报总量", num: "56个" },
    {id:3, title: "设备检测总数", num: "127个" }
    ],
    isID:-1
    };
    },
    methods: {
    touchinUk(index,id,e) {
    // console.log(e.target.parentNode.parentNode);
    // console.log(index,id);
    // var that = this
    clearInterval(this.Loop); //再次清空定时器,防止重复注册定时器
    this.Loop = setTimeout(
    function() {
    console.log(this.isID)
    this.isID = id  当长按的时候 赋值id
    if(index==id){     //后面可以不写 不过如果是写遮罩层 需要弹框 需要判断 
    console.log(e.target.parentNode.parentNode);
    e.target.parentNode.parentNode.style.position = "relative"   

    // window.confirm("是否删除")
    // console.log(this)
    }
     
    // this.$dialog
    // .confirm({
    // message: "是否删除地址"
    // })
    // .then(() => {
    // console.log("删除");
    // this.arr.splice(index, 1);
    // })
    // .catch(() => {
    // // on cancel
    // console.log("不删");
    // });
    }.bind(this),
    1000
    );
    },
    del(id){
    console.log(id)
    },
    cleartime(index) {
    // 这个方法主要是用来将每次手指移出之后将计时器清零
    clearInterval(this.Loop);
    }
    },
    components: {
    NavBar,
    scroll
    }
    };
    </script>
    <style scoped>
    .mask {    //这是遮罩层的样式
    position: absolute;
    top: 0;
    left: 0;
    height: 200px;
    400px;
    background-color: rgba(0,0,0,.5);
    color: #fff;
    100%;
    height: 100%;
    text-align: center;
    display: block;
     
    }
    .mask a {  //这是遮罩层的样式 里面的删除按钮
    color: #fff;
    text-decoration: none;
    border: 1px solid #ccc;
    border-radius: 27px;
    56px;
    height: 23px;
    text-align: center;
    line-height: 208px;
    font-size: 23px;
    padding: 6px 17px;
    }
    .dilog {
    100%;
    height: 100%;
    background: rgba(0,0,0,.3);
    position: absolute;
    left: 0;
    top: 0;
    }
    .kpi_container {
    position: relative;
    100%;
    }
    .kpi_container .content {
    position: fixed;
    top: 46px;
    bottom: 50px;
    100%;
    overflow: hidden;
    padding: 0 35px;
    box-sizing: border-box;
    }
    .kpi_container .content .list-wp {
    padding: 20px 0;
    }
    .kpi_container .content .list-wp li {
    100%;
    height: 216px;
    background: #eee;
    border-radius: 20px;
    margin-bottom: 32px;
    overflow: hidden;
    position: relative;
    }
    .kpi_container .content .list-wp li .text {
    position: absolute;
    left: 212px;
    top: 50%;
    transform: translate(0, -50%);
    }
    .kpi_container .content .list-wp li .text .title,
    .number {
    font-size: 40px;
    font-weight: 500;
    color: rgba(255, 255, 255, 1);
    }
    </style>
  • 相关阅读:
    sublime生成html快捷标签布局
    vue.js选项卡动态组件
    textarea内容限制字数
    60s验证等待
    vue.js显示隐藏
    CSS强制性换行
    Ultra Pull To Refresh下拉刷新
    Open经验库网址
    Fresco实例
    解决LinearLayout中控件不能居右对齐
  • 原文地址:https://www.cnblogs.com/xiaoxiaoxun/p/11289307.html
Copyright © 2020-2023  润新知