手写的 wow.js

1 篇文章 0 订阅

用法:

  • 给相应的dom添加 : class与data-class
  • 设置 css
  • 应用js

class与data-class

<div class="content wow" data-class="a-fadeIn"></div>

css

.a-fadeIn{
	    	animation: fadeIn 1s both;
	    }
@keyframes fadeIn{
	0%{opacity:0};
	100%{opacity:1};
}

.wow{
	visibility: hidden;
}

js

(function(){
				let W = document.getElementsByClassName('wow');
				let L = W.length;
				//  存储 wow的数据height与class
				let hc = [];  
				for(let i = 0;i<L;i++){
					let o = {};
					o.h = W[i].offsetTop;
					o.c = W[i].getAttribute('data-class');
					hc.push(o);
					
				}

				function wow(){
					let clientH = document.documentElement.clientHeight || document.body.clientHeight;
					let addH = clientH - 100;
					let scrollT = document.documentElement.scrollTop || document.body.scrollTop;

					for(let i = 0;i<L;i++){

						if(scrollT + addH - hc[i].h <= 0){
							if(W[i].className.indexOf(hc[i].c) > 0){
								W[i].className = W[i].className.replace('a-fadeIn',' ');
								console.log(W[i].className);
								W[i].style.visibility = 'hidden';

							}
						}else{
							if(W[i].className.indexOf(hc[i].c) < 0){
								W[i].className += " " + hc[i].c;
								W[i].style.visibility = 'visible';
							}
						}
					}
				}

				window.onscroll = wow;
				window.onload = wow;

			})();

总结:

    稍加改进wow.js,使反复上下滑动页面都有(fadeIn)效果.

个人能力有限,可改进的地方请指出,勿喷。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值