JavaScript实现页面滚动到div区域div以动画方式出现

摘要:
为了实现JavaScript的页面滚动效果和wow.js的网页滚动效果,效果是将页面滚动到一个区域,该区域以动画形式出现。这个效果需要两点:首先,我们需要先编写一个css动画。第二,当div刚刚出现时,我们需要使用js侦听页面滑动的距离向div添加动画。

用JavaScript实现页面滚动效果,以及用wow.js二种方式实现网页滚动效果

要实现效果是页面滚动到一块区域,该区域以动画方式出现。

这个效果需要二点:

一:我们要先写好一个css动画.

二:用js的监听页面滑动的距离在div刚出现时给div添加动画。

css动画

  /*设置动画*/
            @keyframes key {
                0% {
                    margin-left: -50px;
                    opacity: 0;
                }
                50% {
                    margin-left: 50px;
                    opacity: .5;
                }
                100% {
                    margin-left: 0;
                    opacity: 1;
                }
            }

js 

document.documentElement.scrollTop || document.body.scrollTop来获取页面滑动的距离,用来检测页面滑动的事件是scroll事件,

当页面刚好滑动到div出现时给div添加动画,这个距离是div距离顶部的距离减去div的高度即:box.offsetTop-box.offsetHeight,或者你自己写一个数值也行,只要保证Div刚出现你给它加动画即可。

 window.onscroll = function() {
                //检测鼠标滚轮距离顶部位置
                var top = document.documentElement.scrollTop || document.body.scrollTop;
                console.log(top);//页面滚动时可以得到滚动的距离可以根据这个数值来决定何时给div绑定动画
                //要设置到DIV刚显示出来时给div添加动画
         if(top > (box.offsetTop-box.offsetHeight)) {
            box.style.animation = "key .25s linear 2"//添加动画
          }
}

完整代码

<!DOCTYPE html>
<html>

    <head>
        <meta charset="utf-8" />
        <title></title>
        <style>
            img {
                width: 1000px;
                height: 800px;
            }
            
            .box {
                width: 500px;
                height: 500px;
                line-height: 500px;
                text-align: center;
                font-size: 50px;
                color: red;
                border: 1px solid;
            }
            /*设置动画*/
            
            @keyframes key {
                0% {
                    margin-left: -50px;
                    opacity: 0;
                }
                50% {
                    margin-left: 50px;
                    opacity: .5;
                }
                100% {
                    margin-left: 0;
                    opacity: 1;
                }
            }
        </style>
    </head>

    <body>
        <img src="img/7121942f07082838da2a0540b199a9014c08f11a.jpg" />
        <img src="img/7121942f07082838da2a0540b199a9014c08f11a.jpg" />
        <div class="box">div以动画方式出现</div>
        <script>
            var box = document.querySelector(".box");
            //用js检测鼠标滚轮距离顶部位置来给div添加动画
            window.onscroll = function() {
                //检测鼠标滚轮距离顶部位置
                var top = document.documentElement.scrollTop || document.body.scrollTop;
                console.log(top);
                //要设置到DIV显示出来时给div添加动画 也可以设置一个数值只要保证div出来给它加动画即可
                if(top > (box.offsetTop - box.offsetHeight)) {            
                    box.style.animation = "key .25s linear 2" //添加动画  
                            
                }
            }
        </script>

    </body>

</html>

 实际工作中如果一个页面需要大量的动画上面写法就很累人了,但我们可以用wow.jsanimate.css动画库配合来实现需要的动画效果。wow.js下载地址http://www.dowebok.com/131.html,animate.css下载地址https://daneden.github.io/animate.css/

使用方法分别引入animate.css和wow.js然后在html中加上  class="wow slideInLeft"  第二个class可以自已更改.

HTML

<div class="wow slideInLeft" data-wow-duration="2s" data-wow-delay="5s"></div>
<div class="wow slideInRight" data-wow-offset="10"  data-wow-iteration="10"></div>

wow是必须要添加的
slideInLeft说明了动画的样式,是从左边滑动出来的。更多动画样式可以再这个网址https://daneden.github.io/animate.css/查看。

js

new一下调用一下方法就完成了动画效果的附加

new WOW().init();

哪里需要动画只需要在哪里的class里面写上wow slideInLeft 就好了

免责声明:文章转载自《JavaScript实现页面滚动到div区域div以动画方式出现》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇ZRender源码分析5:Shape绘图详解vue后台(一)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

搭建Modelsim SE仿真环境-使用do文件仿真

摘要: 本章我们介绍仿真环境搭建是基于ModelsimSE的。Modelsim有很多版本,比如说Modelsim-Altera,但是笔者还是建议大家使用Modelsim-SE,Modelsim-Altera实际是针对Altera 的OEM版本,它事先将Altera的一些IP核仿真库添加到了工具中,但功能上有一些缩减。而Modelsim-SE需要自己手动添加...

关于使用JQ scrollTop方法进行滚动定位

没图我说个锤子,先来个自拍镇楼。 又到了每周周五总结时间。我广州刘德华又来讲故事了。这一周没啥任务,就一个任务,产品口头交代了两句,也没有psd没有设计图没有样式。自由发挥,你自己敲代码做个作品出来。 what?听到这个的时候我是一脸懵逼。我心里很慌,难道我资深射鸡湿和灵魂画家的身份暴露了?心里不禁感叹,唉,是金子哪里都会发光。 扯太远了,先来总结一下今...

让两个子div重叠在一起的实现

需求:   需要添加两个div,鼠标未移上是显示第一个,鼠标移上后,显示出来第二个半透明的。这两个div在同一位置上。 实现: 第一步:最外面包围的div Html代码: <div class="Main"> </div> CSS代码:     .Main{        220px;        height: 120px;  ...

DoTween之队列

//引用命名空间 using DG.Tweening; // 初始化一个sequence Sequence sequence = DOTween.Sequence(); //添加动画 sequence.Append(动画对象.DOScale(Vector3.one, .5f));...

div固定显示的几种方法

很多时候我们会受到一些需求: 1、div一直置顶 2、div一直置底 3、超过一定的位置之后div置顶 4、超过一定位置之后div置底 那么下面针对上面的几个问题写几个案例: 一、div一直在屏幕的上方,这个倒是容易咱们直接使用position:fixed;然后设置他的top值和left就可以了,别忘了设置宽度哦 <div class="top"&g...

gotoTop返回顶部 JS

方法: 1.首先在body添加一个标签,在一个页面添加,其它页面也会生效。 <body> <a name="top"> 2.然后在页脚添加一个链接 <a href="javascript:void(0)"onclick="goto_top()">返回页顶</a> 3.JS代码,可以单独写成一个文件,插入到h...