前端系列之jQuery(jQuery插件)

2023-11-14

jQuery的插件机制

jQuery主要有两种使用方式:
1、在jQuery集合对象上调用方法
2、直接调用jQuery方法

扩展jQuery对象上的方法:jQuery.fn.extend()
扩展jQuery工具方法:jQuery.extend()//给jQuery本身的类添加新的方法

如何寻找自己需要的插件

http://plugins.jquery.com/

这里写图片描述

此网站已经停止维护,官方的说明是在NPM上面进行插件的使用

这里写图片描述

这里写图片描述

建议使用Star数量比较多的(大于1000的就比较好了),维护频繁,文档齐全的插件。

如何使用插件

1.引入插件:

这里写图片描述

2.查看并实现示例代码

3.阅读文档

以jquery.easing插件为例

这里写图片描述

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>demo</title>
    <style>
    .panel {
        width: 300px;
        margin: 50px 0 0 50px;
        box-shadow: 0 0 10px #999;
        line-height: 1.8;
        text-align: center;
        font-size: 20px;
        color: #fff;
    }

    .title {
        background-color: #c7731f;
    }

    h1 {
        margin: 0;
        padding: 0;
    }

    .body {
        padding: 30px 10px;
        background-color: #5298c7;
    }
    </style>
</head>

<body>
    <div class="panel">
        <div class="title">
            <h1>唐诗一首</h1>
        </div>
        <div class="body">
            <p>
                白日依山尽,
                <br> 黄河入海流。
                <br> 欲穷千里目,
                <br> 更上一层楼。
                <br>
            </p>
        </div>
    </div>
    <script src="../../../vendor/jquery-1.12.4.js"></script>
    <script src="../../../vendor/jquery.easing.js"></script>
    <script>
    $(function() {

        $('.title').click(function() {

            $(this).siblings('.body').slideUp(1000, 'easeInOutCirc');
        });

    });
    </script>
</body>

</html>

slick插件示例

<html>

<head>
    <title>My Now Amazing Webpage</title>
    <link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/jquery.slick/1.6.0/slick.css" />
    <link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/jquery.slick/1.6.0/slick-theme.css" />
</head>

<body>
    <div class="your-class">
        <div>your content</div>
        <div>your content</div>
        <div>your content</div>
        <div>your content</div>
        <div>your content</div>
        <div>your content</div>
    </div>
    <script type="text/javascript" src="//code.jquery.com/jquery-1.11.0.min.js"></script>
    <script type="text/javascript" src="//code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
    <script type="text/javascript" src="//cdn.jsdelivr.net/jquery.slick/1.6.0/slick.min.js"></script>
    <script type="text/javascript">
    $(document).ready(function() {
        $('.your-class').slick({
            infinite: true,
            slidesToShow: 3,
            slidesToScroll: 3
        });
    });
    </script>
</body>

</html>

几个实用的插件使用

chosen:选择框
https://github.com/harvesthq/chosen

这里写图片描述

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link href="//cdn.bootcss.com/chosen/1.6.2/chosen.css" rel="stylesheet">
</head>

<body>
    <select name="demo" id="demo" style="width: 300px">
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
    </select>
    <br>
    <br>
    <select name="demo2" id="demo2" multiple data-placeholder="请选择...">
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
    </select>
    <script src="vendor/jquery-1.12.4.js"></script>
    <script src="//cdn.bootcss.com/chosen/1.6.2/chosen.jquery.js"></script>
    <script>
    $(function() {
        $('#demo').chosen();
        $('#demo2').chosen({
            width: '50%'
        });
    });
    </script>
</body>

</html>

pickadate:日期选择输入

https://github.com/amsul/pickadate.js

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link href="//cdn.bootcss.com/pickadate.js/3.5.6/compressed/themes/default.css" rel="stylesheet">
    <link href="//cdn.bootcss.com/pickadate.js/3.5.6/compressed/themes/default.date.css" rel="stylesheet">
    <link href="//cdn.bootcss.com/pickadate.js/3.5.6/compressed/themes/default.time.css" rel="stylesheet">
</head>

