1

ツールバーとして機能し、情報も表示するフッターを備えたWebアプリケーションに取り組んでいます。アプリのレイアウトは弾力性があるため、フッターは常にページの下部に表示されます。スクロールはありません。この質問とは関係のない理由から、ページの下部がツールバーの要素を形成する理想的な場所であると考えています。

私がChromeで抱えている問題は、ステータスバーが邪魔になり、表示されている情報の一部をカバーする2つの状況があることです。1つ目は、コバンザメ風のメニューにカーソルを合わせたときです。ステータスバーには、メニュー要素にカーソルを合わせると宛先が表示されますが(これまでのところ良好です)、状況によっては、ページが更新されるまで動かなくなり、消えることはありません(Chromeのバグ?)。

2番目の問題はこのjsfiddleで見ることができます。Jquery UIスライダーはアンカータグを使用するため、それを移動すると、現在の場所を示すステータスバーがトリガーされます(かなり役に立たないIMHO)。問題は、スライダーを動かしているときにフッターの情報の一部が更新されるため、Chromeのステータスバーがこの方法で情報を表示できないことです。アンカータグがフォーカスを取得するため、ステータスバーも動かなくなりますが、次のコードでそれを防ぐことができました。

$("#slider").on("slidestop", function(event, ui)
{
    $("a.ui-slider-handle").blur();
});

スライド中もステータスバーが邪魔になり、現在のデザインが崩れます。これらのタグがステータスバーをトリガーしないようにするために、これらのタグにできることはありますか?ありがとう

4

2 に答える 2

2

リンクから href 属性を削除し、クリック ハンドラーでリンク機能を再適用することで、これを行うことができます。

例を次に示します: http://jsbin.com/ikated/1/edit

しかし、これは悪い設計であり、ユーザーにとって重要なブラウザー機能を壊します。リンクが何をするかを隠し、リンクが何であるかを隠します (text-decoration: underline; cursor: pointer;使用するためにスタイルを変更したり、リンクに使用するスタイルを変更したり、中クリック機能を壊したりしない限り)。別のハンドラーに置き換えることもできますが、リンクの宛先を非表示にすることは依然として欺瞞的でユーザーに敵対的なパターン IMO。

于 2012-09-12T17:20:53.450 に答える
1

あなたが使用することができます

$("#slider > a").removeAttr("href");

また、スライダー ボタンをホバー/フォーカスすると、ステータス バーが表示されなくなります。これは可能な限り最善の解決策ですか?おそらくそうではありませんが、機能し、ユーザビリティに深刻な影響を与えるとは思いません.

于 2012-09-12T19:51:12.580 に答える