JavaScript实现页面滚动到div区域div以动画方式出现
用JavaScript实现页面滚动效果,以及用wow.js二种方式实现网页滚动效果
要实现效果是页面滚动到一块区域,该区域以动画方式出现。
这个效果需要二点:
一:我们要先写好一个css动画.
二:用js的监听页面滑动的距离在div刚出现时给div添加动画。
css动画
/*设置动画*/
@keyframes key {
% {
margin-left: -50px;
opacity: ;
}
% {
margin-left: 50px;
opacity: .;
}
% {
margin-left: ;
opacity: ;
}
}
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.js和animate.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="" data-wow-iteration=""></div>
wow是必须要添加的
slideInLeft说明了动画的样式,是从左边滑动出来的。更多动画样式可以再这个网址https://daneden.github.io/animate.css/查看。
js
new一下调用一下方法就完成了动画效果的附加
new WOW().init();
哪里需要动画只需要在哪里的class里面写上wow slideInLeft 就好了
JavaScript实现页面滚动到div区域div以动画方式出现的更多相关文章
- WOW.js – 在页面滚动时展现动感的元素动画效果
在一些网页上,当你滚动页面的时候会看到各式各样的元素动画效果,非常动感.WOW.js 就是一款帮助你实现这种 CSS 动画效果的插件,很容易定制,你可以改变动画设置喜欢的风格.延迟.长度.偏移和迭代等 ...
- Javascript实现页面滚动时导航智能定位
遇到的问题: 在做官网的时候,需要滚动定位的区块的图片不确定,无法确定用户浏览区域对应的模块导航 之前的解决方案是: 通过定位滚动条的位置来判断用户浏览区域对应的模块导航,这种方法的弊端是,区块的高度 ...
- [转]JavaScript实现 页面滚动图片加载
本文转自:http://www.cnblogs.com/Darren_code/archive/2011/07/21/LoadImage.html 又到了这个月的博客时间了,原计划是打算在这个月做一个 ...
- 【特效】页面滚动到相应位置运行css3动画
请到我的个人博客网站上浏览此文章,欢迎评论和建议. 文章链接:http://www.xiaoxianworld.com/archives/87 现在css3动画很常见了,实际项目中经常应用,特别是那种 ...
- WOW.js——在页面滚动时展现动感的元素动画效果
插件描述:WOW.js 是一款可以实现滚动页面时触发CSS 动画效果的插件,动态效果可以使网站显示更有动感. 当页面在向下滚动的时候,使用WOW.js可以让页面元素产生细小的动画效果,从而引起浏览者注 ...
- 使用JavaScript打印网页指定DIV区域
JavaScript打印函数myPrint(obj): JavaScript打印页面指定div区域原理:使用window.open()在浏览器打开一个新的页面(window), 使用 window.d ...
- div随页面滚动遇顶固定的两种方法(js&jQuery)
一.遇顶固定的例子 我一直以为是某个div或层随屏幕滚动,遇顶则固定,离开浏览器顶部又还原这样的例子其实不少,其实它的名字叫“层的智能浮动效果”.目前我们在国内的商业网站上就常常看到这样的效果了.例如 ...
- 设置一个div网页滚动时,使其固定在头部,当页面滚动到距离头部300px时,隐藏该div,另一个div在底部,此时显示;当页面滚动到起始位置时,头部div出现,底部div隐藏
设置一个div网页滚动时,使其固定在头部,当页面滚动到距离头部300px时,隐藏该div,另一个div在底部,此时显示: 当页面滚动到起始位置时,头部div出现,底部div隐藏 前端代码: <! ...
- 点击页面其它地方隐藏该div的两种思路
思路一 第一种思路分两步 第一步:对document的click事件绑定事件处理程序,使其隐藏该div 第二步:对div的click事件绑定事件处理程序,阻止事件冒泡,防止其冒泡到document,而 ...
随机推荐
- js设计模式--发布订阅模式
前言 本系列文章主要根据<JavaScript设计模式与开发实践>整理而来,其中会加入了一些自己的思考.希望对大家有所帮助. 概念 发布-订阅模式又叫观察者模式,它定义对象间的一种一对多的 ...
- Thinkphp5.0上传图片与运行python脚本
这里只体现了php可以通过批处理文件调用python脚本的效果 控制器代码 访问路径为127.0.0.1/index/index/upload. index模块,index控制器,upload方法. ...
- JavaScript的数组方法(array)
数组方法: 1. concat() 合并数组 2. join() 将数组的元素拼接成字符串,并指定分隔符 3. push() 往数组末尾添加一个元素,并返回新的数组的长度 4. reverse( ...
- pytorch中的torch.repeat()函数与numpy.tile()
repeat(*sizes) → Tensor Repeats this tensor along the specified dimensions. Unlike expand(), this fu ...
- GitLab: Deploy keys are not allowed to push code.
被这个问题坑了,大半天.写此博文,愿入坑的童鞋能及时托坑 一.当你第一次pull或者push gitlab远程项目的时候提示你一个该建立一个sshkey,此时你在客户端生成sshkey 二.切记要把这 ...
- 07-django项目连接远程mysql数据库
比如电脑a(ip地址为192.168.0.aaa)想要连接访问电脑b(ip地址为192.168.0.bbb)的数据库: 对电脑a(ip地址为192.168.0.aaa): 在项目settings.py ...
- MySQL存储引擎知多少
MySQL是我们经常使用的数据库处理系统(DBMS),不知小伙伴们有没有注意过其中的“存储引擎”(storage_engine)呢?有时候面试题中也会问道MySQL几种常用的存储引擎的区别.这次就简短 ...
- django 中实现文件下载的3种方式
方法一:使用HttpResponse from django.shortcuts import HttpResponse def file_down(request): file=open('/hom ...
- springcloud(十一)-Zuul聚合微服务
前言 我们接着上一节.在许多场景下,外部请求需要查询Zuul后端的多个微服务.比如一个电影售票手机APP,在购票订单页上,既需要查询“电影微服务”获得电影相关信息,又需要查询“用户微服务”获得当前用户 ...
- 27 Python 装饰器
一. 我们先写一个玩游戏的步骤 # def play(): # print("双击LOL") # print("选择狂战士") # print("进草 ...