前提・実現したいこと
現在TOPへ戻るボタンの実装をしようとしております。
動きとして実装したい事は、
・スクロールを100pxしたらボタンが表示
・スクロールを一番下まで行った時にはボタンを非表示にして、上にスクロールをした時には再度ボタンを表示させたい
このような動きのボタンの実装をしたいです。
初心者で調べてみても上記それぞれ片方ずつの処理については書いてあるのですが、同時に処理をする時の書き方がわからず困っております。 どうかご教授をいただければと思っております。
よろしくお願いいたします。
発生している問題・エラーメッセージ
下記のプログラムを書いて起こっている事は、
・スクロールを100pxした時にボタンが表示される際に点滅した後に表示される。
・一番下までスクロールした際にはPCブラウザでは非表示になるが、iPhoneのsafariで確認した際に非表示にならない。 一番下から上にスクロールした時に表示されるのは問題なく、上からのスクロール量が100px以下になった時に点滅が起こり表示されたままになってしまう。
該当のソースコード
html
1<!doctype html> 2<html> 3<head></head> 4 5<body> 6<?php require_once('header.php') ?> 7 8 <section id="MAIN"> 9 <div class="mainview"> 10 <div class="main_text"></div> 11 <a href="#about"><span></span></a> 12 </div><!--end mainview--> 13 <div id="about"> 14 <div class="title_area"></div> 15 <div class="about_cont"></div><!--end about_cont--> 16 </div> 17 <div id="totop"> 18 <a href="/"><img src="img/btn_top.png" alt="TOPへ戻る"></a> 19 </div><!--end totop--> 20 </section><!--end MAIN--> 21 22<?php require_once('footer.php') ?> 23</body> 24</html>
js
1 $(function() { 2 var topBtn = $('#totop'); 3 topBtn.hide(); 4 5 //スクロールが100に達したらボタン表示 6 $(window).scroll(function () { 7 if ($(this).scrollTop() > 100) { 8 topBtn.fadeIn("slow"); 9 } 10 else { 11 topBtn.fadeOut("slow"); 12 } 13 }); 14 15 $(window).scroll(function(ev) { 16 var $window = $(ev.currentTarget), 17 height = $window.height(), 18 scrollTop = $window.scrollTop(), 19 documentHeight = $(document).height(); 20 if (documentHeight === height + scrollTop) { 21 // 一番下のときの処理 22 topBtn.fadeOut("slow"); 23 } else { 24 topBtn.fadeIn("slow"); 25 } 26 }); 27 }); 28
回答3件
あなたの回答
tips
プレビュー