jQuery 插件开发

news/2024/12/29 4:28:28/

文章目录

  • jQuery 插件开发
    • 插件概述
    • 常用插件
      • 文本溢出:dotdotdot.js
        • 单行文本省略
        • 多行文本省略
      • 延迟加载:lazyload.js
    • 插件编写
      • 方法类插件
      • 函数类插件

jQuery 插件开发

插件概述

jQuery插件可以理解成是使用jQuery来封装的一个功能或特效。

一般来说,每一个jQuery插件都是放到独立的一个文件中的。常说的引入一个jQuery插件,其实就是引入一个外部JavaScript文件。

常用插件

文本溢出:dotdotdot.js

dotdotdot.js官方地址为http://plugins.jquery.com/dotdotdot/。

单行文本省略

<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title></title><style type="text/css">div {width: 200px;border: 1px solid red;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;}</style></head><body><div>这些一些内容。这些一些内容。这些一些内容。这些一些内容。这些一些内容。这些一些内容。</div></body>
</html>

在这里插入图片描述

多行文本省略

如果想要实现“多行文本”的省略号效果,我们可以使用dotdotdot.js这个jQuery插件。

<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title></title><style type="text/css">div {width: 200px;height: 50px;border: 1px solid red;}</style><script src="js/jquery-1.12.4.min.js"></script><script src="js/jquery.dotdotdot.min.js"></script><script>$(function() {$("div").dotdotdot();})</script></head><body><div>这些一些内容。这些一些内容。这些一些内容。这些一些内容。这些一些内容。这些一些内容。</div></body>
</html>

在这里插入图片描述

延迟加载:lazyload.js

中文文档:http://code.ciaoca.com/jquery/lazyload。

github文档:https://github.com/tuupola/jquery_lazyload。

例如进入某个页面时,页面上会有很多图片,有些图片在下面,当我们没有看完整个页面时,那么下面的图片对我们来说就是“没用”的,加载了也是白加载,而且还会降低页面整体的加载速度。

在jQuery中,我们可以使用lazyload.js这个插件来实现图片的延迟加载。也就是只有当我们把滚动条拉到某个位置,相应处的图片才会显示出来,否则就不会显示。

步骤

  1. 引入jQuery库和lazyload.js插件。
  2. 使用data-original替代src。
  3. 调用lazyload()方法。

使用

<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title></title><style type="text/css">div {height: 800px;background-color: grey;}</style><script src="js/jquery-1.12.4.min.js"></script><script src="js/jquery.lazyload.min.js"></script><script>$(function() {$("img").lazyload(function() {effect: "fadeIn"});})</script></head><body><div></div><img data-original="img/a.png"><img data-original="img/b.png"><img data-original="img/c.png"><img data-original="img/d.png"><img data-original="img/e.png"></body>
</html>

插件编写

方法类插件

语法

(function($){$.fn.extend({ "插件名": function(参数){ …… } }); 
})(jQuery); 

简单使用

<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title></title><script src="js/jquery-1.12.4.min.js"></script><script>(function() {$.fn.extend({"hoverChangeColor": function(fgColor, bgColor) {$(this).mouseover(function() {$(this).css({"color": fgColor,"background-color": bgColor});}).mouseout(function() {$(this).css({"color": "black","background-color": "white"});});return $(this);}})})(jQuery);</script><script>$(function() {$("h3").hoverChangeColor("red", "#010101");})</script></head><body><h3>hello world!</h3></body>
</html>

在这里插入图片描述

添加默认值

<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title></title><script src="js/jquery-1.12.4.min.js"></script><script>(function() {$.fn.extend({"hoverChangeColor": function(options) {var defautls = {fgColor: "hotpink",bgColor: "lightskyblue"};var options = $.extend(defautls, options)$(this).mouseover(function() {$(this).css({"color": options.fgColor,"background-color": options.bgColor});}).mouseout(function() {$(this).css({"color": "black","background-color": "white"});});return $(this);}})})(jQuery);</script><script>$(function() {$("h3").hoverChangeColor();})</script></head><body><h3>hello world!</h3></body>
</html>

