• 締切済み

スクロール連動処理のFireFox対応

スクロールに連動して画像がついてくるようにしたいのですが、以下の記述ではFireFoxで動作しません。 分かる方対応方法を教えてください。 <layer id=Brd style="height: 76px; width: 50px;"> <div id=Brd_IE style="position:absolute; top=100; left=30; height: 76px; width: 50px;"> <a href="http://www.takoten.com/" class=link1><img src="bbsiori.gif"></A></div> </layer> <script language=javascript> <!-- NS = (document.layers) ? 1 : 0; IE = (document.all) ? 1: 0; self.onError=null; currentX = currentY = 0; whichIt = null; lastScrollX = 0; lastScrollY = 0; function Branding() { if(IE) { diffY = document.body.scrollTop; diffX = document.body.scrollLeft; } if(NS) { diffY = self.pageYOffset; diffX = self.pageXOffset; } if(diffY != lastScrollY) { percent = .5 * (diffY - lastScrollY); if(percent > 0) percent = Math.ceil(percent); else percent = Math.floor(percent); if(IE) document.all.Brd_IE.style.pixelTop += percent; if(NS) document.Brd.top += percent; lastScrollY = lastScrollY + percent; } if(diffX != lastScrollX) { percent = .5 * (diffX - lastScrollX); if(percent > 0) percent = Math.ceil(percent); else percent = Math.floor(percent); if(IE) document.all.Brd_IE.style.pixelLeft += percent; if(NS) document.Brd.left += percent; lastScrollX = lastScrollX + percent; } } if(NS || IE) action = window.setInterval("Branding()",1); //end //--> </script> ※参考サイト http://www.takoten.com/tag/withscroll.html

みんなの回答

  • Yohjira
  • ベストアンサー率66% (14/21)
回答No.1

全部は試していませんが、 diffY = document.body.scrollTop; diffY = self.pageYOffset; どちらの記述でもFirefoxでは値を取得できるようですね。 FirefoxならとりあえずIEと同じ動きをするようにすれば、 動いてしまうのではないでしょうか。 NS = (document.layers) ? 1 : 0; IE = (document.all) ? 1: 0; これはFirefoxだとどちらも0となるので、 どちらも0だったFirefox、という判断でよさげです。 ただ、その他のブラウザに関する考慮がないのですが・・・

関連するQ&A

専門家に質問してみよう