<!-- 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;
width: 400px;
background-color: rgba(0,0,0,.5);
color: #fff;
width: 100%;
height: 100%;
text-align: center;
display: block;
 
}
.mask a {  //这是遮罩层的样式 里面的删除按钮
color: #fff;
text-decoration: none;
border: 1px solid #ccc;
border-radius: 27px;
width: 56px;
height: 23px;
text-align: center;
line-height: 208px;
font-size: 23px;
padding: 6px 17px;
}
.dilog {
width: 100%;
height: 100%;
background: rgba(0,0,0,.3);
position: absolute;
left: 0;
top: 0;
}
.kpi_container {
position: relative;
width: 100%;
}
.kpi_container .content {
position: fixed;
top: 46px;
bottom: 50px;
width: 100%;
overflow: hidden;
padding: 0 35px;
box-sizing: border-box;
}
.kpi_container .content .list-wp {
padding: 20px 0;
}
.kpi_container .content .list-wp li {
width: 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>

app实现长按出现弹窗 或者 出现 删除的更多相关文章

  1. ajax“显示弹窗详情”和“删除”功能练习

    1.查看详细信息,以弹窗的形式显示,使用ajax 2.批量删除 “查询”功能可以参考前面的文章,这里只讲解ajax“显示弹窗详情”和“删除”功能 第一:在body中的代码 <title>a ...

  2. 运行APP显示两个APP图标,一个打不开,删除一个后,另一个也会消失。

    可能原因:你添加了两个intent-filter 的LAUNCHER 事件,这种情况尤其在一个项目多个module的时候容易出现 <intent-filter>               ...

  3. 解决Windows路径太长的目录以及文件名超长删除的问题

    因Windows文件夹有长度限制,在路径太深,长度达到600多个字符时,删除文件时出现报错"源文件名长度大于文件系统支持的长度.请尝试将其移动到具有较短路径名称的位置,或者在执行此操作前尝试 ...

  4. 四种常见的App弹窗设计,你有仔细注意观察吗?

    弹窗又称为对话框,是App与用户进行交互的常见方式之一.弹窗分为模态弹窗和非模态弹窗两种,两者的区别在于需不需要用户对其进行回应.模态弹窗会打断用户的正常操作,要求用户必须对其进行回应,否则不能继续其 ...

  5. App Store评论优化,让你的APP评论上涨

    App Store评论优化怎么做 App Store评论优化,让你的APP评论上涨 关于「ASO评论优化」,主要分为三块.换评论,买评论,引导用户写评论. 可能有些刚接触ASO的朋友会问,为什么要给A ...

  6. Mac app 破解之路

    6年之前一直做过一些内存挂,脚本挂.都是比较低级的技术. 这几年期间,断断续续利用业余时间学了一些汇编的知识,当时只是想着破解游戏. 所有的黑技术都是业余自学的,没有老师可以问,只能百度和自己领悟,比 ...

  7. 自定义Dialog布局的弹窗功能的简单实现

    package com.loaderman.dialogdemo; import android.os.Bundle; import android.support.v7.app.AlertDialo ...

  8. svelte组件:Svelte自定义弹窗Popup组件|svelte移动端弹框组件

    基于Svelte3.x自定义多功能svPopup弹出框组件(组件式+函数式) 前几天有分享一个svelte自定义tabbar+navbar组件,今天继续带来svelte自定义弹窗组件. svPopup ...

  9. Android仿qq聊天记录长按删除功能效果

    最近项目在做IM即时通讯开发,在删除聊天列表的时候跟删除聊天详细信息的时候,产品经理想要跟ios一样,在当前选中行上方弹出一个删除窗口.于是先从网上找demo,找了一个发现是Dialog做的,我感觉没 ...

随机推荐

  1. php 验证中文和部分自定义符号

    $str = '54787dDp中s-:"'; $rule ="/^[\x{4e00}-\x{9fa5}A-Za-z0-9`·!!@#$\¥%…^&*(())\-+=“.\ ...

  2. OpenJudge计算概论-年龄与疾病

    /*========================================================== 年龄与疾病 总时间限制: 1000ms 内存限制: 65536kB 描述 某医 ...

  3. OpenGL ES: (3) EGL、EGL绘图的基本步骤、EGLSurface、ANativeWindow

    1. EGL概述 EGL 是 OpenGL ES 渲染 API 和本地窗口系统(native platform window system)之间的一个中间接口层,它主要由系统制造商实现. EGL提供如 ...

  4. php实现手机定位功能的实例

    最近在做通过定位手机用户,进行消息推送,经过分析最终做法如下 mobile.php文件 当用户当手机访问该页面时,通过实现页面表单隐藏封装自动提交获取手机浏览器经纬度并post给服务器 1 2 3 4 ...

  5. Flutter 中使用Future消除Callback Hell

    /先分别定义各个异步任务 Future<String> login(String userName, String pwd){ ... //用户登录 }; Future<String ...

  6. Transaction check error:

    Transaction check error:  file /etc/my.cnf from install of MariaDB-common-10.3.16-1.el7.centos.x86_6 ...

  7. 123457123456#0#-----com.threeapp.headsoccer----宝宝头球大战

    com.threeapp.headsoccer----宝宝头球大战

  8. Django中使用Bootstrap----带view.py视图函数(也就是项目下的脚本文件)

    一.Django中使用Bootstrap 1.首先建立工程,建立工程请参照:https://www.cnblogs.com/effortsing/p/10394511.html 2.在Firstdja ...

  9. sql的游标用法举例(Cursor)

    sql的游标用法举例 ), ) Declare authors_cursor Cursor For Select Name,TrueName From Account Open authors_cur ...

  10. jquery图片播放插件Fancybox使用详解

    今天给大家介绍的jquery图片播放插件叫Fancybox,相比LightBox来说,Fancybox相对庞大点,配置也更丰富一些,相信你会喜欢的. Fancybox的项目主页地址:http://fa ...