jQuary总结11:jQuery插件封装---jQuery封装 手风琴 动画插件

完整代码下载点击我的GitHub:
https://github.com/XingJYGo/jquery-accordion

1 手风琴的效果展示如下:

2 封装插件目录结构如下:

主要包括:HTML结构, CCS样式,JS文件以及jquary库.

 3 插件封装步骤如下:

   3-1首先,编写HTML静态结构:

<div id="box"><ul><li></li><li></li><li></li><li></li><li></li></ul>
</div>

   3-2 然后设置CSS的手风琴样式

* {margin: 0;padding: 0;list-style: none;
}div {width: 1200px;height: 400px;border: 2px solid #000;margin: 100px auto;
}ul {width: 1300px;
}li {/*width: 240px;*/height: 400px;float: left;}

    3-3抽取CSS样式到jquery-accordion.css,HTML文件导入CSS样式.

<head><meta charset="UTF-8"><title>Title</title><link rel="stylesheet" href="jquery-accordion.css">
</head>

     

4 js中的代码书写

   4-1 首先导入jquary库和手风琴插件的js文件.

<script src="jquery-1.12.4.js"></script>
<script src="jquery.accordion.js"></script>

   4-2 编写手风琴插件js文件:

     手风琴插件的核心需求有:

      1 .动态添加颜色的需求,以及动态计算盒子的宽度

      2 .找到里面所有的li,给li注册鼠标移入事件

      3. 找到最外面的大盒子,给大盒子注册鼠标移出事件

      4 .自定义创建颜色对象,遍历添加颜色属性.

  由于要使用jquery对象调用,所以方法要加载jquery的原型上:

  所有的方法都要包含于这个函数内:

$.fn.accordion = function(obj){

}
  //动态的计算每一个li的宽度// box的宽度 / 里面li的数量var width = this.innerWidth() / this.find('li').length; //计算宽度this.find('li').width(width); //给每一个li赋值宽度//处理一下用户传递进来的参数obj.maxWidth = obj.maxWidth > 1000 ? 1000 : obj.maxWidth;//计算其他盒子的宽度// (整个box的宽度- 当前li的宽度) / (this.find('li').length - 1)var minWidth = (this.innerWidth() - obj.maxWidth) / (this.find('li').length - 1);//一旦调用方法,就把颜色传递进来this.find('li').each(function(index, item)//给每一个li加背景颜色$(item).css('backgroundColor', obj.colors[index]);})

     

 //1.找到里面所有的li,给li注册鼠标移入事件this.find('li').on('mouseenter', function(){$(this).stop(true).animate({width:obj.maxWidth}).siblings().stop(true).animate({width: minWidth});});
//  2. 找到最外面的大盒子,给大盒子注册鼠标移出事件this.on('mouseleave', function(){$(this).find('li').stop(true).animate({width : width});});

 

 

  5 最后,导入jQuery库,手风琴插件,开始创建手风琴 .

<script src="jquery-1.12.4.js"></script>
<script src="jquery.accordion.js"></script>
<script>$('#box').accordion({colors:['red','green','blue', 'yellow', 'pink'],maxWidth: 800});
</script>

 

转载于:https://www.cnblogs.com/autoXingJY/p/9084521.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/368605.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring MVC:表单处理卷。 2 –复选框处理

很难想象现代Web应用程序中没有表单复选框的情况。 在之前的一篇文章中&#xff0c;我写了有关Spring MVC中的表单处理的文章 &#xff0c;作为本系列文章的续篇&#xff0c;我将写有关Spring MVC表单的文章&#xff0c;尤其是关于复选框处理的文章 。 这篇文章将介绍标签的标准…

给你的博客换个装-园子换装指南

博客园有很多漂亮的皮肤&#xff0c;但总是有一些地方我不大喜欢&#xff0c;所以经过慎重考虑&#xff0c;我决定亲自动手换个装。本文将介绍博客园换装的一些基础&#xff08;不涉及标准皮肤的做法&#xff09;&#xff0c;如果你想让你的博客更炫&#xff0c;可以参考本文入…

表格过滤器_气缸选型其实并不复杂,知道这些再也不怕选错气缸(附计算表格)...

文/第e机械气动系统概述在介绍气缸之前我们先了解一下气动系统。气动控制技术在国民经济各个领域&#xff0c;最近这些年, 它与传感器技术、电子信息技术密切融合&#xff0c;发展成为包括控制、传动和检测等在内的自动化技术, 现在已发展成为自动化领域的重要组成部分。气动控…

java中equals()和==的区别

