窗口滚动动画

在这篇教程中,我将为你介绍如何在页面滚动时触发css动画。这种效果使用JavaScript&CSS就能做到。

Jeet Grid System website 就是使用这种小技巧的例子,当你向下滚动的时候,CSS transform animation就被触发了。

想要达到这种目的,有很多Javascript/jQuery 插件可以用,比如WOW,在这篇教程中,我将为你展示如何不适用插件做到这种效果。

The markup

那么我们开始了,首先是写好html标签,revealOnScroll类必须家在需要在滚动时触发的元素上面。

 <div data-animation="flipInX" data-timeout="400">...some content here...

data-animation这个属性声明了将会触发animation.css中animation的名字,当然添加额外的timeout参数也可以使用同样的方法,这样做当你有很多元素在同个位置被触发时很有用。

The Javascript & CSS animation

然后,我们需要定义一些变量在JavaScript文件的顶部,(不要忘记加载jQuery&Modernizr需要检查是否为触摸设备)。还有为了实现动画效果,我加载了animation.css

var $window           = $(window),
win_height_padded = $window.height() * 1.1,
isTouch           = Modernizr.touch;

Then we have to watch for the scroll event that will be triggered when the user is scrolling:

然后我们需要监听滚动事件,并触发我们的函数。

$window.on(‘scroll‘, revealOnScroll);

在revealOnScroll函数里面我们检查元素是否需要执行动画,如果是得话,animation类就会添加,并触发了CSS animation。

function revealOnScroll() {
    var scrolled = $window.scrollTop();
     $(".revealOnScroll:not(.animated)").each(function () {
       var $this     = $(this),
           offsetTop = $this.offset().top;

       if (scrolled + win_height_padded > offsetTop) {
         if ($this.data(‘timeout‘)) {
           window.setTimeout(function(){
             $this.addClass(‘animated ‘ + $this.data(‘animation‘));
           }, parseInt($this.data(‘timeout‘),10));
         } else {
           $this.addClass(‘animated ‘ + $this.data(‘animation‘));
         }
       }
});

是不是很容易就完成了~ 还有另一个小技巧,当元素不可见的时候,animation类被移掉,这样在一次请求里面多次animate 动画。

Demo

See the Pen Trigger a CSS animation on scroll by Beno?t Boucart (@benske) on CodePen.

本文根据@Beno?t Boucart所译,整篇译文带有我自己的理解和意思,如果有译得不好的地方或者不对之处,还请大家指点。如需转载此译文,须注明英文出处:http://blog.webbb.be/trigger-css-animation-scroll/

译文出处:http://helkyle.com/2015/05/23/Animation-on-scroll/

时间: 2024-11-07 02:26:26

窗口滚动动画的相关文章

JS 实现无缝滚动动画原理(初学者入)

这段时间在教培训班的学生使用原生javascript实现无缝滚动的动画案例,做了这个原理演示的动画,分享给自学JS的朋友!博主希望对你们有帮助! 在讲解之前先看一下demo: demo:https://224137748.github.io/JS_warehouse/lunbo/domo.HTML源码:https://github.com/224137748/JS_warehouse/blob/master/lunbo/domo.HTML ps: 上面和下面的滚动进度是一致的,上面红色框是为了演

窗口的动画显示效果

在WinCE系统中,应用启动时,窗体有一个动画效果.但做产品时,大部分人都不想要此效果.可以通过修改注册表来完成. [HKEY_LOCAL_MACHINE/system/gwe]  "PORepaint"=dword:1 去掉APP窗口的动画显示效果  "Animate"=dword:0 下面的设置没有作用  "Cursor"=dword:0

推荐几款制作网页滚动动画的 JavaScript 库

这里集合了几款很棒的制作网页滚动动画的 JavaScript 库和插件.它们中,有的可以帮助你在页面滚动的时候添加动感的元素动画,有的则是实现目前非常流行的全屏页面切换动画.相信借助这些插件,你也可以让网站变得高大上起来. ScrollReveal.js ScrollReveal.js 用于创建和管理元素进入可视区域时的动画效果,帮助你的网站增加吸引力.只需要给元素增加 data-scrollreveal 属性,当元素进入可视区域的时候会自动被触发设置好的动画. 在线演示     立即下载 Sc

神奇的滚动动画,30个视差滚动网站设计

使用 HTML5 和 CSS3,我们能够在浏览器中创建更有趣和更吸引眼球的效果.其中,视差滚动(Parallax Scrolling)就是这样的效果之一.这种技术通过在网页向下滚动的时候,控制背景的移动速度比前景的移动速度慢来创建出令人惊叹的3D效果. 第一个视差滚动效果的网站是由伊恩·科伊尔在2011年设计的(叫“Nike Better World”,现在已经改版了).如今,视差滚动已经通过各种各样方式被大量使用,这是一个创建愉快的用户体验的伟大的方式. 在这个综合列表中,推荐了30个梦幻般的

几何画板演示多边形滚动动画的方法

如果我们生活中的车轮不是圆形的,而是正方形,那么我们应该修什么样的路,这样才能够使有正方形车轮的车辆如履平地?这是数学中的一个思维扩散题,其实不仅仅是正方形,还可以想象成是任意多边形.如果没有实物进行演示,很难让学生们想象是什么样子的?现在有了几何画板,制作一个多边形在直线上滚动的动画不再是什么难事.下面我们就点击"几何画板下载"获取软件来一起学习几何画板版友制作的多边形滚动动画课件. 几何画板制作的多边形滚动动画课件样图:  几何画板课件模板--动态演示多边形滚动动画 在该课件中,点

selenium之窗口滚动

在这里和大家分享一下,selenium里面常用于处理窗口滚动的方法. location_once_scrolled_into_view 一般用于定位窗口底部元素.将窗口拉到最底部. window.scrollTo(x,y)  js方法将窗口拉动到指定的X,Y坐标上.如果需要将窗口拉到最底部,可以使用Y=document.body.scrollHeight 具体代码如下: e=driver.find_element_by_xpath("//*[text()='联系我们']")   #需要

窗口滚动到当前元素才显示动画效果

1 $(function(){ 2 $(window).scroll(function(){ 3 var curr_element = $('当前元素class或id名') 4 var active_class = '显示动画效果的class或id' 5 var scroll_h = $(window).scrollTop()+$(window).height(); 6 var self_top = curr_element.offset().top; 7 var self_h = curr_e

Android官方开发文档Training系列课程中文版:手势处理之滚动动画及Scroller

原文地址:http://android.xsoftlab.net/training/gestures/scroll.html 在Android中,滑动经常由ScrollView类来实现.任何超出容器边界的布局都应该将自己内嵌在ScrollView中,以便提供可滚动的视图效果.自定义滚动只有在特定的场景下才会被用到.这节课将会描述这样一种场景:使用scroller显示一种可滚动的效果. 你可以使用Scroller或者OverScroller来收集一些滑动动画所需要的数据.这两个类很相似,但是Ove

模仿东京首页banner轮播,京东新闻上下滚动动画实现(动画实现)

接着上篇 微信小程序-阅读小程序demo写:http://www.cnblogs.com/muyixiaoguang/p/5917986.html 首页banner动画实现 京东新闻上下动画实现 想着模仿京东首页呢,结果也没赶得及写完,轮播图让我搞了好长时间.也好,那就国庆8天好好的写一下,这里写了一半,先放着.先介绍一下这一半的内容.       还是老规矩,先放个图吧,虽然才一点点了 上线的banner大图和京东头条都是可以滚动的,抄写微信小程序社区官方qq群:390289365里 Nige