在写网站的时候,有一些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. 【bzoj4939】【YNOI2016】掉进兔子洞(莫队)

    题目描述 您正在打galgame,然后突然发现您今天太颓了,于是想写个数据结构题练练手: 一个长为 n 的序列 a. 有 m 个询问,每次询问三个区间,把三个区间中同时出现的数一个一个删掉,问最后三个 ...

  2. Cardinality (基数)

    名词 Cardinality:    优化器在计算成本的时候,需要从统计信息中取得数据,然后去估计每一步操作所涉及的行数,叫做Cardinality.    比如,一张表T有1000行数据,列COL1 ...

  3. 实现织梦dedecms百度主动推送(实时)网页抓取

    做百度推广的时候,如何让百度快速收录呢,下面提供了三种方式,今天我们主要讲的是第一种. 如何选择链接提交方式 1.主动推送:最为快速的提交方式,推荐您将站点当天新产出链接立即通过此方式推送给百度,以保 ...

  4. 基于XML的类的属性的装配

    基于XML的属性装配 1.手动装配 <!-- 属性的装配:手动装配 --> <bean id="userService" class="com.neue ...

  5. 批量mvn 打包 bat文件命令

    @echo off cd /d "E:\project\Branches\Source\" svn up mvn clean install -Dmaven.test.skip=t ...

  6. spring 和 spirngMvc 中 异常处理

    spring 中 的 异常处理 使用的是aspectj @Aspect @Component /** * * @author **** * @createData 2017年7月13日 上午8:36: ...

  7. 读经典——《CLR via C#》(Jeffrey Richter著) 笔记_类型的各种成员

    [Class中,可能包含的成员] 常量, 字段, 实例构造器, 类型构造器, 方法, 操作符重载, 转换操作符, 属性, 事件, 类型(Class)

  8. 75th LeetCode Weekly Contest Champagne Tower

    We stack glasses in a pyramid, where the first row has 1 glass, the second row has 2 glasses, and so ...

  9. Java String 字符串操作小结

    // 转载加编辑 -- 21 Apr 2014 1. Java字符串中子串的查找 Java中字符串中子串的查找共有四种方法,如下: 1.int indexOf(String str) :返回第一次出现 ...

  10. Go语言基础之16--Mysql基本操作

    一.Mysql驱动及数据库连接 1.1 Golang中的Mysql驱动 A. https://github.com/go-sql-driver/mysql B. Go本身不提供具体数据库驱动,只提供驱 ...