java中的数据类型 基础数据类型 基础数据类型有byte、short、char、int、long、float、double、bool、String。除了 String 会比较地址,其它的基础类型的比较,使用 和 equals() 两者都是比较值。 String类的equals()方法源码 1 public boolean equals(Object anObject) {2 …

判断字符串是否为正整数 浮点小数

/** * 判断字符串是否为数字(正整数和浮点数) * param str * return */public static boolean isNumeric(String str) { String reg "^[0-9](.[0-9])?$"; Pattern pattern Pattern.compile(reg); Matcher isNum pattern.matcher(str); if (!isNum.ma…

华为杯大学生计算机软件大赛,关于举办2018年西安电子科技大学程序设计网络赛暨第十六届“华为杯”大学生程序设计竞赛的通知...

各学院&#xff1a;程序设计是大学生运用计算机充分展示自己分析问题和解决问题能力的一个重要途径&#xff0c;对于培养大学生实践能力、团队意识、创新意识、顽强意志和综合素质具有显著作用和效果。为了推动这项创新性素质教育活动的广泛深入开展&#xff0c;扩大受益面&…

通过Spring Social发推StackExchange问​​题

1.简介 这是有关小型附属项目的第三篇也是最后一篇文章-该机器人自动在专用帐户上鸣叫来自各个Q&#xff06;A StackExchange网站上的问题&#xff08;文章末尾的完整列表&#xff09;。 第一篇文章讨论了为StackExchange REST API构建一个简单的客户端 。 在第二篇文章中&…

HTML语义化的理解

1、什么是HTML语义化&#xff1f; “语义化”指的是在需要更少的人类干预的情况下&#xff0c;能够研究和手机信息&#xff0c;让网页能够被机器理解&#xff0c;最终让人类受益。 语义化的目的就是让大家直观的认识标签&#xff08;markup&#xff09;和属性&#xff08;att…

乒乓球比赛赛程_10月5日至10月11日中央电视台直播录播乒乓球比赛安排

10月5日至10月11日这一周中央电视台居然没有播乒乓球比赛?全国乒乓球锦标赛从5日开始进行各单项比赛&#xff0c;7日进行混双决赛&#xff0c;9日进行男双决赛和女单决赛&#xff0c;10日进行女双决赛和男单决赛。场场都是精彩好看的比赛&#xff0c;中央电视台体育频道一场都…

集合实例(集合覆盖)

集合覆盖是一种优化求解问题&#xff0c;对很多组合数学和资源选择问题给出了很好的抽象模型。 问题如下&#xff1a;给定一个集合S&#xff0c;集合P由集合S的子集A1到An组成&#xff0c;集合C由集合P中的一个或多个子集组成。如果S中的每个成员都包含在C的至少一个子集中则称…

Drawwhile计算机软件,计算机程序设计、小女纸又怒编一程序、求鉴定、

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼srand(time(NULL));while (1){while (!kbhit()) //在没有按键的情况下,蛇自己移动身体{if (food.addFood 1) //需要出现新食物{food.x rand() % 400 60;food.y rand() % 350 60;//食物出现后必须在整格内才能让蛇吃到while (f…

python eval 用法

eval 功能&#xff1a;将字符串str当成有效的表达式来求值并返回计算结果。 语法&#xff1a; eval(source[, globals[, locals]]) -> value 参数&#xff1a; source&#xff1a;一个Python表达式或函数compile()返回的代码对象 globals&#xff1a;可选。 变量作用域&…

带有正则表达式模式的Google Guava Cache

最近我看到了一个关于Google Guava的精彩演讲 &#xff0c;我们在我们的项目中得出结论&#xff0c;使用它的缓存功能真的很有趣。 让我们看一下regexp Pattern类及其编译功能 。 在代码中经常可以看到&#xff0c;每次使用正则表达式时&#xff0c;程序员都会使用相同的参数重…

关闭运动轨迹_网球初学者如何正确入门网球运动,有哪些学习细节

网球是一个非常有趣的球类运动。 当您开始入门时&#xff0c;您会越来越喜欢它。 那么网球初学者应该如何正确入门呢&#xff1f; 有什么独特的入门经验&#xff1f;即使没有网球经验&#xff0c;只要您能正确正确地进行定期训练&#xff0c;仍然可以取得很大的进步。首先&…

input长度随输入内容动态变化 input光标定位在最右侧

<input type"text" οnkeydοwn"this.onkeyup();" οnkeyup"this.size(this.value.length>4?this.value.length:4);" size"4"> <input type"text">的默认size就是20 如果你在style里定义了width属性,又…

phpstorm+wamp+xdebug配置php调试环境

本篇文章主要是&#xff1a;教大家如果搭建一套phpstormwampxdebug调试php的环境现在大多数的程序员使用的调试方式一般都是echo, var_dump, file_put_contents等其他方式&#xff0c;效率比较低下&#xff0c;因此我们有必要学习用工具调试&#xff0c;工具调试主要可以用来解…

计算机专用英语1500词带音标,带音标的计算机英语1500词

带音标的计算机英语1500词 (46页)本资源提供全文预览&#xff0c;点击全文预览即可全文预览,如果喜欢文档就下载吧&#xff0c;查找使用更方便哦&#xff01;29.9 积分&#xfeff;计算机专用英语词汇1500词《电脑专业英语》1. file [fail] n. 文件&#xff1b;v. 保存文件 2. …

需求改进与系统设计

第一部分 需求与原型改进 1.1改进的原型 1.1.1 改进说明 相较上一次的原型&#xff0c;这一次我们确定了主题颜色&#xff0c;并且使功能一眼就能看懂&#xff0c;让新用户能很快上手。 并且进一步完善了前期的调查问卷分析。得出结论同学们不去食堂吃饭的大部分原因是排队…

了解ADF Faces clientComponent属性

我相信大多数ADF开发人员都知道ADF Faces属性clientComponent 。 在这篇文章中&#xff0c;我将展示此属性实际上如何影响组件渲染以及它如何改变其行为。 让我们开始考虑一个非常简单的示例&#xff1a; <af:inputText label"Label 1" id"it1" /> …

谈谈一些有趣的CSS题目(十五)-- 谈谈 CSS 关键字 initial、inherit 和 unset

开本系列&#xff0c;谈谈一些有趣的 CSS 题目&#xff0c;题目类型天马行空&#xff0c;想到什么说什么&#xff0c;不仅为了拓宽一下解决问题的思路&#xff0c;更涉及一些容易忽视的 CSS 细节。解题不考虑兼容性&#xff0c;题目天马行空&#xff0c;想到什么说什么&#x…