最近、ユーザーがページをどれだけ下にスクロールするかに応じて、2 つのボックスをアニメーション化する jQuery を Web サイトに含めました。
どちらもページの上部から表示されるため、ページが最初にロードされたときには表示されません (負のマージン - トップ番号)。
コードは以下にありますが、ここで JSFiddleも確認できます。
JavaScript
$(document).ready(function() {
var away = false;
$(document).scroll(function() {
if ($(document).scrollTop() > 150) {
if (!away) {
away = true;
$('#red-box').stop().animate({
'margin-top': '0px'
}, 500);
}
} else {
away = false;
$('#red-box').stop().animate({
'margin-top': '-30px'
}, 150);
}
});
});
$(document).ready(function() {
var away = false;
$(document).scroll(function() {
if ($(document).scrollTop() > 250) {
if (!away) {
away = true;
$('#blue-box').stop().animate({
'margin-top': '30px'
}, 500);
}
} else {
away = false;
$('#blue-box').stop().animate({
'margin-top': '-200px'
}, 150);
}
});
});
HTML
<div id="red-box"></div>
<div id="blue-box"></div>
CSS
body {
height:2000px;
}
#red-box {
position:fixed;
width:100%;
height:30px;
margin-top:-30px;
background-color:red;
z-index:2;
}
#blue-box {
position:fixed;
width:150px;
height:200px;
margin-left:60px;
margin-top:-200px;
background-color:blue;
z-index:1;
}
これは、すべてのブラウザーのすべての最新バージョンでうまく機能するように見えますが、IE8 以下ではまったく機能しません (驚くことではありません)。ユーザーがスクロールしてもボックスはアニメーション化されないため、画面に表示されません。
これをIE8で動作させるのを手伝ってくれる人はいますか? そしておそらくIE7?