插件:jquery不可能包含所有的功能,我们可以通过插件扩展jquery的功能。 jQuery有着丰富的插件,使用这些插件能给jQuery提供一些额外的功能。 常用网站:jquery之家 jquery插件库 github 站长之家

  • 颜色渐变插件
  • 弹出层插件 layer
  • 图片懒加载插件
  • 动画插件 Easing.js
  • 抽奖插件
  • 放大镜插件
  • 手风琴插件
  • 侧边栏插件
  • jQueryUI:常用的2-3个功能演示
  • 360度旋转插件
  • 视差滚动插件

一、颜色渐变

animate不支持颜色的渐变,但是使用了jquery.color.js后,就可以支持颜色的渐变了。

  1. //使用插件的步骤
  2. 1. 引入jQuery文件
  3. 2. 引入插件(如果有用到css的话,需要引入css
  4. 3. 使用插件
  5. jQuery("#go").click(function(){
  6. jQuery("#block").animate({
  7. backgroundColor: "#abcdef"
  8. }, 1500 );
  9. });

二、弹出层插件layer

三、图片懒加载

懒加载插件 (当图片随着滚动条滚动将要显示的时候才去加载图片)

  1. //1. 引入jQuery文件
  2. //2. 引入插件(如果有用到css的话,需要引入css)
  3. //3. 使用插件
  4. <!--引入插件-->
  5. <script src="jquery.js" type="text/javascript"></script>
  6. <script src="jquery.lazyload.js" type="text/javascript"></script>
  7. <!--html标签-->
  8. <img class="lazy" data-original="img/example.jpg" width="640" height="480">
  9. <!--js代码-->
  10. $("img.lazy").lazyload();

四、jquery Easing.js 插件

介绍:easing是jquery的一个插件,使用它可以创建更加绚丽的动画效果。
环境:因为easing是jQuery的插件,所以必须是在引入jquery之后再引入它

  1. //animate 四个参数
  2. //1.动画属性:格式为json
  3. //2.duration:持续时间
  4. //3.过渡效果:过渡效果
  5. //4.complete:成功后的回调函数
  6. $(".car").animate({"left": "150%"}, 4000, "easeInElastic", function(){});
  7. //注意点:car需要添加定位
  1. //也可以这样写
  2. $(".car").animate({
  3. height:500,
  4. width:600
  5. },
  6. {
  7. easing: 'easeInOutQuad',
  8. duration: 500,
  9. complete: function(){}
  10. });

esse.png

五、 jquery.ui.js插件

jQueryUI专指由jQuery官方维护的UI方向的插件。现在用的不多,主要用bootstrap。
官方API:http://api.jqueryui.com/category/all/
其他教程:jQueryUI教程

  1. //基本使用:
  2. 1.引入jQuery
  3. 2.引入jQueryUI的样式文件
  4. 3.引入jQueryUIjs文件
  5. 4.使用jQueryUI功能
  6. 根据f12找到对应的页面元素,复制代码到当前html文件中
  7. 复制对应的cssjs文件代码(打开网页source源码,根据id查找对应的代码复制黏贴)

六、360度3D 旋转插件

  1. ##1. 引用js文件包
  2. <script src="js/jquery.min.js"></script>
  3. <script src="js/circlr.min.js"></script>
  4. ##2. 书写结构:
  5. <div class="container">
  6. <div id="circlr">
  7. <img data-src="picture/1.png" />
  8. <img data-src="picture/2.png" />
  9. <img data-src="picture/3.png" />
  10. ...
  11. <div id="loader"></div>
  12. </div>
  13. </div>
  14. //注意 自定义属性 data-src 里面写路径
  15. //loader 是加载图片
  16. ##3. css样式
  17. #circlr {
  18. cursor: move;
  19. margin: 0 auto;
  20. min-height: 100px;
  21. position: relative;
  22. }
  23. #circlr #loader {
  24. background: url(../images/loader.gif) center center no-repeat;
  25. bottom: 0;
  26. display: none;
  27. left: 0;
  28. position: absolute;
  29. right: 0;
  30. top: 0;
  31. }
  32. ##4. 调用文件对象
  33. <script type="text/javascript">
  34. var crl = circlr('circlr', {
  35. scroll : true,
  36. loader : 'loader'
  37. });
  38. </script>

