在写网站的时候,有一些dom第一次进入屏幕时需要加一个动画进入效果,如下图

于是,自己就研究下,要是实现gif图中左图效果大致原理就是首先将dom放在他的左侧,并将他的透明度(opacity)设置为0;

然后监听滚轮当dom出现在屏幕中时候,然后dom移回原位,并且透明度(opacity)设置为1。

html如下

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
.box{
width: %;
height: 100px;
margin-top: 1500px; }
.txt{
margin-left:100px; width: 600px;
display:inline-block;
}
#txt{ width: 600px;
display:inline-block;
}
.AtFirst{
opacity: ;
transform: translateX();
transition-duration: 2s;
}
.left{
opacity: ;
transform: translateX(-100px);
}
.right{
opacity: ;
transform: translateX(100px);
}
</style>
</head>
<body>
<div class="box">
<div class="txt"><img src="imgs/1.jpg" /></div>
<div id="txt"><img src="imgs/2.jpg" /></div>
</div>
<div class="box"></div>
</body>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script src="js/socllII.js"></script>
<script>
$(".txt").ScrollLeft();
$("#txt").ScrollRight();
</script>
</html>

插件代码如下

$.fn.extend({ 

ScrollLeft:function(){
var that=this;
return (function(){
that.addClass('AtFirst');
that.addClass('left');
$(window).bind("scroll",function(){
var ss=that.offset().top- $(window).height() +;
if($(window).scrollTop() > ss){
that.removeClass('left');
$(this).unbind("scroll");
}
})
})()
},
ScrollRight:function(){
var that=this;
return (function(){
that.addClass('AtFirst');
that.addClass('right');
$(window).bind("scroll",function(){
var ss=that.offset().top- $(window).height() +;
if($(window).scrollTop() > ss){
that.removeClass('right');
$(this).unbind("scroll");
}
})
})()
}
});

这个插件中我用闭包是怕外层函数的this到jq监听滚轮时,this指向就不再是原来的dom,其实不用闭包也可以的。

代码如下

ScrollLeft:function(){
var that=this;
  that.addClass('AtFirst');
that.addClass('left');
$(window).bind("scroll",function(){
var ss=that.offset().top- $(window).height() +;
if($(window).scrollTop() > ss){
that.removeClass('left');
$(this).unbind("scroll");
}
})
}

我只是写了两种动画效果,如果你需要多种特效的话,可以去下载animate.min.css,引用到html中,然后修改下插件代码即可

代码如下

ScrollRight:function(){
var that=this;
return (function(){
that.addClass('AtFirst');
that.addClass('right');
$(window).bind("scroll",function(){
var ss=that.offset().top- $(window).height() +;
if($(window).scrollTop() > ss){
that.addClass('animated flipInY');//前一个class一定要加,后一个class看你要什么效果,自己修改。
that.removeClass('right');
$(this).unbind("scroll");
}
})
})()
}

最新文章

  1. 深入JVM-锁与并发
  2. Mysql数据库设置定时任务
  3. sqlserver 动态行转列
  4. Qt字符串类——2. 查询字符串数据
  5. Windows C++ 子目录数量
  6. HQL
  7. redis 配置文件 append only file(aof)部分---数据持久化
  8. 学习笔记 - 深究Bitmap压缩避免OOM的核心inSampleSize的最佳取值
  9. PHP的PSR-0命名标准
  10. jQuery实现iframe的自适应高度
  11. 标准建立二叉树NEW
  12. Java图形化界面设计——布局管理器之null布局(空布局)
  13. PGA_AGGREGATE_TARGET 原理
  14. (4)Object对象的几个常用方法
  15. BZOJ-2298|区间dp|线段树
  16. 好用的treeGrid
  17. python改文件名
  18. Qt只QSetting
  19. 浅谈|WEB 服务器 -- Caddy
  20. 前后端分离之JWT用户认证(转)

热门文章

  1. 洛谷 P2447 [SDOI2010]外星千足虫
  2. Oracle数据稠化
  3. zabbix监控nginx进程
  4. redis常用数据类型与命令
  5. spring boot中 启用aspectj
  6. Kibana6.2.x 插件理解
  7. 读经典——《CLR via C#》(Jeffrey Richter著) 笔记_引用类型和值类型(二)
  8. POJ3074 Sudoku 剪枝深(神?)搜
  9. 江西财经大学第一届程序设计竞赛 C
  10. 09-排序2 Insert or Merge (25 分)