<body>
    <input type="text" class="datepicker">
    <br>
    <br>
    <input type="text" class="timepicker">
    <script src="vendor/jquery-1.12.4.js"></script>
    <script src="//cdn.bootcss.com/pickadate.js/3.5.6/compressed/picker.js"></script>
    <script src="//cdn.bootcss.com/pickadate.js/3.5.6/compressed/picker.date.js"></script>
    <script src="//cdn.bootcss.com/pickadate.js/3.5.6/compressed/picker.time.js"></script>
    <script src="//cdn.bootcss.com/pickadate.js/3.5.6/compressed/translations/zh_CN.js"></script>
    <script>
    $(function() {
        var dateinput = $('.datepicker').pickadate();
        var datepicker = dateinput.pickadate('picker');


        $('.timepicker').pickatime();

        datepicker.on({
            open: function() {
                console.log('Opened up!');
            },
            close: function() {
                console.log('Closed now');
            },
            render: function() {
                console.log('Just rendered anew');
            },
            stop: function() {
                console.log('See ya');
            },
            set: function(thingSet) {
                console.log('Set stuff:', thingSet);
            }
        });
    });
    </script>
</body>

</html>

Magnific-Popup:图片浏览
https://github.com/dimsemenov/Magnific-Popup

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link href="//cdn.bootcss.com/magnific-popup.js/1.1.0/magnific-popup.css" rel="stylesheet">
    <style>
    /* padding-bottom and top for image */

    .mfp-no-margins img.mfp-img {
        padding: 0;
    }
    /* position of shadow behind the image */

    .mfp-no-margins .mfp-figure:after {
        top: 0;
        bottom: 0;
    }
    /* padding for main container */

    .mfp-no-margins .mfp-container {
        padding: 0;
    }
    </style>
</head>

<body>
    <a class="image-popup-vertical-fit" href="http://farm9.staticflickr.com/8241/8589392310_7b6127e243_b.jpg" title="Caption. Can be aligned to any side and contain any HTML.">
        <img src="http://farm9.staticflickr.com/8241/8589392310_7b6127e243_s.jpg" width="75" height="75">
    </a>
    <a class="image-popup-fit-width" href="http://farm9.staticflickr.com/8379/8588290361_ecf8c27021_b.jpg" title="This image fits only horizontally.">
        <img src="http://farm9.staticflickr.com/8379/8588290361_ecf8c27021_s.jpg" width="75" height="75">
    </a>
    <a class="image-popup-no-margins" href="http://farm4.staticflickr.com/3721/9207329484_ba28755ec4_o.jpg">
        <img src="http://farm4.staticflickr.com/3721/9207329484_ba28755ec4_o.jpg" width="107" height="75">
    </a>
    <script src="vendor/jquery-1.12.4.js"></script>
    <script src="//cdn.bootcss.com/magnific-popup.js/1.1.0/jquery.magnific-popup.js"></script>
    <script>
    $(function() {
        $('.image-popup-vertical-fit').magnificPopup({
            type: 'image',
            closeOnContentClick: false,
            mainClass: 'mfp-img-mobile',
            image: {
                verticalFit: true
            }

        });

        $('.image-popup-fit-width').magnificPopup({
            type: 'image',
            closeOnContentClick: true,
            image: {
                verticalFit: false
            }
        });

        $('.image-popup-no-margins').magnificPopup({
            type: 'image',
            closeOnContentClick: true,
            closeBtnInside: false,
            fixedContentPos: true,
            mainClass: 'mfp-no-margins mfp-with-zoom', // class to remove default margin from left and right side
            image: {
                verticalFit: true
            },
            zoom: {
                enabled: true,
                duration: 300 // don't foget to change the duration also in CSS
            }
        });
    });
    </script>
</body>

</html>

如何编写一款插件?

注意项:

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

实现一个修改颜色的小插件

jquery.colorful.js

(function($) {
    var namespace = 'colorful';

    var methods = {
        init: function(options) {
            options = $.extend({}, $.fn[namespace].defaults, options);

            if (options.font) { this.css('color', options.color); }
            if (options.background) { this.css('background-color', options.color); }

            return this;
        }
    };

    $.fn[namespace] = function(method) {
        if (methods[method]) {
            return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
        } else if ($.type(method) === 'object') {
            return methods.init.apply(this, arguments);
        } else {
            $.error('Method' + method + ' does not exist!');
        }
    };

    $.fn[namespace].defaults = {
        color: 'red',
        background: false,
        font: true
    };
})(jQuery);

