jQuery选项卡插件
html结构
<ul id="tabs" class="tabs">
<li data-tab="users">Users</li>
<li data-tab="groups">Groups</li>
</ul>
<div id="tabsContent" class="tabsContent">
<div data-tab="users" class="tab-item"> item1 </div>
<div data-tab="groups" class="tab-item"> item2 </div>
</div>
css样式
.tabs{
width:500px;
height:30px;
background:#eee;
}
.tabs li{
float:left;
width:250px;
font:18px/30px "Microsoft YaHei";
color:#333;
text-align: center;
cursor: pointer;
}
.tabs li.active{
background:#0aa;
}
.tabsContent{
width:498px;
border:1px solid #888;
}
.tabsContent .tab-item{
height:250px;
width:100%;
font-size: 45px;
display: none;
}
.tabsContent .active{
display: block;
}
js脚本
(function ($) {
/*
* jquery tabs 插件
*/
$.fn.tabs = function (control) {
var $element = $(this), // 切换的触点 li => tabs
$control = $(control); // 切换的内容 tab-item => tabsContent
// 委托li的点击事件
$element.delegate("li", "click", function () {
// li 对应的 data-tab属性值
var tabName = $(this).attr("data-tab");
$element.trigger("change.tab", tabName);
});
// change.tab 第一步:改变li.active
$element.bind("change.tab", function (e, tabName) {
$element.find("[data-tab]").removeClass("active");
$element.find("[data-tab="+ tabName +"]").addClass("active");
});
// change.tab 第二步:改变tab-item.active
$element.bind("change.tab", function (e, tabName) {
$control.find("[data-tab]").removeClass("active");
$control.find("[data-tab="+ tabName +"]").addClass("active");
});
// 激活第一个选项卡
$element.trigger("change.tab", $element.find("li:first").attr("data-tab"));
return this; // 返回链式调用
};
})(jQuery);
// 基本示例
$("#tabs").tabs("#tabsContent");
/*
* 应用扩展
* 切换时将tabName写入hash
* 当hashchange的时候触发tabs切换
*/
// 当切换的时候,把tabName写入hash
$("#tabs").bind("change.tab", function (e, tabName) {
location.hash = tabName;
});
// 目前除了 ie67 外都原生支持 hashchange 事件
$(window).bind("hashchange", function () {
var tabName = location.hash.slice(1);
$("#tabs").trigger("change.tab", tabName);
});
jQuery选项卡插件的更多相关文章
- 【特效】jquery选项卡插件,页面多个选项卡统一调用
把选项卡整合了一下,写成个插件,这样可以整个站,或整个页面有多个选项卡时,统一调用.代码的具体注意事项已经写进注释了.用于js获取元素的class名称必须有,选项卡本身的样式,另再取一个名字来设置(本 ...
- jQuery选项卡插件、Tabs插件
效果图: <!DOCTYPE html> <html> <head> <title></title> <script src=&quo ...
- jquery自定义插件——以 选项卡插件为例
一直打算尝试自定义插件,终于付诸实践了,现在把内容发表出来,与大家共勉. 我是根据自己正在用的插件,模仿其源码,实现的自定义插件,完成之后,在网上看相关资料,对自定义插件部分,有了更明确的认识. jq ...
- 基于jQuery简单实用的Tabs选项卡插件
jQuery庞大的插件库总是让人欢喜让人忧,如何从庞大的插件库里挑出适合自己的插件,总是让很多缺少经验的朋友头疼的事!今天为大家推荐几款简单实用的Tabs选项卡插件,推荐理由:简单易用灵活,样式美观, ...
- [js插件开发教程]原生js仿jquery架构扩展开发选项卡插件
jquery插件一般是这么干的: $.fn.插件名称 = function(){}, 把插件的名称加在.fn上,在源码里面实际上是扩展到构造函数的原型对象上,如果你没看过jquery的源代码,或者你曾 ...
- JQ实现选项卡(jQuery原型插件扩展)
下边分为两个版本,一种是点击切换选项(index.js),一种是滑过切换选项(index1.js) HTML文件: jq使用jquery-1.11.3.js版本 <!DOCTYPE html&g ...
- 使用jQuery.extend创建一个简单的选项卡插件
选项卡样式如图,请忽略丑陋的样式,样式可以随意更改 主要是基于jquery的extend扩展出的一个简单的选项卡插件,注意:这里封装的类使用的是es6中的class,所以不兼容ie8等低版本浏览器呦! ...
- 使用jQuery开发tab选项卡插件(可以右键关闭多个标签)
在前一篇“使用jQuery开发tab选项卡插件”的基础上添加了tab标签右键关闭菜单功能,菜单主要包括:关闭当前标签.关闭左侧标签.关闭右侧标签.关闭其他.关闭全部. 一.插件效果 二.实现思路 为w ...
- 使用jQuery开发tab选项卡插件
为了复习巩固jQuery的插件开发.HTML和CSS方面的知识,做了一个简单的tab选项卡插件,简单记录一下开发.使用的过程,以备日后使用. 一.插件效果 tab选项卡插件常用的功能均已实现,包括:动 ...
随机推荐
- c#中using System.Runtime.Serialization.Json;不能引用
原因:生成项目对于的.net版本是2.0的.需要手动切换成4.0 操作步骤:右键项目,属性页面,下拉框选择最高版本.net 截图:
- [linux]查看文件编码和编码转换
方法一:file filename 方法二:在Vim中可以直接查看文件编码 :set fileencoding 即可显示文件编码格式. 如果你只是想查看其它编码格式的文件或者想解决用Vim查看文件乱码 ...
- NOIP1998 拼数
http://www.luogu.org/problem/show?pid=1012 题目描述 设有n个正整数(n≤20),将它们联接成一排,组成一个最大的多位整数. 例如:n=3时,3个整数13,3 ...
- dll显式加载与隐式加载
使用动态DLL有两种方法,一种是隐式链接,一种是显式链接,如果用loadlibrary就是显示链接,用lib就属于隐式链接. 两种方法对于你的程序调用动态库时没有任何区别,只是你在编程时,步骤是不一样 ...
- Duilib学习笔记《05》— 消息响应处理
在Duilib学习笔记<04>中已经知道了如何将窗体显示出来,而如何处理窗体上的事件.消息呢? 一. 系统消息 窗体显示的时候我们就已经说了,窗体是继承CWindowWnd类的,对于窗体的 ...
- C# 排列组合
排列组合的概念 排列:从n个不同元素中取出m(m≤n)个元素,按照一定的顺序排成一列,叫做从n个元素中取出m个元素的一个排列(Arrangement). 组合:从m个不同的元素中,任取n(n≤m)个元 ...
- C# 反射操作方法
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.R ...
- C++ 三种工厂模式
工厂模式是将带有继承于基类的子类的创建过程交于一个工厂来创建,通过赋予不同的创建标识来创建不同的子类. 基于自己的理解和使用这里巩固一下工厂模式. 我们的项目目前使用最多的是简单工厂模式,不过其他两种 ...
- JavaScript API 设计原则
网+线下沙龙 | 移动APP模式创新:给你一个做APP的理由>> 好的 API 设计:在自描述的同时,达到抽象的目标. 设计良好的 API ,开发者可以快速上手,没必要经常抱着手册和文档, ...
- js设计模式(11)---命令模式
0.前言 早上好,早晨的时光总是美好的,坐在空调屋里,看着外边的蓝天白云,不停地敲击着键盘,多么美好地享受,也许屌丝就是如此容易满足. 1.什么是命令模式? 用于将一个请求封装为一个对象,从而可用不同 ...