Tady se zabývám pouze druhou polovinou operace D% D, poklesem. Jaké jsou běžné idiomy, které mohou uživatelé sdělit uživateli? A jaké jsou „nejlepší“ a v jakých situacích?
Zejména bych rád věděl ty, které sdělují uživateli něco před tím, než dojde k přetažení a poté, co dojde k přetažení. Mohou to být vizuální nebo „hmatové“ (změny kurzoru myši).
Viděl jsem aplikace, které ukazují obrys, kde můžete upustit.
Toto je ze stránky widgetu wordpress)
(zdroj: srulytaber.com )
Běžným přístupem je přeměnit kurzor na kurzor „nelze upustit“, když skončíte se vším ostatním.
Logika by byla:
POZNÁMKA: Toto nutně neobhajuji, ale uživateli to ukazuje, že jsou uprostřed operace drag/drop a také označují, kde je drop platný.
Jakmile uživatel přetáhne položku, můžete mírně zvýraznit místa přetažení. Tímto způsobem můžete upozornit na místa, kde se kapka nachází.
Předpokladem pro to je samozřejmě to, že v první řadě ukážete, co je tažné. Tam jsou tyto otázky s odpovědí za to.
Někdy je cíl přetažení uvnitř sady lineárně uspořádaných objektů. Po vyřazení položky se objekty, které sledují cíl přetažení, přesunou, aby vytvořily místo pro nový objekt. V tom případě kurzor je obvykle označen tenkou čaro mezi dvěma objekty, které se oddělí, aby se vytvořil prostor.
Například v téměř každém grafickém uživatelském rozhraní, které používá myš, lze text vybrat a přetáhnout z jedné části dokumentu do druhé. Bod vložení je označen tenkou čarou mezi dvěma znaky.
To je také případ fronty Netflix diskutované dříve. Kromě tenké čáry používá Netflix černou šipku k označení, kam bude film jít.
Thundercats: Season 1: Vol. 1: Disc 3
.....................................
Thundercats: Season 1: Vol. 1: Disc 4
>-------------------------------------
Thundercats: Season 1: Vol. 1: Disc 5
.....................................
Thundercats: Season 1: Vol. 1: Disc 6
(Nedokážu přijít na to, jak chytit screenshot při přetahování.)
Typický pracovní postup pro přetažení je:
repeat while mouse is down
dragEnter -> mouse pointer has moved into some new area.
Highlight the area if the dragged data is valid for dropping into it,
adjust cursor (forbidden, copy, symlink, or move)
adjust the drag image (e.g. when dragging from icon view in file picker
to list view in another file picker, now's the time to animate the
drag image to look like the list view items would when dropped.
dragLeave -> Undo any previous highlight.
end repeat
if we were over a valid drop location
drop
else
show an animation of the drag image snapping back to its
point of Origin to make it clear the drag was canceled.
end if
Undo any previous highlight.
Typické typy zvýraznění přetažení jsou:
Upozorňujeme, že vkládací značky nejsou užitečné pouze pro seznamy, kde můžete libovolně znovu uspořádat pořadí položek, ale také pro tříděné seznamy, např. kapka mezi nebo na dvou souborech v seřazeném seznamu je naprosto platná, ale chcete naznačit, že po třídění se soubor zobrazí dále dolů.
Pro úplnost je typický pracovní postup pro přetažení:
detect whether a click-and-hold or click-and-move is really intended to be a drag:
- Is it obvious? (e.g. dragging a file by its icon -- there is nothing else you can do
- Or: Wait for a while, has the mouse moved by at least 4 pixels in some direction
and has the mouse still not been released? (Accounts for most peoples' less-than-pefect motor skills
- Or: Is the drag in a certain direction that doesn't make sense for anything else?
(E.g. dragging sideways over text may be an attempt at a new selection,
OTOH a vertical drag > 4px on a selection is pretty guaranteed to be a drag attempt.
Set up a drag image that is attached to the mouse. This image usually looks exactly
like a 70% opaque version of the selection (giving the illusion you're moving
the selection) and if you haven't moved the mouse yet, should invisibly overlay
the actual selection. (I.e. move it relative to the mouse, don't center it
under the mouse)
Start the drag! (following this we do the workflow for dropping)
(Alespoň to je to, jak se drag'n drop obvykle děje v moderních aplikacích Mac OS X, i když aktualizace image drag během dropu je docela nová věc)