好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > 分別使用vue和Android實現長按券碼復制功能

分別使用vue和Android實現長按券碼復制功能

熱門標簽:北京外呼系統咨詢電話 海南人工外呼系統哪家好 怎么去掉地圖標注文字 地圖標注資源分享注冊 廊坊地圖標注申請入口 襄陽外呼增值業務線路解決方案 合肥阿里辦理400電話號 慶陽外呼系統定制開發 高德地圖標注公司位置需要錢嗎

最近分別用vue和Android實現了一個券碼復制功能,長按券碼會在上方彈出一個拷貝的icon提示,點擊icon將券碼內容復制到剪貼板?,F將一些經驗代碼分享給大家以供參考。廢話不多說,先上效果圖

vue實現:

npm install clipboard --save

div class="coupon-count-container" @click="closePopBubble">
 ul>
  li v-for="(couponItem, index) in couponArray" :key="index">
   div class="coupon-code-item">
    img class="pop-bubble-copy" :style="{left: x + 'px', top: y + 'px', visibility: showPopBubble  index === clickedIndex ? 'visible' : 'hidden'}" src="../../assets/couponPayResult/copy_icon.png" @click="copyToClipboard($event, couponArray[clickedIndex].codeNo)">
    span class="code-label">券碼:/span>span class="code-active" v-tap="{longMethod: getPopBubble, params: index}">{{couponItem.codeNo}}/span>
   /div>
  /li>
 /ul>
/div>
data: function() {
 return {
  couponArray: [],
  showPopBubble: false,
  x: 0,
  y: 0,
  clickedIndex: 0
 }
}

.coupon-code-item {
 position: relative;
 padding: 10px 0;
 font-size: 13px;
}

.pop-bubble-copy {
 position: absolute;
 width: 73px;
 height: 39px;
}

.code-label {
 margin-left: 28px;
 margin-right: 26px;
 color: #989898;
}

.code-active {
 color: $color-ff5532;
}

methods: {
 closePopBubble() {
  if (this.showPopBubble) {
   this.showPopBubble = false;
  }
 },
 getPopBubble(e, index) {
  this.showPopBubble = true;
  this.clickedIndex = index;
  // 對x,y的計算結果進行微調
  this.x = e.target.offsetLeft + 30;
  this.y = e.target.offsetTop - 40;
 },
 copyToClipboard(e, text) {
  this.showPopBubble = false;
  var clipboard = new Clipboard(e.target, {text: () => text.replace(/\s/g, "")});
  clipboard.on('success', e => {
   // 釋放內存
   clipboard.off('error');
   clipboard.off('success');
   clipboard.destroy();
  });
  clipboard.on('error', e => {
   // 釋放內存
   clipboard.off('error');
   clipboard.off('success');
   clipboard.destroy();
  });
  clipboard.onClick(e);
 }
}

實現原理是將氣泡彈窗設置為絕對定位,根據券碼的位置來計算氣泡彈窗相對于父元素的位置,其中父元素為每一條item的包裹元素coupon-code-item

本次的實現難點是需要自己手動定義vue的長按點擊事件:

Vue.directive('tap',{
 bind:function(el,binding){
  var startTx, startTy,endTx,endTy,longClick,timeOutEvent,
  longMethod=binding.value.longMethod,
  method = binding.value.method,
  params = binding.value.params,
  propagation=binding.value.propagation;
  el.addEventListener("touchstart",function(e){
   var touch=e.touches[0];
   startTx = touch.clientX;
   startTy = touch.clientY;
   if(longMethod  typeof longMethod==='function'){
    longClick=0;
    timeOutEvent =setTimeout(function(){
    longClick=1;
    longMethod(e, params);
    },500)
   }
   if(!propagation){
    if (e.stopImmediatePropagation) {
    e.stopImmediatePropagation();
    } else {
     e.propagationStopped = true;
    }
   }
  },false );
  el.addEventListener("touchmove",function(e){
   if(longMethod  timeOutEvent){
   clearTimeout(timeOutEvent);
   timeOutEvent = 0;
   }
  },false);
  el.addEventListener("touchend",function(e){
   var touch = e.changedTouches[0];
   endTx = touch.clientX;
   endTy = touch.clientY;
   if(longMethod  timeOutEvent){
    clearTimeout(timeOutEvent);
   }
   if((timeOutEvent!=0  longClick==0)||!longMethod){
    if( Math.abs(startTx - endTx)  6  Math.abs(startTy - endTy)  6){
    if(params instanceof Array){
     method(...params);
    }
    else method(params);
    }
    var focusInput=document.querySelector('input:focus');
    if(focusInput)focusInput.blur();
    var tagName=el.tagName.toLowerCase();
    if(tagName==='input'||tagName==='textarea')el.focus();//獲取焦點
    if(!propagation){
    if (e.stopImmediatePropagation) {
     e.stopImmediatePropagation();
    } else {
     e.propagationStopped = true;
    }
    e.stopPropagation();
    return false;
    }
   }
  },false);
 }
})

Android實現:

Android原生實現起來比較簡單,直接貼代碼

以上兩種實現方法全部完成,為了簡單直接讓UI切了一張氣泡彈窗的顯示圖,如果感興趣也可以用代碼手動繪制

總結

以上所述是小編給大家介紹的分別使用vue和Android實現長按券碼復制功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

您可能感興趣的文章:
  • Android仿QQ長按彈出刪除復制框
  • Android textview 實現長按自由選擇復制功能的方法

標簽:商丘 綿陽 株洲 平頂山 哈密 臺州 鶴崗 鎮江

巨人網絡通訊聲明:本文標題《分別使用vue和Android實現長按券碼復制功能》,本文關鍵詞  分別,使用,vue,和,Android,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《分別使用vue和Android實現長按券碼復制功能》相關的同類信息!
  • 本頁收集關于分別使用vue和Android實現長按券碼復制功能的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 艳妇肥臀疯狂耸动大叫使劲顶| 欧美精品二区三区四区免费看视频| 欧美最猛性free护士hd| 动漫女被3d无遮挡网站| 好色先生tv视频| 97人人澡人人爽人人爽| 真人实拍女处被破www免费| 国产区在线观看视频| 荡女淫春3在线观看| 翁熄粗大白洁| 国产毛多水多女人A片| 亚洲a级黄色片| www中文字幕| 女人裸体跪姿被调教出奶水| 国产精品亚洲AV天堂熟女一级| 叶玉卿情不自禁| 免费看毛片| 全黄特级爱片| 偷拍小视频在线观看免费观看| 插曲的痛一卡二卡三卡| 日片| 亚洲成熟女同—区二区三区| 爱情岛论坛??永久入址| 好湿好舒服| 成人**一极毛片| 国产精品亚洲va在线观看| 成年午夜福利片在线观看| 美女黄页网站免费进入| 亚洲黄色大片| 一级毛片免费在线| 亚洲综合精品国产日c| 别揉我胸啊| 厕所xxxx| 毫无节制1h青柠威士忌| 无码精品视频在线观看XXOO| 亚洲精品网站在线观看| 三上悠亚AV精品免费播放| 色噜噜亚洲精品中文字幕| 8x8x在线播放| 综合久久久| 国产精品久久久久久亚洲影视内衣 |