$.extend(defautls, options)合并2个对象,将右边的对象合并到左边的对象上。

函数类插件

语法

(function($){$.extend({ "插件名": function(){ …… } }); 
})(jQuery) 

使用

<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title></title><script src="js/jquery-1.12.4.min.js"></script><script>(function($) {$.extend({"maxNum": function(m, n) {return (m > n) ? m : n;}});})(jQuery)$(function() {var result = $.maxNum(10, 5)console.log("最大值是:" + result);})</script></head><body></body>
</html>

http://www.ppmy.cn/news/6084.html

相关文章

Mac 截图工具 iShot Pro - 软件介绍、下载安装详细教程

Mac 截图工具 iShot Pro -软件介绍、下载安装详细教程 iShot -优秀&#xff0c;功能齐全的区域截图&#xff0c;窗口截图&#xff0c;多窗口截图&#xff0c;长屏幕截图&#xff0c;shell截图&#xff0c;时间间隔截图&#xff0c;快速注释&#xff0c;纹理&#xff0c;颜色匹配…

消息中间件Kafka快速入门

前言 Kafka是基于zookeeper管理的&#xff0c;所以要先安装zookeeper&#xff0c;如果是单机模式&#xff0c;zookeeper安装比较简单&#xff0c;本文就介绍一下单机如何搭建kafka&#xff0c;以及基本的java demo。 环境搭建 Zookeeper 安装 http://mirrors.cnnic.cn/apac…

Python 函数用法和底层分析

【无限嚣张&#xff08;菜菜&#xff09;】&#xff1a;hello您好&#xff0c;我是菜菜&#xff0c;很高兴您能来访我的博客&#xff0c;我是一名爱好编程学习研究的菜菜&#xff0c;每天分享自己的学习&#xff0c;想法&#xff0c;博客来源与自己的学习项目以及编程中遇到问题…

详细设计说明书(GB8567——88)基于协同的在线表格forture-sheet

详细设计说明书 1引言 1.1编写目的 该文档在概要设计的基础上&#xff0c;进一步的细化系统结构&#xff0c;展示了软件结构的图标&#xff0c;物理设计、数据结构设计、及算法设计、详细的介绍了系统各个模块是如何实现的&#xff0c;包括涉及到的算法&#xff0c;逻辑流程…

Redis常见面试题(七)

目录 1、什么是缓存预热? 2、什么是缓存热备? 3、什么是缓存雪崩? 4、如何解决缓存雪崩? 5、什么是缓存穿透? 6、如何解决缓存穿透? 7、什么是缓存击穿? 8、如何解决缓存击穿? 9、什么是缓存抖动? 10、如何解决缓存抖动? 11、什么是缓存无底洞? 12、如何…

Vue基础8之Vue组件化编程、非单文件组件与单文件组件

Vue基础8Vue组件化编程对组件的理解一些概念的理解非单文件组件基本使用几个注意点组件的嵌套VueComponent一个重要的内置关系先导篇&#xff1a;原型对象正文&#xff08;可以理解为类的继承&#xff09;单文件组件Vue组件化编程 对组件的理解 传统方式&#xff1a; 使用组…

路由器的工作原理(计算机网络-网络层)

目录 路由器的构成 转发和路由选择的区别 典型的路由器结构 交换结构 输出端口 路由器与交换机的比较 两种基于存储转发的分组交换设备的比较 交换机和路由器各有的应用场合 三层交换机 三层交换机的应用 路由器的构成 路由器的任务 路由器是一种具有多个输入端口和多…

Vue + Element-ui实现后台管理系统---项目搭建 + ⾸⻚布局实现

目录&#xff1a;导读 项目搭建 ⾸⻚布局实现 一、项目搭建 1、环境搭建 2、项目初期搭建 二、Main.vue 三、左侧栏部分(CommonAside.vue) 四、header部分(CommonHeader.vue) 五、Home.vue 写在最后 项目搭建 ⾸⻚布局实现 这篇主要讲解 项目搭建 后台⾸⻚布局实现…