Açıklama: Trello'nun kullandığı kodu yazdım ; Aşağıdaki kod Trello'nun pano numaralarını gerçekleştirmek için kullandığı gerçek kaynak kodudur.
Aslında "kullanıcının panosuna erişmiyoruz", bunun yerine Ctrl+ tuşuna bastığında kullanışlı bir şey seçerek kullanıcıya biraz yardımcı oluyoruz C.
Anladığınız gibi geliyor; Size vurmak istediğinizde gerçeği yararlanmak Ctrl+ C, sen vurmak zorunda Ctrlilk anahtarı. Ne zaman Ctrltuşuna basıldığında seçim ayarlanır böylece, biz panodaki sonunda istediğiniz metni içeren bir textarea pop ve içindeki tüm metni seçmek Canahtar vuruldu. (Sonra Ctrlanahtar geldiğinde metin alanını gizleriz )
Özellikle, Trello bunu yapar:
TrelloClipboard = new class
constructor: ->
@value = ""
$(document).keydown (e) =>
# Only do this if there's something to be put on the clipboard, and it
# looks like they're starting a copy shortcut
if !@value || !(e.ctrlKey || e.metaKey)
return
if $(e.target).is("input:visible,textarea:visible")
return
# Abort if it looks like they've selected some text (maybe they're trying
# to copy out a bit of the description or something)
if window.getSelection?()?.toString()
return
if document.selection?.createRange().text
return
_.defer =>
$clipboardContainer = $("#clipboard-container")
$clipboardContainer.empty().show()
$("<textarea id='clipboard'></textarea>")
.val(@value)
.appendTo($clipboardContainer)
.focus()
.select()
$(document).keyup (e) ->
if $(e.target).is("#clipboard")
$("#clipboard-container").empty().hide()
set: (@value) ->
DOM’de
<div id="clipboard-container"><textarea id="clipboard"></textarea></div>
Pano işleri için CSS:
#clipboard-container {
position: fixed;
left: 0px;
top: 0px;
width: 0px;
height: 0px;
z-index: 100;
display: none;
opacity: 0;
}
#clipboard {
width: 1px;
height: 1px;
padding: 0px;
}
... ve CSS bunu yapar, böylece metin geldiğinde metin alanını göremezsiniz ... ama kopyalanacak kadar "görünür".
Bir kartın üzerine geldiğinizde,
TrelloClipboard.set(cardUrl)
... böylece pano yardımcısı, Ctrltuşa basıldığında ne seçileceğini bilir .