最近,作了一個切圖的小項目html
主要內容是微信號的推廣頁面,上面會有精美的圖片和微信號:)node
點擊按鈕,會複製到粘貼板上,本身去微信裏面粘貼搜索:),懶人會進行一系列複雜操做麼,不看好git
首先,百度了一下,看中clipboard庫,純js兼容手機端,好激動:)github
clibboard的GitHub地址,使用很是簡單,本身看demo目錄的內容,源碼看的方,仍是不知道如何實現的,求教web
主要思路,就點擊按鈕,自動將文本複製到剪貼板。ajax
選擇使用其中的function,可使用ajax從服務端獲取微信號json
官網的方案微信
1 new Clipboard('.btn', { 2 text: function(trigger) { 3 return trigger.getAttribute('aria-label'); 4 } 5 });
Now, you need to instantiate it by passing a DOM selector, HTML element, or list of HTML elements.ide
能夠選擇三種方式,來肯定點擊哪兒觸發點擊。測試
根據業務須要,使用zepto來獲取json
1 // 添加獲取json 2 Zepto(function ($) { 3 $.getJSON('account/data.json', '?time='+new Date().getTime(), function (data) { 4 let name = data.name; 5 6 document.getElementById("num").innerHTML = name; 7 8 var clipboard = new Clipboard('.btn', { 9 text: () => name 10 }); 11 12 clipboard.on('success', (e) => {console.log(e) 13 alert('微信號已複製,請打開微信,點擊右上角+號,選擇添加朋友,粘貼搜索')}); 14 15 clipboard.on('error', (e) => console.log(e)); 16 });
效果以下:
發現點擊,有彈窗,仔細觀察會發現,在body底部出現了一串代碼,hack方式,隱藏文本
下面是簡單的html,有興趣的同窗能夠本身試試
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>測試</title> 6 <script src="dist/clipboard.min.js"></script> 7 <script src="dist/zepto.min.js"></script> 8 <script src="static/js/changeAccount.js"></script> 9 <style> 10 .bg{ 11 width:100%; 12 height: 1500px; 13 background-color: #ccc; 14 text-justify: inter-cluster; 15 font-size: 100px; 16 } 17 </style> 18 </head> 19 <body> 20 <div class="btn"> 21 <div class="bg"> 22 背景 23 </div> 24 <p id="num"></p> 25 </div> 26 </body> 27 </html>
在手機點擊無任何效果,這個大坑踩了很久才知道,
具體怎麼踩得很差意思說了,取巧終究仍是要吃虧,,,
仔細地又看了一遍demo,發現多數都是<button class="btn">
索性照着官方來,
<button class="bg">
背景
</button>
哎,心累,早這樣不就行了,至於爲何剛開始不使用button,都是設計稿的鍋,居然沒有按鈕,還要
能點擊複製,
頁面有不少背景圖片和內容,初步想法是,將按鈕設置全屏,z-index=-1;
發現,紅,綠區域點擊無效,灰色區域能夠複製,此時確信了,手機端點擊是沒法穿透的,只能獲取最上面一層
改變一下思路,將按鈕放在最上一層,不就能夠了嗎,你想到什麼了
1 z-index:999; 2 opacity:0;
最後,想看完整項目的,請移步我的GitHub