11

私はこのコードでわずかな小さな視差効果を作成しています.IEを除いて、すべてがどこでも正常に動作します.私はIE 9を使用しています.

Jsfiddle-javascript

Jsfiddle-jquery

<div id="head"> i </div>
<div id="subHead"> can </div>
<div id="content">  haz </div>

Javascript

window.onscroll = function(ev){
  var subHead = document.getElementById('subHead'),
      topHeight = document.getElementById('head').offsetHeight;

  subHead.style.top = (topHeight - document.body.scrollTop / 4) + 'px';
};    

CSS

#head, #subHead{
    position: fixed;           
    height: 80px;    
    width: 100%;
    display: block;
    background: #c00;
    left: 0;
    top: 0;
    z-index: 10;
}

#subHead{
    z-index: 4;
    background: #cd0; 
    top: 80px;
}

#content{
    position: relative;
    z-index: 6;
    height: 1000px;
    background: #eee;
    margin-top: 160px;
}

私はいくつかのクロスブラウザのトリックをグーグルで試してみましたが、無駄でした... IEで動作させる方法はありますか?どうもありがとう。

編集:

目的: ユーザーがスクロールするときに、1 div の動きを別の div より遅くする。

ロジック:cssでdivを固定し、javascript http://jsfiddle.net/MRbWY/11/でその位置を変更します

IE のエラーです。JavaScript が機能しません。したがって、div は修正されたままです

4

1 に答える 1

3

document.body.scrollTop は常にゼロを読み取っていました。少し掘り下げると、IEで使用したいこの質問が見つかります。document.documentElement.scrollTop

あなたのフィドルを更新しました

于 2013-03-05T11:36:30.823 に答える