colorful.html

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>

<body>
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. A asperiores assumenda atque cum cupiditate debitis dolore doloribus illum inventore, magnam pariatur placeat similique suscipit! A accusantium cum dolore numquam optio.</p>
    <script src="vendor/jquery-1.12.4.js"></script>
    <script src="jquery.colorful.js"></script>
    <script>
    $(function() {
                  $('p').colorful('init')

                  $('p').colorful('init', {
                      background: true,
                      font: false
                  })

//      $('p').colorful({
//          color: 'green',
//          background: true,
//          font: false
//      }).css('font-size', '30px');
    });
    </script>
</body>

</html>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

前端系列之jQuery(jQuery插件) 的相关文章

  • jquery悬停一次?

    jquery 使悬停函数执行一次然后停止的方法是什么 one 不起作用 button color 2 hover function dosmth 谢谢 Hover http api jquery com hover 绑定处理程序鼠标输入 h
  • Razor mvc3 + jquery + Url 操作 + 部分视图

    我有一个关于 jQuery Razor 的问题 我想使用 razor 和 Url Action 构建一个 javascript 变量 并且 html 属性将是输入的值 像这样 var d1 d1 val var d2 d2 val var
  • Twitter Typeahead 上使用 Bootstrap 3 的 CSS 问题

    随着 Bootstrap 3 的发布 Typeahead 已被删除 取而代之的是 https github com twitter typeahead js https github com twitter typeahead js 我已经
  • 如何从 html 页面 [javascript] 调用 Web 服务方法而不刷新页面

    我有一个webservice这将返回一个值 我的要求是 我需要调用它webservice从一个index html页面 该页面有一个 html 提交按钮 在该按钮上单击我正在呼叫JavaScript 从那里我想调用网络方法 我怎样才能做到这
  • 轮播滑动(未滑动)事件上的火灾事件,Bootstrap 3

    Bootstrap 2 似乎可以很好地处理幻灯片事件 请参阅这个问题 https stackoverflow com questions 9651466 how to attach slide slid events to the boot
  • Google 地图 API - 地图未显示 - 没有错误

    我正在尝试将地图从 Google API 加载到 div 中 但是 地图未加载 并且没有输出任何错误 这是代码 google maps var geocoder map function codeAddress address geocod
  • 如何从 html 字符串向 jQuery DataTable 添加多行

    我有一个 jQuery DataTable 我想向其中添加 html tr 行 这些行以 html 字符串的形式出现 我可以使用标准 jQuery 将它们添加到表中 但这意味着它们绕过 DataTable 对象 并在重新排序表时丢失 要使用
  • 使用路径id获取SVG路径d属性

    我有单独的 json 包含 SVG 路径 Id 有没有办法使用路径 id 获取 SVG 路径 d 属性 或者有没有办法只使用路径 ID 来填充 SVG 路径 您可以通过调用 document getElementById 来获取路径元素 然
  • 如何子类化特定的 jqueryui 小部件方法?

    自从我将 jQueryUI 更新到 1 8 以来 我在实现中发现了一些问题 如果我能找出如何子类化 datepicker 小部件的特定方法 我可以自己修复它 而无需等待修复 所以我调用父代码然后执行我的代码 我正在阅读 widget 但我无
  • jQuery 最接近属性过滤器

    jQuery 1 5 1 是否支持最接近方法中的属性选择器 鉴于以下结构 el代表值为 513 的复选框 我正在尝试向上检查值为 0 的祖先复选框 el closest input value 0 0 checked true 但选择器没有
  • 在 JQuery ajax 中,如何正确处理 HTTP 408 错误?

    我使用设置了 错误 选项的 JQuery Ajax 调用 在我的 错误 方法中 我希望以不同于普通 HTTP 500 的方式处理 HTTP 408 问题是 jxhr statusCode 为 0 status 值只是 error 但在 fi
  • 需要知道 jQuery UI Widget 是否已应用于 DOM 对象

    我正在使用 jQuery 并与 jQuery UI 进行一些交互 我需要在其中获取选项 然而 有可能 jQuery UI 功能尚未应用于 DOM 对象 当我访问选项时 我现在收到 JavaScript 错误 我有一个带有进度条的 DOM 对
  • 如何针对 IE 进行优化?

    我有一个 JS 密集型应用程序 它在 IE 中运行缓慢 我将花费大约一周的时间来优化 IE 并且我想要一些关于尝试的方向 我发现这个线程引用Drip https ieleak svn sourceforge net svnroot iele
  • 使用淘汰赛动态显示/隐藏元素

    我有一个表 有四列 即代码 名称 数量和价格 其中 我想动态更改数量列的内容 元素 通常 它应该显示其中显示数量的元素 当用户单击元素时 我想显示该元素 以便用户可以编辑数量 我正在尝试按照 示例2 来实现淘汰赛文档链接 http knoc
  • Jquery 子元素发生变化

    我正在尝试使用 jquery 在子元素 在本例中为 select 更改时触发事件 这是我的 HTML div class row addForm div class col lg 2 col md 2 col sm 3 col xs 6 d
  • FullCalendar:如何重新创建/重新初始化 FullCalendar 或批量添加多个事件

    我正在尝试将新事件批量添加到日历中 但未能找到方便的使用方法 所以我决定用新的事件数组重新初始化视图 所以我尝试了以下方法 var events title Event start new Date y m d 10 description
  • Ajax 函数在重定向后不保存滚动位置

    正如标题所述 我编写了一个 ajax 函数 该函数应该滚动到用户在重定向之前所在的位置 我写了一个alert对于测试场景 它确实触发了 但滚动不断回到顶部 我在这里做错了什么 JavaScript ajax type GET url Adm
  • jQuery 模板插件:如何创建双向绑定?

    我开始使用 jQuery 模板插件 微软创建的 但现在我面临这个问题 模板用于绑定到对象数组的一堆表单 当我更改其中一个表单上的某些内容时 我希望更新绑定的对象 但我不知道如何自动执行该操作 这是一个简单的例子 现实生活中的模板和对象要复杂
  • 如果突出显示一个单词并且用户单击连接单词,则同时突出显示两个单词

    我最近发布了一个question https stackoverflow com questions 34963610 how can i highlight a word term quicker and smarter寻求一种更智能地突
  • 将 JSON 发送到 Spring MVC 控制器

    我正在尝试将 JSON 发送到 Spring MVC 控制器 在 Spring MVC 方面 一切都配置正确 下面是代码 但似乎没有运行

