jq滚动到一定位置的出现动画效果

实现原理:

ele.offset().top 元素到浏览器顶部(的)高(距离)
ele.offset().height 元素自己(的)高
$(window).scrollTop() 浏览器 滚动条 滚动(的)距离
$(window).height()浏览器 窗口(的)高 

当滚动的高
$(window).scrollTop() 加上 浏览器窗口的高$(window).height() > = 元素到浏览器顶部(的)高(距离) 执行动画 
代码实现:
var a, b, c, d;
$(window).scroll(function () {    moves($("#dh"),"move")});

// ele 要做动画的类 或者 id// movename  css的动画 类名
 function moves(ele,movename) {        a = ele.offset().top;        b = ele.offset().height;        c = $(window).scrollTop();        d = $(window).height();        if (d+c>a) {            $("#dh").addClass(movename);        }else{            $("#dh").removeClass(movename);        }    }});
列子demo参考 :
  1 <!DOCTYPE html>
  2 <html lang="en">
  3 <head>
  4     <meta charset="UTF-8">
  5     <title>waypoints</title>
  6     <style>
  7         #dh{
  8             position: absolute;
  9         }
 10         .move{
 11             animation: move 1s .5s ease-in-out infinite alternate;
 12             -webkit-animation: move 1s .5s  ease-in-out infinite alternate;
 13             -moz-animation: move 1s .5s  ease-in-out infinite alternate;
 14             -o-animation: move 1s .5s  ease-in-out infinite alternate;
 15         }
 16         @keyframes move {
 17             from{
 18               opacity: 1;
 19                 transform:translate(100px,20px);
 20                 -webkit-transform:rotate(0deg) scale(1.1);
 21                 -moz-transform:rotate(0deg) scale(1.1);
 22                 -o-transform:rotate(0deg) scale(1.1);
 23                 transform:rotate(0deg) scale(1.1);
 24             }
 25             to{
 26                 opacity: 0.6;
 27                 -webkit-transform:rotate(360deg) scale(1);
 28                 -moz-transform:rotate(360deg) scale(1);
 29                 -moz-transform:rotate(360deg) scale(1);
 30                 transform:rotate(360deg) scale(1);
 31
 32             }
 33
 34         }
 35
 36         @-webkit-keyframes move {
 37             from{
 38               opacity: 1;
 39                 transform:translate(100px,20px);
 40                 -webkit-transform:rotate(0deg) scale(1.1);
 41                 -moz-transform:rotate(0deg) scale(1.1);
 42                 -o-transform:rotate(0deg) scale(1.1);
 43                 transform:rotate(0deg) scale(1.1);
 44             }
 45             to{
 46                 opacity: 0.6;
 47                 -webkit-transform:rotate(360deg) scale(1);
 48                 -moz-transform:rotate(360deg) scale(1);
 49                 -moz-transform:rotate(360deg) scale(1);
 50                 transform:rotate(360deg) scale(1);
 51
 52             }
 53
 54         }
 55
 56         @-moz-keyframes move {
 57             from{
 58                 opacity: 1;
 59                 transform:translate(100px,20px);
 60                 -webkit-transform:rotate(0deg) scale(1.1);
 61                 -moz-transform:rotate(0deg) scale(1.1);
 62                 -o-transform:rotate(0deg) scale(1.1);
 63                 transform:rotate(0deg) scale(1.1);
 64             }
 65             to{
 66                 opacity: 0.6;
 67                 -webkit-transform:rotate(360deg) scale(1);
 68                 -moz-transform:rotate(360deg) scale(1);
 69                 -moz-transform:rotate(360deg) scale(1);
 70                 transform:rotate(360deg) scale(1);
 71
 72             }
 73
 74         }
 75
 76         @-o-keyframes move {
 77             from{
 78                 opacity: 1;
 79                 transform:translate(100px,20px);
 80                 -webkit-transform:rotate(0deg) scale(1.1);
 81                 -moz-transform:rotate(0deg) scale(1.1);
 82                 -o-transform:rotate(0deg) scale(1.1);
 83                 transform:rotate(0deg) scale(1.1);
 84             }
 85             to{
 86                 opacity: 0.6;
 87                 -webkit-transform:rotate(360deg) scale(1);
 88                 -moz-transform:rotate(360deg) scale(1);
 89                 -moz-transform:rotate(360deg) scale(1);
 90                 transform:rotate(360deg) scale(1);
 91
 92             }
 93
 94         }
 95
 96     </style>
 97 </head>
 98 <body>
 99 <br>
