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

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

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

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

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

jQuery

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

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

Q&A

0回答

1130閲覧

positoin: sticky;を使用せずに画面固定を実装したい

nyoro

総合スコア16

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

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

jQuery

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

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

0グッド

1クリップ

投稿2019/12/12 02:29

編集2022/01/12 10:55

positoin: sticky;を使用して、下記の動きを実装しました。

url(https://codepen.io/yutas01/pen/jOEWdzm

しかしpositoin: sticky;はIE11に対応していません。
これをIE11に対応させたく、Stickyfillや、Fixed Stickyなどのプラグインを試したのですが、なぜか小さいディスプレイで見ると上手く表示されるのですが、ディスプレイが大きくなると崩れるという現象が起きてしまいました。

原因が分からず、結局display: relative;display: fixed;をjsで制御して表示させるやり方を試みたのですが上手くいかず、この場合どのように記述すればよいのでしょうか。

私自身、色々と調べてみたのですが、display: relative;display: fixed;を使用する方法でも途中で固定し続ける方法しか見つからず、固定しない固定する固定しないの動きが付けられませんでした。

ご回答いただけますと幸いです。

html

1<div class="container"> 2 <div class="cont1"> 3 <div class="drop-img drop-img2"> 4 <img src="https://dl.dropbox.com/s/rkox4afc0kmkfj1/drop.png?dl=0" alt=""> 5 <p class="drop-year"> 6 2019 7 </p> 8 </div> 9 </div> 10 <div class="cont2"> 11 <div class="drop-img drop-img3"> 12 <img src="https://dl.dropbox.com/s/rkox4afc0kmkfj1/drop.png?dl=0" alt=""> 13 <p class="drop-year"> 14 2018 15 </p> 16 </div> 17 </div> 18 <div class="cont3"> 19 <div class="drop-img"> 20 <img src="https://dl.dropbox.com/s/rkox4afc0kmkfj1/drop.png?dl=0" alt=""> 21 <p class="drop-year"> 22 2017 23 </p> 24 </div> 25 </div> 26 <div class="cont4"> 27 <div class="drop-img"> 28 <img src="https://dl.dropbox.com/s/rkox4afc0kmkfj1/drop.png?dl=0" alt=""> 29 <p class="drop-year"> 30 2016 31 </p> 32 </div> 33 </div> 34</div>

css

1.container { 2 position: relative; 3 4 &::before { 5 content: ''; 6 position: absolute; 7 left: 0; 8 right: 0; 9 background: #00a0e9; 10 width: 3px; 11 height: 100%; 12 margin: auto; 13 } 14} 15 16.drop { 17 &-img { 18 position: sticky; 19 top: 45%; 20 text-align: center; 21 right: 0; 22 left: 0; 23 24 img { 25 width: 80px; 26 } 27 } 28 29 &-year { 30 position: absolute; 31 color: #fff; 32 left: 0; 33 right: 0; 34 top: 20px; 35 } 36} 37 38.cont1 { 39 background: #FFDEFF; 40 height: 600px; 41 text-align: center; 42} 43 44.cont2 { 45 background: #DEFFFF; 46 height: 600px; 47 text-align: center; 48} 49 50.cont3 { 51 background: #FFFFDE; 52 height: 600px; 53 text-align: center; 54} 55 56.cont4 { 57 background: #C7FFC7; 58 height: 600px; 59 text-align: center; 60} 61

js

1$(window).scroll(function() { 2 var wH = $(window).height(); 3 $('.drop-img').each(function(){ 4 var dropH = $(this).offset().top; 5 if ( dropH < $(window).scrollTop() + (wH/2.5)) { 6 $(this).children('img').attr('src', 'https://dl.dropbox.com/s/ns0be5m1vp0611t/drop_gray.png?dl=0'); 7 } else { 8 $(this).children('img').attr('src', 'https://dl.dropbox.com/s/rkox4afc0kmkfj1/drop.png?dl=0'); 9 } 10 }); 11})

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

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

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

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

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

H40831

2019/12/12 02:33

Stickyfullの使い方がおかしいとかそういう事ではなくてですか?
nyoro

2019/12/12 02:45

http://cly7796.net/wp/css/try-using-position-sticky/ 上記のサイトを参考にしました。読み込みに間違いはないはずです。恐らくそこでミスが起きているなら、小さなディスプレイでも崩れて表示されるはずです。。
H40831

2019/12/12 02:48

そのサイトのデモページでも同様の事象は発生しますか?
nyoro

2019/12/12 02:53

していませんがデモページは途中で固定するだけなのに対し、自分は固定しない→固定する→固定しないという特殊な動きにしたいので、そこの差異が原因なのではないかと思っています。
nt4c

2019/12/12 03:33 編集

IE11への対応ですがポリフィルの使用は検討されましたか? https://github.com/wilddeer/stickyfill ----- すみません書いてありましたね、読解が足りていませんでした。。 こちら無視していただいて結構です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問