mirror of https://gitlab.com/curben/blog
				
				
				
			Add 'Copy' button to code snippet
https://webdesign.tutsplus.com/tutorials/copy-to-clipboard-made-easy-with-clipboardjs--cms-25086 https://davidwalsh.name/clipboard
This commit is contained in:
		
							parent
							
								
									45b555f745
								
							
						
					
					
						commit
						4fb0adb24a
					
				| 
						 | 
					@ -24,48 +24,46 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  $(document).ready(function() {
 | 
					  $(document).ready(function() {
 | 
				
			||||||
	  var QRBox	=	$('#QRBox');
 | 
					 | 
				
			||||||
	  var MainBox	=	$('.MainBox');
 | 
					 | 
				
			||||||
	  var BTCQR	=	$('#BTCQR');
 | 
					 | 
				
			||||||
	  var AliPayQR	=	$('#AliPayQR');
 | 
					 | 
				
			||||||
	  var WeChatQR	=	$('#WeChatQR');
 | 
					 | 
				
			||||||
    var currentQR;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	  function showQR(QR) {
 | 
					    // Add "Copy" button to code snippet
 | 
				
			||||||
		  $('#DonateText,#donateBox,#github').addClass('blur');
 | 
					    var pre = document.getElementsByTagName('pre');
 | 
				
			||||||
      currentQR = QR;
 | 
					
 | 
				
			||||||
		  QRBox.fadeIn(300,function(argument) {
 | 
					    for (var i = 0; i < pre.length; i++) {
 | 
				
			||||||
			  QR.addClass('showQR');
 | 
					      var button = document.createElement('button');
 | 
				
			||||||
		  });
 | 
					        button.className = 'copy-button';
 | 
				
			||||||
 | 
					        button.textContent = 'Copy';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        pre[i].appendChild(button);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	  $('#donateBox>li').click(function(event) {
 | 
					    var copyCode = new ClipboardJS('.copy-button', {
 | 
				
			||||||
		  var thisID	=	$(this).attr('id');
 | 
					      target: function(trigger) {
 | 
				
			||||||
		  if (thisID === 'BTC') {
 | 
					          return trigger.previousElementSibling;
 | 
				
			||||||
			  showQR(BTCQR);
 | 
					 | 
				
			||||||
			  new Clipboard('#BTCBn');
 | 
					 | 
				
			||||||
		  } else if (thisID === 'AliPay') {
 | 
					 | 
				
			||||||
			  showQR(AliPayQR);
 | 
					 | 
				
			||||||
		  } else if (thisID === 'WeChat') {
 | 
					 | 
				
			||||||
			  showQR(WeChatQR);
 | 
					 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	  MainBox.click(function(event) {
 | 
					    copyCode.on('success', function(event) {
 | 
				
			||||||
		  if (currentQR) currentQR.removeClass('showQR').addClass('hideQR');
 | 
					      event.clearSelection();
 | 
				
			||||||
		  setTimeout (function(a) {
 | 
					      event.trigger.textContent = 'Copied';
 | 
				
			||||||
			  QRBox.fadeOut(300,function(argument) {
 | 
					      window.setTimeout(function() {
 | 
				
			||||||
				  MainBox.removeClass('hideQR');
 | 
					          event.trigger.textContent = 'Copy';
 | 
				
			||||||
			  });
 | 
					      }, 2000);
 | 
				
			||||||
			  $('#DonateText,#donateBox,#github').removeClass('blur');
 | 
					 | 
				
			||||||
		  },600);
 | 
					 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    copyCode.on('error', function(event) {
 | 
				
			||||||
 | 
					      event.trigger.textContent = 'Press "Ctrl + C" to copy';
 | 
				
			||||||
 | 
					      window.setTimeout(function() {
 | 
				
			||||||
 | 
					          event.trigger.textContent = 'Copy';
 | 
				
			||||||
 | 
					      }, 2000);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Navigation menu
 | 
				
			||||||
    $('#menu').click(function (event) {
 | 
					    $('#menu').click(function (event) {
 | 
				
			||||||
      var nav = $('#main-nav');
 | 
					      var nav = $('#main-nav');
 | 
				
			||||||
      nav.toggle('fast');
 | 
					      nav.toggle('fast');
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Show navigation button for smaller screen
 | 
				
			||||||
    $(window).resize(function () {
 | 
					    $(window).resize(function () {
 | 
				
			||||||
      var viewportWidth = $(window).width();
 | 
					      var viewportWidth = $(window).width();
 | 
				
			||||||
      if (viewportWidth > 468) {
 | 
					      if (viewportWidth > 468) {
 | 
				
			||||||
| 
						 | 
					@ -76,3 +74,4 @@
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
})(jQuery)
 | 
					})(jQuery)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue