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

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

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

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

HTML

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

CSS

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

Q&A

解決済

2回答

3060閲覧

上にスクロールしていくと追従バナーが点滅してしまう

i0k62

総合スコア3

JavaScript

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

HTML

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

CSS

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

0グッド

1クリップ

投稿2020/07/10 10:18

編集2020/07/10 10:20

現在フッターに進むと表示が消える「追従バナー」を実装しています。
しかし、上にスクロールすると点滅するという不具合が出ており、どこが悪いのか検討もつきません・・・

ネット上で調べる限りだと表記のどこが悪いのか見つからないため、
どうかご教示くださいますよう宜しくお願い致します

html

1<style> 2 .is-fixed { 3 display: none !important; 4 } 5</style> 6<div class="Bnr" style="display: block;"> 7 <div class="Bnr__img"> 8 <div class="Bnr__img__inner"> 9 <div class="box03"> 10 <div class="box03_a"> 11 <a data-btn="chap-str" data-modal="button" href="#form1" data-value-name="3"><img src="https://〜/sp/img/fl_bnr.jpg" alt=""></a> 12 </div> 13 </div> 14 </div><!-- /.Bnr__img__inner --> 15 <p class="close"><a href="javascript:void(0)"><span></span><i aria-hidden="true" class="fa fa-times"></i></a></p> 16 </div><!-- /.Bnr__img --> 17</div><!-- /.Bnr --> 18 19 20<script type="text/javascript" src="https://〜/sp/js/scroll.js"></script>

javascript

1//一定量スクロールで表示されて、閉じるボタンで非表示になるバナー// 2$(function () { 3 var display = function () { 4 if ($(this).scrollTop() > 150) { //scroll量 5 $(".Bnr").fadeIn(); 6 } 7 }; 8 $(window).on("scroll", display); 9 //click 10 $(".Bnr p.close a").click(function(){ 11 $(".Bnr").fadeOut(); 12 $(window).off("scroll", display); 13 }); 14}); 15 16 17//フッター付近で消えるjs// 18window.onscroll = function () { 19 var check = window.pageYOffset ; //現在のスクロール地点 20 var docHeight = $(document).height(); //ドキュメントの高さ 21 var dispHeight = $(window).height(); //表示領域の高さ 22 23 if(check > docHeight-dispHeight-500){ //判別式 500はフッターからの距離です(ここはサイトのフッターに合わせて変更しましょう) 24 $('.Bnr').fadeOut(); //1000 はフェードアウトの速度です。調整可 25 }else{ 26 $('.Bnr').fadeIn(); //1000 はフェードインの速度です。調整可 27 } 28}; 29 30//指定箇所でフローティングが消えるjs// 31$(function () { 32 var $body = $('.Bnr'); 33 $(this).scroll(function() { 34 var topOffset = $('#form1').offset().top; 35 var navTypeAOffsetTop = parseInt(topOffset) - 700; 36 if($(this).scrollTop() > navTypeAOffsetTop) { 37 $body.addClass('is-fixed'); 38 } else { 39 $body.removeClass('is-fixed'); 40 } 41 }); 42}); 43 44//TOPに戻るボタンを表示// 45$(function() { 46 var topBtn = $('#page-top'); 47 topBtn.hide(); 48 $(window).scroll(function () { 49 if ($(this).scrollTop() > 100) { 50 topBtn.fadeIn(); 51 } else { 52 topBtn.fadeOut(); 53 } 54 }); 55 //スクロールしてトップ 56 topBtn.click(function () { 57 $('body,html').animate({ 58 scrollTop: 0 59 }, 500); 60 return false; 61 }); 62}); 63 64//スクロール位置を取得する// 65$(function () { 66 $(window).scroll(function () { 67 var selectors = $('.k-positon-list'); 68 var scroll = $(window).scrollTop(); 69 selectors.each(function () { 70 var position = $(this).offset().top - $(window).height(); 71 if (position < scroll) { 72 $(this).addClass("act"); 73 } 74 }); 75 }); 76}); 77 78// ランダム表示 79$(function(){ 80 var arr = []; 81 var count = setInterval(changeImg, 1000); // 1000 で1秒 82 i = 1; 83 function changeImg(){ 84 $(function() { 85 $.fn.extend({ 86 randomPh : function(num) { 87 return this.each(function() { 88 var chn = $(this).children().hide().length; 89 for(var i = 0; i < num && i < chn; i++) { 90 var r = parseInt(Math.random() * (chn - i)) + i; 91 $(this).children().eq(r).show().prependTo($(this)); 92 } 93 }); 94 } 95 }); 96 97 $("[randomPh]").each(function() { 98 $(this).randomPh($(this).attr("randomPh")); 99 }); 100 101 }); 102 } 103 }); 104 //スクロール表示 105 var fadeConts = document.querySelectorAll('.fadeConts'); 106 var fadeContsRect = []; 107 var fadeContsTop = []; 108 var windowY = window.pageYOffset; 109 var windowH = window.innerHeight; 110 var remainder = 150; // ちょっとはみ出させる部分 111 for (var i = 0; i < fadeConts.length; i++) { 112 fadeContsRect.push(fadeConts[i].getBoundingClientRect()); 113 } 114 for (var i = 0; i < fadeContsRect.length; i++) { 115 fadeContsTop.push(fadeContsRect[i].top + windowY); 116 } 117 // ウィンドウリサイズの高さ再取得 118 window.addEventListener('resize', function () { 119 windowH = window.innerHeight; 120 }); 121 window.addEventListener('scroll', function () { 122 windowY = window.pageYOffset; 123 124 for (var i = 0; i < fadeConts.length; i++) { 125 if(windowY > fadeContsTop[i] - windowH + remainder) { 126 fadeConts[i].classList.add('show'); 127 } else { 128 fadeConts[i].classList.remove('show'); 129 } 130 } 131 });

