在写网站的时候,有一些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");
}
})
})()
}

自写Jq动画载入插件的更多相关文章

  1. jQuery 选择器 筛选器 样式操作 文本操作 属性操作 文档处理 事件 动画效果 插件 each、data、Ajax

    jQuery jQuery介绍 1.jQuery是一个轻量级的.兼容多浏览器的JavaScript库. 2.jQuery使用户能够更方便地处理HTML Document.Events.实现动画效果.方 ...

  2. 自写JQ控件-树状菜单控件[demo下载]

    一个多月没有写博客了,最近也弄一个基于JQ的树状菜单控件,在此分享给大家.另外呢,通过这个例子分享一下怎么写JQ控件的. 事实上工作中,也是经常遇到的,有些时候自己想实现一些前端效果,用网上一些插件吧 ...

  3. css动画和jq动画的简单区分

    有很多不怎么用css3写动画的同学经常会对其中css3的transform,transition,translate,animation,@keyframes等等动画属性混淆错乱,经常使用了发现没有效 ...

  4. (21)jq动画

    jq动画的优点 优点: 1.可以知道动画结束的表示(结束的回调函数) 2.可以利用jq动画插件完成复杂的动画 动画有三个参数:动画的样式是字典.动画持续的事件,动画结束回调函数 <!DOCTYP ...

  5. Android插件化(三)载入插件apk中的Resource资源

    Android载入插件apk中的Resource资源 简单介绍 怎样载入未安装apk中的资源文件呢?我们从android.content.res.AssetManager.java的源代码中发现,它有 ...

  6. 一款炫酷Loading动画--载入失败

    简单介绍 上一篇文章一款炫酷Loading动画–载入成功.给大家介绍了成功动画的绘制过程,这篇文章将接着介绍载入失败特效的制作. 相比成功动画,有了前面的经验,失败动画的过程就显得比較简单了. 动画结 ...

  7. DrawSVG - SVG 路径动画 jQuery 插件

    jQuery DrawSVG 使用了 jQuery 内置的动画引擎实现 SVG 路径动画,用到了 stroke-dasharray 和 stroke-dashoffset 属性.DrawSVG 是完全 ...

  8. jQuery.smoove — jQuery和CSS3炫酷滚动页面内容元素动画特效插件

    插件介绍: jQuery-smoove是一款jQuery和CSS3炫酷滚动页面内容元素动画特效插件.该内容元素动画插件在页面滚动到指定位置时,该位置的HTML元素会执行指定的CSS3动画特效,如旋转. ...

  9. 手写js面向对象选项卡插件

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

随机推荐

  1. [51nod1222] 最小公倍数计数(莫比乌斯反演)

    题面 传送门 题解 我此生可能注定要和反演过不去了--死都看不出来为啥它会突然繁衍反演起来啊-- 设\(f(n)=\sum_{i=1}^n\sum_{j=1}^n[{ij\over\gcd(i,j)} ...

  2. P3943 星空 区间异或差分

    \(\color{#0066ff}{ 题目描述 }\) 逃不掉的那一天还是来了,小 F 看着夜空发呆. 天上空荡荡的,没有一颗星星--大概是因为天上吹不散的乌云吧. 心里吹不散的乌云,就让它在那里吧, ...

  3. 缩点【洛谷P2860】 [USACO06JAN]冗余路径Redundant Paths

    P2860 [USACO06JAN]冗余路径Redundant Paths 为了从F(1≤F≤5000)个草场中的一个走到另一个,贝茜和她的同伴们有时不得不路过一些她们讨厌的可怕的树.奶牛们已经厌倦了 ...

  4. 轻量级编辑器透彻指南--Notepad++

    Notepad++是Windows环境下的一款编辑器.比起VSCode等现代编辑器,Notepad++同样具备很多功能.Notepad++一个特点就是轻巧,方便在Windows环境中使用,且编辑功能强 ...

  5. Java内存区域与内存溢出异常---对象的创建

    对象的创建   在语言层面,创建一个对象通常仅仅是一个new关键字而已.在虚拟机层面,虚拟机遇到一个new指令时,首先回去检查这个指令的参数是能在常量池中定位到一个类的符号引用,并检查这个符号引用代表 ...

  6. freemarker常用标签解释二

    1 assign 指令 使用这个指令你可以创建一个新的变量,或者替换一个已经存在的变量.注意仅仅顶级变量可以被创建/替换(也就是说你不能创建/替换some_hash.subvar,除了some_has ...

  7. php版 日文半角转全角

    工作需要,写的这个 /* *转载请注明 http://www.cnblogs.com/kclteam/p/5278923.html$str //参数可以是字符串或数组*/ function HkToF ...

  8. Ruby truthy and falsey

    在Ruby里只有false 和nil表示falsey link: https://gist.github.com/jfarmer/2647362

  9. ZPL打印机公用代码

    using System;using System.Collections.Generic;using System.Linq;using System.Web; using System.Text; ...

  10. pandas DataFrame数据转为list

    dfpath=df[df['mm'].str.contains('20180122\d')].values dfplist=np.array(dfpath).tolist()