在項目中,我們經常需要根據滾動條的位置去觸發一些事件。以下是代碼是 判斷元素是否出現在可視區域來觸發一些事件,比如淡出淡出、左右滑動等動畫效果。
<div id="box"> </div> <script> $(window).scroll(function(){ if($('#box').offset().top >= $(window).scrollTop() && $('#box').offset().top < ($(window).scrollTop() + $(window).height())){ // 元素出現在可視區域后要做的事、、、 }else { // 元素離開可視區域后要做的事、、、 } }) </script>
舉個例子:當#box 滾動到可視區域時 #box 中的 h1 透明度由 0 變成 1
<style> #box h1 { opacity: 0; transition: all 1s; --o--transition: all 1s; --moz--transition: all 1s; --webkit--transition: all 1s; // 突然出現太生硬 加個過度吧 } </style> <div id="box"> <h1>可愛的h1</h1> </div> <script> $(window).scroll(function(){ if($('#box').offset().top >= $(window).scrollTop() && $('#box').offset().top < ($(window).scrollTop() + $(window).height())){ $('#box h1').css('opacity','1'); // 元素離開可視區域后要做的事、、 }else { $('#box h1').css('opacity','0'); // 元素離開可視區域后要做的事、、、 //當然你也可以讓 h1 只出現 不消失 else 就可以什么都不寫 } }) </script>