七、视差滚动插件

视差滚动(Parallax Scrolling)指网页滚动过程中,多层次的元素进行不同程度的移动,视觉上形成立体运动效果的网页展示技术
主要核心就是前景和背景以不同的速度移动,从而创造出3D效果。 这种效果可以给网站一个很好的补充

7-1 特性

  1. 视差滚动效果酷炫,适合于个性展示的场合。
  2. 视差滚动徐徐展开,适合于娓娓道来,讲故事的场合。
  3. 视差滚动容易迷航,需要具备较强的导航功能。

7-2 原理

  1. 传统的网页的文字、图片、背景都是一起按照相同方向相同速度滚动的,而视差滚动则是在滚动的时候,内容和多层次的背景实现或不同速度,或不同方向的运动。
  2. 有的时候也可以加上一些透明度、大小的动画来优化显示。
  3. 利用background-attachment属性实现。
  4. background-attachment: fixed || scroll || local
  5. 1.fixed:背景图片的位置固定不变
  6. 2.scroll:当滚动容器的时候,背景图片也会跟随滚动
  7. 3.local:背景图片会跟随内容一起滚动
  1. ## background-attachment介绍
  2. <div id="box">
  3. <div id="inner">
  4. <p>文本</p>
  5. <p>文本</p>
  6. <p>文本</p>
  7. <p>文本</p>
  8. <p>文本</p>
  9. <p>文本</p>
  10. <p>文本</p>
  11. <p>文本</p>
  12. <p>文本</p>
  13. <p>文本</p>
  14. <p>文本</p>
  15. <p>文本</p>
  16. <p>文本</p>
  17. <p>文本</p>
  18. <p>文本</p>
  19. <p>文本</p>
  20. <p>文本</p>
  21. <p>文本</p>
  22. <p>文本</p>
  23. <p>文本</p><p>文本</p>
  24. <p>文本</p>
  25. <p>文本</p>
  26. <p>文本</p>
  27. <p>文本</p>
  28. </div>
  29. </div>
  30. <style>
  31. #box{
  32. width: 300px;
  33. height: 300px;
  34. background: yellow;
  35. overflow: auto;
  36. }
  37. #inner{
  38. width: 250px;
  39. height: 400px;
  40. background: red;
  41. overflow: auto;
  42. background-image: url(images/shuli.jpg);
  43. /*background-attachment:fixed;*/ /*无论是inner盒子本身发生滚动还是inner盒子内容发生滚动,背景图片都不滚动*/
  44. /*background-attachment:scroll;*/ /*当inner盒子滚动的时候背景图片也会滚动,inner内容滚动的时候背景图片不滚动*/
  45. background-attachment:local; /*滚动inner盒子本身还是inner盒子内容,背景图片都会被滚动*/
  46. }
  47. </style>

7-3 Stellar.js的使用

stellar.js是一个 jQuery插件,能很容易地给网站添加视差滚动效果。 尽管已经停止了维护,但它非常稳定,与最新版本的jQuery兼容,很多开发者也在使用它。 这个插件在jQuery插件库里很流行。

  1. http://markdalgleish.com/projects/stellar.js
  1. ##1. 引用 js
  2. <script src="path/to/jquery/jquery.min.js"></script>
  3. <script src="path/to/jquery.stellar.min.js"></script>
  1. ##2. 引用html
  2. <div class="content" id="content1">
  3. <p>TEXT HERE</p>
  4. </div>
  5. <div class="content" id="content2">
  6. <p>TEXT HERE</p>
  7. </div>
  8. <div class="content" id="content3" data-stellar-background-ratio="0.5">
  9. <p>TEXT HERE</p>
  10. </div>
  11. <div class="content" id="content4" data-stellar-background-ratio="0.5">
  12. <p>TEXT HERE</p>
  13. </div>
  14. <div class="content" id="content5" data-stellar-background-ratio="0.5">
  15. <p>TEXT HERE</p>
  16. </div>
  17. <div class="content" id="content6" data-stellar-background-ratio="0.5">
  18. <p>TEXT HERE</p>
  19. </div>
  1. ##3. 引入CSS
  2. body {
  3. font-size: 20px;
  4. color: white;
  5. text-shadow: 0 1px 0 black, 0 0 5px black;
  6. }
  7. p {
  8. padding: 0 0.5em;
  9. margin: 0;
  10. }
  11. .content {
  12. background-attachment: fixed;
  13. height: 400px;
  14. }
  15. #content1 {
  16. background-image: url("xxx.jpg");
  17. }
  18. #content2 {
  19. background-image: url("xxx.jpg");
  20. }
  21. #content3 {
  22. background-image: url("xxx.jpg");
  23. }
  24. #content4 {
  25. background-image: url("xxx.jpg");
  26. }
  27. #content5 {
  28. background-image: url("xxx.jpg");");
  29. }
  30. #content6 {
  31. background-image: url("xxx.jpg");
  32. }
  1. ##4. js调用函数
  2. $.stellar({
  3. horizontalScrolling: false,
  4. responsive: true
  5. });

