<!-- 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. 2019CSP-S初赛知识点汇总

    0x00 基本算法 0x01 位运算 0x02 前缀和与差分 0x03 二分 0x04 倍增 0x05 排序 0x06 离散化 0x07 高精度 0x10 数据结构 0x11 栈和队列 0x12 链表 ...

  2. 针对于linux初学者的学习(摘自网络端)

    一. 选择适合自己的Linux发行版谈到linux的发行版本,太多了,可能谁也不能给出一个准确的数字,但是有一点是可以肯定的,linux正在变得越来越流行, 面对这么多的Linux 发行版,打算从其他 ...

  3. qt sql 数据库操作

    1.  连接数据库 mysql连接: QSqlDatabase mysql_db=QSqlDatabase::addDatabase("QMYSQL","mysql_co ...

  4. What is the difference between XSS and CSRF from their execution perspective?

    What is the difference between XSS and CSRF from their execution perspective? https://www.quora.com/ ...

  5. OpenGL ES: (2) OpenGL ES 与 EGL、GLSL的关系

    OpenGL ES 是负责 GPU 工作的,目的是通过 GPU 计算,得到一张图片,这张图片在内存中其实就是一块 buffer,存储有每个点的颜色信息等.而这张图片最终是要显示到屏幕上,所以还需要具体 ...

  6. 最新解决Chrome(版本76.0.3809.100) “请停用以开发者模式运行的扩展程序”的方法

    最新解决Chrome(版本76.0.3809.100) “请停用以开发者模式运行的扩展程序”的方法 最近在远景论坛上发现了最新的解决Chrome浏览器提示:请停用以开发者模式运行的扩展程序的问题.该方 ...

  7. “用户名不在 sudoers文件中,此事将被报告” 解决方案

    第一次接触Docker是在CentOS上搭建的,没想到第一步就被弄懵了:执行sudo时提示“XXX 不在sudoers文件中,此事将被报告”. 这才刚开始就遇到个未知问题,于是上网找了下解决方法,嗨, ...

  8. Android:Recents和AMS中历史任务的区别

    1.1 任务和返回栈 - 实际数据模型  这个是指在调度体系里实际保存的TaskRecord实例,而ActivityRecord-TaskRecord-ActivityStack之间的关系建议看官方文 ...

  9. 分析CSS布局神器

    只要在页面下加入如下css,整个css布局就清晰了 * { background-color: rgba(255,0,0,.2); } * * { background-color: rgba(0,2 ...

  10. PPT做交互效果

    1 做交互效果(点击一个按钮,弹出某个框或者跳转到某个页面)其实就是若干个PPT页面,利用给按钮增加超链接或者动作 达到点击一个按钮 跳转到另外一个PPT的效果. 2 选择一个形状组件(或者其他组件) ...