5

私はウェブアプリのプロトタイプに取り組んでいます。このアプリでは、メイン ウィンドウにデータがあり、ユーザーがタブをクリックするとスライドして出入りできるトレイが下部にドッキングされています。ここに、私が話していることを示すフィドルがあります: http://jsfiddle.net/SetNN/2/

html:

<div id="DataPane">
<div id="VisibleContainer">
    <div class="handle">

    </div>
</div>
<div id="InvisibleContainer">
    <div class="handle">
    </div>
    <div class="dataContainer">
    </div>
</div>

CSS:

/* DATA PANE */
#DataPane {
  position: absolute;
  width: 100%;
  bottom: 0;
  opacity: 0.5;
  z-index: 20;
}
#DataPane .handle {
  width: 50px;
  margin: 0px auto 0px auto;
  background-color: #333333;
  text-align: center;
  cursor: pointer;
  -webkit-user-select: none;
  box-shadow: 4px 2px 11px rgba(50, 50, 50, 0.75);
}
#DataPane #VisibleContainer .handle {
  height: 20px;
  color: #ffffff;
  border-top-left-radius: 5px;
  border-top-right-radius: 5px;
  border-bottom-right-radius: 0px;
  border-bottom-left-radius: 0px;
}
#DataPane #InvisibleContainer {
  display: none;
}
#DataPane #InvisibleContainer .handle {
  height: 5px;
  box-shadow: 4px 2px 11px rgba(50, 50, 50, 0.75);
}
#DataPane #InvisibleContainer .dataContainer {
  width: 99%;
  height: 49vh;
  margin: 0px auto 0px auto;
  background-color: #333333;
  border-top-left-radius: 5px;
  border-top-right-radius: 5px;
  border-bottom-right-radius: 0px;
  border-bottom-left-radius: 0px;
  box-shadow: 4px 2px 11px rgba(50, 50, 50, 0.75);
}
#DataPane #InvisibleContainer .dataContainer #DataContainer {
  position: absolute;
  background-color: #ffffff;
}

付属のJavaScript

    var dataPaneMinimumOpacity;

$(document).ready(function () {
    // Initialise variables
    dataPaneMinimumOpacity = $("#DataPane").css('opacity');

    // Data pane
    $("#DataPane .handle").click(function () {
        var duration = 600;

        var invisibleContainer = $("#DataPane #InvisibleContainer");
        if ($(invisibleContainer).is(':visible')) {
            // In this case slideup() actually hides the container
            $(invisibleContainer).slideUp(duration, function () {
                $('#DataPane').fadeTo(duration / 2, dataPaneMinimumOpacity);
            });
        } else {
            $(invisibleContainer).slideDown(duration, function () {
                $('#DataPane').fadeTo(duration / 2, 1);
            });
        }
    })
});

jquery 1.8.2 とともに。

主に IE8 で動作するために、クライアントがこれを必要とする可能性が非常に高いです...アニメーションは、IE8 を除くすべてのブラウザで正常に動作します。IE8 では、IE8 モードに切り替えた IETester と Explorer10 の両方で、タブが少し上に移動してから停止します。もう一度クリックすると、元の位置に戻ります。

これを IE8 で正しく動作させるには何が欠けていますか?

もちろん、これに関する別の問題は、jsFiddle自体がIE8で表示されないことです...

4

2 に答える 2

1

(height: 49vh;)高さはIE8 ブラウザーでサポートされていないvh unit で設定されているため、これは IE8 では機能しません。これを IE8 でサポートされている任意の単位に変更すると、正常に動作します。

詳細については、以下のリンクを参照してください

于 2013-05-01T10:21:45.510 に答える