判断对象进入可视区域添加飞入效果

我们先来讨论如何实现这个效果,我利用了一个效果库

https://github.com/daneden/animate.css 这个是它的来源GitHub

https://daneden.github.io/animate.css/ 这个是效果的体现,可供选择,我们选择一个从下飞入效果“bounceInUp”

有了这个类库之后,引入CSS文件就可以开始用了。

 $("#div").addClass("animated  bounceInUp delay-2s ");

像上面这行代码,获取id名为div的盒子,在盒子进入可视化区域的时候给它添加效果类。

那么如何判断这个盒子进入了浏览器的可视区域呢?

我们先上JS的代码再来解释(JQ是3.3.1版本)

<script type="text/javascript">
            $(document).ready(function () {
                $(window).scroll(function () {
                    var a = document.getElementById("div").offsetTop;/*偏移量*/
                    if (a >= $(window).scrollTop() && a < ($(window).scrollTop()+$(window).height())) {
                        $(function(){
                            $("#div").addClass("animated  bounceInUp delay-2s ");
                        })
                    }
                });
            });
        </script>

jQuery(window).scrollTop():窗口滚动的顶部偏移量,即此时页面的上边界到可视区域的上边界的偏移量,简单的可以理解成整个页面滚动了多少距离

jQuery('#div').offset().top:#div 的绝对偏移量,指#div的实际尺寸(即不包括外边框margin)的上边界到页面顶端的距离.这个值不随窗口滚动而改变

jQuery(window).height():浏览器窗口可视区域的高度

也就是说当 (div上边界到整个页面顶端的距离) 小于 (整个页面滚动距离+窗口可视区高度) 时,div就判定为出现在可视区域。

整个只要执行JQ向div添加效果类就可以实现飞入效果了。

事实上判断元素进入可视区域的算法五花八门,可以选择自己最好理解的就行了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值