随机推荐

  • 对以太网粗略理解

    1 以太网定义 以太网 Ethernet 指的是由 Xerox公司创建并由Xerox Intel和 DEC公司联合开发的基带局域网规范 通用的以太网标准于1980年9月30日出台 是当今现有局域网采用的最通用的通信协议标准 是局域网的一种
  • html+css+javascript学习总结

    html用来写页面的结构和内容 css写样式和呈现效果 javascript写行为和动作 1 html常用标签 a 超链接 div 盒子 常用来控制样式的 ul ol 无序列表和有序列表 img 图片标签 button 按钮 form 表单
  • 看懂影片标题,各种电影视频格式标题的含义

    一 资源片源解析 根据命名 可以知道资源的来源 从而判断资源画质的好坏 1 CAM 枪版 珍爱生命 远离枪版 CAM通常是用数码摄像机从电影院盗录 有时会使用小三角架 但大多数时候不可能使用 所以摄像机会抖动 因此我们看到画面通常偏暗 人物
  • 【免费】win7 所有.net framework框架集合,免费下载,若要运行此应用程序,您必须首先安装net framework如何解决

    运行软件缺失框架 若要运行此应用程序 您必须首先安装net framework如何解决 那天我看见网上下载一个框架都要收费还要100大洋 现在真的是干啥都要钱 索性就整理了一个全库供大家下载 做点好事 net 框架所有的 net官网下载地址
  • 摄像机标定到底是在干什么?

    2017年11月13日学习记录 机器视觉 1 摄像机标定概括 刚开始学机器视觉 我研究的方向主要是双目视觉测距 做机器视觉的肯定对摄像机标定并不陌生 我入坑一个月 开始就是看看书 论文 了解了大概流程和研究主要方法 无特别明确目的和压力 然
  • 关于Redis的Zset使用方法

    序言 Zset跟Set之间可以有并集运算 因为他们存储的数据字符串集合 不能有一样的成员出现在一个zset中 但是为什么有了set还要有zset呢 zset叫做有序集合 而set是无序的 zset怎么做到有序的呢 就是zset的每一个成员都
  • Java基础:简单的Runnable 接口创建线程

    创建一个线程 Java 提供了三种创建线程的方法 通过实现 Runnable 接口 通过继承 Thread 类本身 通过 Callable 和 Future 创建线程 为了实现 Runnable 一个类只需要执行一个方法调用 run 声明如
  • 数字图像处理-离散傅里叶变换(opencv3+C++显示)

    参考 http daily zhihu com story 3935067 http blog csdn net keith bb article details 53389819 在学习信号与系统或通信原理等课程里面可能对傅里叶变换有了一
  • 关于局域网、广域网、C/S、P2P编程

    一直以为局域网和广域网的编程没什么不同 实际上确实没什么不同 但这里我要说的是C S和P2P 先说说为局域网编程 局域网编程不用考虑网关 不用考虑NAT 不用考虑消息发送成功后对方将消息丢弃等 这样编程相当简单 只要建立相应的套接口 设置端
  • SQL server基础

    一 SQL Server数据库的数据类型含义 数据类型含义 int 每个数值占用 4字节 2 147 483 648到2 147 483 647之间的整数 smallint 2个字节 存储范围是 32 768 到 32 767 之间的整数
  • Android Studio 红米3 一直运行或者debug不成功,提示 Failed to establish session 解决方案

    换了一个测试机 红米note3开发 一直run OR debug 失败 下面是提示图 找了半天原因 后面发现原因所在了 一般手机默认用开发工具跑起来 会弹出提示 确认是否安装XXX应用 而红米note3就是个奇葩 在它的开发者选项中 有个
  • MATLAB 多目标规划

    作者简介 人工智能专业本科在读 喜欢计算机与编程 写博客记录自己的学习历程 个人主页 小嗷犬的个人主页 个人网站 小嗷犬的技术小站 个人信条 为天地立心 为生民立命 为往圣继绝学 为万世开太平 本文目录 多目标规划 数学模型 正负偏差变量
  • c/c++不定参数函数

    http plutoblog iteye com blog 1150671 不定参数函数 stdarg h是C语言中C标准函数库的头文件 stdarg是由stdandard 标准 arguments 参数 简化而来 主要目的为让函数能够接收
  • WdatePicker日期控件与UEditor富文本编辑器

    WdatePicker日期控件 My97日期控件 下载 更新日志 My97Datepicker Download Changelog 代码中的生日使用插件
  • libevent服务端,多线程应用

    下面的方式是创建多个event base来处理多线程的 主event base用来处理连接请求 各个子event base用来处理读写和关闭请求 另一种方式是 所有的连接 读写 断开操作 都在一个event base里面 然后当读到数据时
  • cesium加webgl的构思

    1 传递gl var gl viewer scene context gl
  • C++类模板

    1 定义类模板 程序清单类模板 1列出了类模板和成员函数模板 明确这些模板不是类和成员函数定义很重要 因为它们是C 编译指令 说明了如何生成类和成员函数定义 不能将模板成员函数放在独立的实现文件中 由于模板不是函数 它们不能单独编译 模板必
  • #、##、__VA_ARGS__的使用,自由扩展printf 可变参数输出到终端和追加到文件等

    include
  • JAVA后端使用MultipartFile类接收处理上传图片【超级简单】

    本例子再SpringBoot项目上 使用Spring MVC的MultipartFile类再JAVA后端 接收前端上传文件请求 1 MultipartFile 单文件图片上传 例子中接收对象与文件 先保存文件 再把文件保存到对象 再保存对象
  • 前端系列之jQuery(jQuery插件)

    jQuery的插件机制 jQuery主要有两种使用方式 1 在jQuery集合对象上调用方法 2 直接调用jQuery方法 扩展jQuery对象上的方法 jQuery fn extend 扩展jQuery工具方法 jQuery extend