以下に示すUIを開発しました。
ここで、このUIに機能を追加します。ユーザーがif
およびelse if
ブロックの位置を交換したい場合、彼はそれを実行できなければなりません。
1つのオプションは、ブロックを上下に移動するために、ifとifの隣にある上下矢印アイコンです。他のより良いオプションは何でしょうか?
各ブロックにドラッグハンドルを追加して、ユーザーに順序を決定させることをお勧めします。ブロックの順序に関係なく、最初のブロックは常にif
ブロックで、残りのブロックはelse if
。
詳細については画像を参照してください
このようにして、ユーザーは、ブロックがデスクトップでもモバイルデバイスでもドラッグ可能であることを事前に知るようになります。
他のすべての答えはdragハンドルを提案しますが、私はagainstを提案します。
ドラッグハンドルの問題は次のとおりです。
ドラッグハンドルはlist of [〜#〜] n [〜#〜]の項目でうまく機能します。これらの各項目は少量のスペースを占有し、各アイテムはリスト内で移動できますanywhere。
ここでは、switchの位置、2アイテムの間にしたいだけです。開始位置とターゲット位置は1つだけです。トグルボタンを使用するだけです。
たとえば、Google翻訳は二重矢印ボタンを使用して、ソース言語とターゲット言語を切り替えます。
これがConverbotです:
ドラッグハンドルを使用してアイテムをどこにでも移動できるという錯覚をユーザーに与えないでください。位置を切り替えるという単一のアクションを実行する単一のボタンがあります。
Mailchimpはとアイコンを使用して、ブロックのドラッグ可能性を示します。
GoogleはGmailでドラッグハンドルを使用しており、カーソルを合わせると表示されます。
アイコン(任意のアイコン)またはドラッグハンドルを使用してオブジェクトがドラッグ可能であることを示すことは、どちらも優れたソリューションですが、すべてソリューションのアフォーダンスに帰着します。ユーザーにそれを示すと、彼らはその意味を理解しますか?これを解決する1つの方法は、新しいユーザーに機能を導入することです。どちらを選ぶかはあなた次第です。
3番目のオプションは、カーソルを置いたときにカーソルプロパティをmove
に設定することです。これはデフォルトで実行するのに適した方法であり、前のオプションと組み合わせて使用できます。これに関するアドバイスの1つは、ブロックの一部のみをドラッグ可能(ハンドルのみ)にすることです。これにより、ユーザーがブロック上を移動するときに常に移動カーソルが表示されることはありません。彼らはまだブロック上のものを選択してクリックする必要があります。カーソルを移動すると、ドロップダウンボックスを選択できないとユーザーに思わせる場合があります。
順序付け可能な要素のリストを作成するときは、ドラッグハンドルを避けようとしますが、これらは、UI要素が小さいので面倒ですだけです。
代わりに、ボタンまたはコンテキスト領域(またはその両方)にMove Up
およびMove Down
ボタンを実装します。
ドラッグハンドルをボタンに直接置き換えることの欠点は、ユーザーがmoveアクションのたびにマウスを再配置する必要があることです。理想的には、移動するブロックとブロックが選択されたときに表示される静的ボタンを強調表示(または「チェック」)する選択メカニズムが必要です。
関連ボタンには、Remove
、Add Comment
、Copy
を含めることもできます。ドラッグハンドルでは、これらのアクションを同じメカニズムで自然に追加することはできません。
私はあなたが提案したようにして、上/下矢印をifブロックおよび個別条件の場合ユーザーもそれらのいずれかを交換したいと考えていました。
また、アイテムを上下に移動できるかどうかに基づいて、矢印を有効/無効にすることで、矢印の位置を認識させることもできます。
画像に基づいて、次のようになります。
注:
明らかに、個々の条件の高さをもう少し高くして、大きな矢印を付けることができます。
この問題を解決する必要がある場合は、2つの異なる方法を組み合わせて解決することになります。
さまざまな方法を組み合わせて何かを行うのは興味深いと思います。そのため、ホバー時またはブロックが選択されている場合に、話している矢印を表示することもできますが、この方法はドラッグまたはキーボードを使用して。