私は次の機能を備えたページを持っています: スクロールを生成する大きな画像 (水平方向と垂直方向の両方) と固定位置のボタン (スクロールしても左上隅に残ります) があり、クリックするとイメージをクライアントの幅に合わせます。
は Internet Explorer 8 でサポートされていないためposition: fixed
、回避策を使用しました。これが関数です。
function setFixedPosition(jqueryWrapper, pixelsFromTop, pixelsFromLeft) {
jqueryWrapper.css('position', 'absolute');
var setOffsets = function() {
jqueryWrapper.css("top", (($(window).scrollTop() + pixelsFromTop) + "px"));
jqueryWrapper.css("left", (($(window).scrollLeft() + pixelsFromLeft) + "px"));
};
setOffsets();
$(window).scroll(function() {
setOffsets();
});
}
setFixedPosition($('#zoomFitButton'), 15, 15);
ボタンのアクションは次のとおりです。
$('#zoomFitButton').click(function() {
$('img.preview').css('width', '100%');
});
ボタンは Firefox 13 と IE8 の両方で固定されたままです。
しかし、IE8 では、どこかをスクロールしているときにボタンをクリックすると、ボタンが「奇妙な」位置に移動します。
- 縦にスクロールしてクリックすると、ボタンが左下隅に配置されます。
- 水平にスクロールしてクリックすると、ボタンが右上隅に配置されます。
- 両方向にスクロールしてクリックすると、ボタンが中央のどこかに配置されます。
Firefox では、[幅に合わせる] ボタンをクリックした後でも、ボタンは常に左上隅 (期待される場所) に残ります。
ここにテストページがあります。
私のコードはこの機能に対して (原則として) OK ですか、または幅に合わせるアクションに何かを追加する必要があります (ボタンの位置を修正するため)。またはIEに何か問題がありますか(回避策が必要です-もしそうなら、何か提案はありますか?)?
ありがとう。