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

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

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

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

jQuery

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

5176閲覧

特定スクロール区間のみにcssスタイルを適用したい

castail

総合スコア117

JavaScript

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

jQuery

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2015/04/11 04:54

編集2015/04/11 04:57

JQueryについてご質問です。

ある要素に特定スクロール区間のみcssスタイルを適用したいです。

具体的には、

lang

1<div class="hoge">

を縦スクロール300px〜1200pxの区間のみ

lang

1<div class="hoge" style="position:fixed;">

としたいです。

対応ブラウザはIE7+です。

方法をご教授願えればと思います。
よろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

こんな感じでどうでしょうか

lang

1$(window).scroll(function () { 2 var scrollTop = $(window).scrollTop(); 3 if( 300 < scrollTop && scrollTop < 1200 ){ 4 $('#hoge').css('position','fixed'); 5 }else{ 6 $('#hoge').css('position','static'); 7 } 8});

投稿2015/04/11 05:37

Lhankor_Mhy

総合スコア36104

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

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

castail

2015/04/11 08:10

ご回答ありがとうございます。 こちらを試したのですが、動作しませんでした。
Lhankor_Mhy

2015/04/11 11:44

そうですか、それは残念。当方では動作したのですが。 でも、方法はご理解いただけたと思いますので、修正して使っていただければと思います。
castail

2015/04/11 16:15

そちらではうまく動作されたのですね。。。 他プログラムとの干渉かと思い 下記最低限の構成でテストのhtmlを生成してもうまく行きませんでした。 ```lang-<html> <!doctype html> <html> <head> <meta charset="UTF-8"> </head> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> <script> $(window).scroll(function () { var scrollTop = $(window).scrollTop(); if( 300 < scrollTop && scrollTop < 1200 ){ $('#hoge').css('position','fixed'); }else{ $('#hoge').css('position','static'); } }); </script> <body> <div style="height:1000px; position:relative;"></div> <div id="hoge">hogeエリアです。hogeエリアです。hogeエリアです。hogeエリアです。hogeエリアです。hogeエリアです。hogeエリアです。hogeエリアです。hogeエリアです。hogeエリアです。hogeエリアです。hogeエリアです。hogeエリアです。hogeエリアです。hogeエリアです。hogeエリアです。hogeエリアです。hogeエリアです。hogeエリアです。hogeエリアです。hogeエリアです。hogeエリアです。hogeエリアです。hogeエリアです。hogeエリアです。hogeエリアです。hogeエリアです。hogeエリアです。hogeエリアです。hogeエリアです。hogeエリアです。hogeエリアです。hogeエリアです。hogeエリアです。hogeエリアです。hogeエリアです。hogeエリアです。hogeエリアです。hogeエリアです。hogeエリアです。hogeエリアです。hogeエリアです。hogeエリアです。hogeエリアです。hogeエリアです。hogeエリアです。</div> <div style="height:1000px; position:relative;"></div> </body> </html> 何かお気づきの点があればご教授下さい。
Lhankor_Mhy

2015/04/13 02:57

申しわけないのですが、当方ではご提示のコードで動作しています(スクリーンサイズの関係でdivのheightを変更させていただきましたが)。 IE7もエミュレートですが動作しています。ひょっとすると、エミュレーションではない実機のIE7だと動作しないのかもしれません。すみませんが、当方にはその環境がありませんので確認いたしかねます。 よろしくお願いします。
castail

2015/04/13 13:03

大変失礼しました。確かにこのミニマム構成動作しました。 しかし本環境では動作しませんでした。 おそらく他の併用しているスクリプトが干渉しているのかと思います。 引き続き調べたいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問