7-4 Stellar.js的详细参数

名称 说明
horizontalScrolling 和 verticalScrolling 该配置项用来设置视差效果的方向。horizontalScrolling设置水平方向,verticalScro设置垂直方向, 为布尔值,默认为true
responsive 窗口加载完毕或者改变大小时是否刷新滚动元素,默认为false
hideDistantElements 该配置项用来设置移出视线的元素是否隐藏,其值为布尔值,若不想隐藏则设置为false
data-stellar-ratio=”2” 定义了此元素针对页面滚动的速度比率,比如,0.5为页面滚动的50%,2为页面滚动的200%,所以数值越大,你可以看到页面元素滚动速度越快。
data-stellar-background-ratio 该配置项用在单个元素中,其值为一个正数,用来改变被设置元素的影响速度。 例如 值为0.3时,则表示背景的滚动速度为正常滚动速度的0.3倍。如果值为小数时最好在样式表中设置

八、制作jQuery插件

给jQuery增加方法的两种方式

  1. $.method = fn 静态方法
  2. $.fn.method = fn 实例方法

原理:jquery插件其实说白了就是给jquery的原型属性增加一个新的方法,让所有的jquery对象拥有某一个功能。

  1. //通过给prototype添加方法就能够扩展jquery对象
  2. $.prototype.pluginName = function() {};
  3. //fn 等效于 prototype
  4. $.fn.pluginName = function() {};

增加一个静态方法,实现两个数的和,插件

  1. (function ($) {
  2. $.add = function (a, b) {
  3. return a + b;
  4. }
  5. }(jQuery))
  6. $.add(5, 6);

实例方法制作简易的jquery插件

  1. //1.新建jquery.bgColor.js文件
  2. //给jquery对象新增一个设置颜色的方法
  3. $.fn.bgColor = function(color){
  4. //原型中的this是当前对象
  5. this.css("backgroundColor",color);
  6. return this;
  7. }
  8. //2.使用上面自定义的jquery插件
  9. //2.1 引入js
  10. //2.2 使用自定义的插件
  11. //调用我们自己定义的方法给jquery对象赋予颜色
  12. $("div").bgColor("red");

自定义表格插件

  1. (function($) {
  2. // 内部的变量,外部无法访问,防止变量名冲突
  3. var a = 0;
  4. // 给$增加了一个实例方法
  5. $.fn.table = function (header, data) {
  6. var array = [];
  7. array.push('<table>');
  8. array.push('<tr>');
  9. // 生成表头
  10. $.each(header, function () {
  11. array.push('<th>' + this + '</th>');
  12. })
  13. array.push('</tr>');
  14. // 生成数据行
  15. $.each(data, function (index) {
  16. // this是当前遍历到的数组中的每一个对象
  17. // 拼数据行
  18. array.push('<tr>');
  19. array.push('<td>' + (index + 1) + '</td>');
  20. // 遍历对象,拼表格
  21. for (var key in this) {
  22. array.push('<td>' + this[key] + '</td>');
  23. }
  24. array.push('</tr>');
  25. })
  26. array.push('</table>');
  27. this.append(array.join(''));
  28. }
  29. }(window.jQuery))