質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

3回答

2545閲覧

特定位置スクロール時に固定するフロートメニューがIE8で動作しない

castail

総合スコア117

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2015/09/15 03:28

下記の内容で特定位置スクロール時に固定するフロートメニューを設置しております。

lang

1$(function() { 2var showFlag = false; 3var header = $('.hoge'); 4header.css('position', 'relative'); 5var showFlag = false; 6 7$(this).scroll(function () { 8if ($(this).scrollTop() > 300) { 9if (showFlag == false) { 10showFlag = true; 11header.css('position', 'fixed'); 12} 13} else { 14if (showFlag) { 15showFlag = false; 16header.css('position', 'relative'); 17} 18} 19}); 20}); 21

こちらがIE8のみで動作しない状態です。
対処方法をご教授ください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

html5shiv.js を読み込ませてみては如何でしょうか?
http://html5shiv.googlecode.com/svn/trunk/html5.js
余計にややこしくなるかもですね。。。

投稿2015/09/15 15:42

Ken.sakanakana

総合スコア1768

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

javascript

1$(function() { 2 var showFlag = false, 3 header = $('.hoge'), 4 doc = document; 5 6 header.css('position', 'relative'); 7 8 $(doc).scroll(function () { 9 10 if ( $(doc).scrollTop() > 300 && showFlag === false ) 11 { 12 showFlag = true; 13 header.css('position', 'fixed'); 14 } 15 else if ( $(doc).scrollTop() < 300 && showFlag === true ) 16 { 17 showFlag = false; 18 header.css('position', 'relative'); 19 } 20 }); 21});

IE8で処理の内容は変えていませんが動きました。jQueryの2.xはIE8非対応かと思いますが
jQueryは1.xを使用されていますか?

投稿2015/09/15 04:23

編集2015/09/16 01:09
nanndemoiikara

総合スコア775

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

castail

2015/09/15 04:52

nanndemoiikara様 ご回答ありがとうございます。 なるほど、そちらでは正常に動作しているのですね。 jqueryは1.11.2を使用しています。 その他のスクリプトが干渉している可能性があるので再度調べたいと思います。
guest

0

IEの場合、DOCTYPEが正しくないとposition:fixedが利かない、ということがあるようです(情報)。どうしても特定のDTDを選ぶ必要のある状況でなければ、<!DOCTYPE html>とだけしてHTML5を宣言しておきましょう。

投稿2015/09/15 04:21

maisumakun

総合スコア145184

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

castail

2015/09/15 04:49

maisumakun様 ご回答ありがとうございます。 対象環境も<!DOCTYPE html>でしたが動作していない状態です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問