100 <br>
101 <br>
102 <br>
103 <br>
104 <br>
105 <br>
106 <br>
107 <br>
108 <br>
109 <br>
110 <br>
111 <br>
112 <br>
113 <br>
114 <br>
115 <br><br>
116 <br>
117 <br>
118 <br>
119 <br>
120 <br>
121 <br><br>
122 <br>
123
124 <br>
125 <br>
126 <br>
127 <br>
128 <dv id="dh" class="" style="padding: 10px; background: #ff3e2b">开始做动画了</dv>
129
130 <br>
131 <br>
132
133 <br>
134 <br>
135 <br>
136 <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
137 <script type="text/javascript">
138
139     function gdjz(div, cssname, offset) {
140
141 }
142 $(document).ready(function (e) {
143     var a, b, c, d;
144     $(window).scroll(function () {
145         moves($("#dh"),"move")
146     });
147
148     function moves(ele,movename) {
149         a = ele.offset().top;
150         b = ele.offset().height;
151         c = $(window).scrollTop();
152         d = $(window).height();
153         if (d+c>a) {
154             $("#dh").addClass(movename);
155         }else{
156             $("#dh").removeClass(movename);
157         }
158     }
159 });
160 </script>
161 </body>
162 </html>
				
时间: 2024-10-06 03:35:08

jq滚动到一定位置的出现动画效果的相关文章

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

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

长文本信息页滚动到当前位置显示相应动画的插件

说明: delayDis 你可以设置要显示元素距离页面可视区域底部多远执行动画 你可以使用内置样式但必须和示例dom结构一样 ro-opacity ro-scale ro-from-right ro-from-left 你可以结合animate.css使用 做出酷炫的出场效果 使用: npm install roll-page --S main.js 里写 import rollPage from 'roll-page'; Vue.use(rollPage) 组件里引用 <roll-page>

jq滚动插件jquery.nicescroll+定位到底部

<pre name="code" class="html"><!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="X-UA-Compat

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

用JavaScript实现页面滚动到div区域div以动画方式出现CSS动画 页面滚动到一块区域,改区域以动画方式出现实现这个效果需要二点:一我们要先写好一个css动画,二:用js的监听页面滑动的距离在给div添加动画 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <style> img { width: 1

外贸建站之纯CSS动画效果天之蓝滚动的白云代码分享

外贸建站之纯CSS动画效果天之蓝滚动的白云代码分享 /*改写chinaobd2.com Begin*/ /*如有定义header, footer 注意设置相应的位置,颜色等*/ body { padding-top: 0px; } @media (max-width: 577px) { body { padding-top: 35px; } } /*应用效果:未应用效果时可直接清除*/ @media (min-width: 768px) { header { background: #0064A

监听页面滚动及滚动到指定位置

两种监听页面滚动的方法 一.原生js通过window.onscroll监听window.onscroll = function() {//为了保证兼容性,这里取两个值,哪个有值取哪一个//scrollTop就是触发滚轮事件时滚轮的高度var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;console.log("滚动距离" + scrollTop);} 二.Jquery通过$(wind

Android - 交换控件位置:基于LayoutParams的瞬间交换与基于ObjectAnimator动画效果交换

现需要交换两个控件(本文中是两个RelativeLayout),找到了两个方法: 1.使用LayoutParams改变两个layout的属性,即其相对关系(below等),实现位置的交换,但是并没有交换的动画效果,是"瞬间"交换. 2.使用animation交换控件位置,实现了我需要的动画效果. 如下图,交换layoutOne 与layoutTwo . 一.首先介绍使用LayoutParams的方法. <span style="font-size:18px;"

android 检测ListView滚动到的位置

ListView滚动 1.要用到一个监听事件是:setOnScrollListener(); API解释是: Set the listener that will receive notifications every time the list scrolls. Parameters:l the scroll listener 2.它里面包含了两个方法: 一个是:onScrollStateChanged(AbsListView view, int scrollState),用来表明ListVi

IOS学习之UITableView滚动到指定位置

IOS学习之UITableView滚动到指定位置 方法很简单: - (void)scrollToRowAtIndexPath:(NSIndexPath *)indexPath atScrollPosition:(UITableViewScrollPosition)scrollPosition animated:(BOOL)animated 有些需要注意的地方: 如果在reloadData后需要立即获取tableview的cell.高度,或者需要滚动tableview,那么,直接在reloadDa