css

1/*追従バナー*/ 2/* Bnr 3-----------------------------------------*/ 4.Bnr { 5 position: relative; 6 margin: 0 auto; 7 width: 100%; 8 display: none; 9} 10 11.Bnr .Bnr__img { 12 position: fixed; 13 bottom: 0%; 14 z-index: 88; 15} 16 17.Bnr__img__inner { 18 width: 100%; 19 box-sizing: border-box; 20} 21 22.Bnr .Bnr__img__inner a { 23 display: block; 24} 25 26.Bnr .Bnr__img__inner a img { 27 width: 100%; 28} 29 30.Bnr .Bnr__img p.close { 31 position: absolute; 32 right: 1%; 33 top: 5%; 34} 35 36.Bnr .Bnr__img p.close a { 37 display: block; 38 width: 6.8vw; 39 height: 6.8vw; 40 text-align: center; 41} 42 43.Bnr .Bnr__img p.close a span { 44 display: block; 45 overflow: hidden; 46 width: 6.8vw; 47 height: 6.8vw; 48 background-image: url("https://〜/img/fl_close.png"); 49 background-size: contain; 50} 51 52.Bnr .Bnr__img p.close a i { 53 font-size: 20px; 54 z-index: 888; 55 color: #222; 56}

###試してみた事
初心者でjavascriptが全くわからないため、
;の抜け、無駄にスペースがないか、{}の抜けがないか
ソース元から再度コピペをする事で確認してみましたが、解決には至っておりません

どうか解決に至れるご縁がありますように、、
宜しくお願い致します

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

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

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

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

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

Lhankor_Mhy

2020/07/10 10:37

onscroll がたくさんあって、これ大丈夫なの? というのが初見の感想です。 ひとつにまとめる、ということについて、ご検討はされましたか?
i0k62

2020/07/10 10:56 編集

いつも有り難うございます! 前回は返答なしのままで申し訳ありません 上記に記述してある内容は全て別の者が記述しており、 私も「近い内容があるな」とは思ったのですが、 当人がどういった意図でこの内容にしているのかわからず(上手く動作せず沢山書いているのかも、など) また、どの部分を削除すべきかも判断しきれず、といった状況です やはり記述は無駄に多いんですね・・ 一つにまとめる、といったご意向、自分なりにも試してみます
Lhankor_Mhy

2020/07/10 11:05

.k-positon-list という要素がなくてエラーが出ているようですね。
guest

回答2

0

自己解決

ご意見頂き思い切って内容の被っている箇所を消しました
▼消した部分

javascript

1//フッター付近で消えるjs// 2window.onscroll = function () { 3 var check = window.pageYOffset ; //現在のスクロール地点 4 var docHeight = $(document).height(); //ドキュメントの高さ 5 var dispHeight = $(window).height(); //表示領域の高さ 6 7 if(check > docHeight-dispHeight-500){ //判別式 500はフッターからの距離です(ここはサイトのフッターに合わせて変更しましょう) 8 $('.Bnr').fadeOut(); //1000 はフェードアウトの速度です。調整可 9 }else{ 10 $('.Bnr').fadeIn(); //1000 はフェードインの速度です。調整可 11 } 12};

上記を削除しましたところ、点滅の不具合は無くなりました!
Lhankor_Mhyさん、お時間割いてくださり有り難うございました!

投稿2020/07/10 11:17

i0k62

総合スコア3

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

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

Lhankor_Mhy

2020/07/10 11:23

おお、なかなかの外科手術ですね。 ご解決されて何よりです。
guest

0

とりあえず、

js

1.stop().fadeOut(); 2.stop().fadeIn();

のように、全てのフェードメソッドの前に.stop()を入れてみてはいかがでしょうか。
これで必ず解消する、とは言えない感じですが、ひとまずお試しください。

投稿2020/07/10 11:13

Lhankor_Mhy

総合スコア36074

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問