很好用的Tab标签切换功能,延迟Tab切换。
一个网页,Tab标签的切换是常见的功能,但我发现很少有前端工程师在做该功能的时候,会为用户多想想,如果你觉得鼠标hover到标签上,然后切换到相应的内容,就那么简单的话,你将是一个不合格的前端工程师啊,其实你不这样做,也无伤大雅,但是作为前端的工程师,我们可以为用户做到更好。想想如果一个网页上,有很多标签,而用户鼠标在不经意间快速的滑动了一下,如果tab标签的切换不经过特殊的处理的话,标签所对应的内容会一同切换,甚至还会想服务器请求内容,增加服务器开销,很显然这一行为不是用户想要的,我们完全可以避免或者减少这种情况发生,通过延迟加切换标签的操作,来提高用户体验,在多标签的网页上,这种尤为重要。下面直接贴源码,大家可以直接使用。
html源码:
<div class="Pannel ">
<div class="tabTitle ">
<ul class="tabs">
<li class="current"><a target="_blank">标签一</a></li>
<li ><a target="_blank">标签二</a></li>
</ul>
<div class="more">
<a target="_blank" href="">更多</a>
</div>
</div>
<div class="tabList">
<div class="linklist f14">
标签一内容
</div>
<div style="display: none;" class="linklist f14">
标签二内容
</div>
</div>
</div>
JS调用方式:
jQuery(".Pannel").Tabs(tabSelector: ".tabs li", conSelector: ".linklist", focusClass: "current"); //参数配置参考你具体的Class
Tab切换源码
jQuery.fn.Tabs = function (options) {
var defaults = {
tabSelector: ".tabs li", // 标签选项卡
conSelector: ".tabcontent", //选项卡内容
focusClass: "c", //标签选中后的样式
moreTrigger: ".tabTitle .more .link", // 扩展 选项卡上有更多的链接情况
events: "mouseover", //事件类型,支持"mouseover", "click"
selected: 0, //默认选中标签项
delay: 0.2 //事件延迟时间
};
var events = ["mouseover", "click"];
var settings = jQuery.extend({}, defaults, options);
var that = this;
var _tabs = jQuery(settings.tabSelector, that);
var _cons = jQuery(settings.conSelector, that);
var _more = jQuery(settings.moreTrigger, that);
var _isDelay = settings.events == events[0] ? !0 : !1;
void function () {
var tab = _tabs.eq(settings.selected);
if (tab && tab.length == 0) {
tab = _tabs.eq(0);
}
tab.addClass(settings.focusClass);
tab.siblings(settings.tabSelector).removeClass(settings.focusClass);
var cons = _cons.eq(settings.selected);
if (cons && cons.length == 0) {
cons = _cons.eq(0);
}
cons.show();
cons.siblings(settings.conSelector).hide();
var more = _more.eq(settings.selected);
if (more && more.length == 0) {
more = _more.eq(0);
}
more.show();
more.siblings().hide();
}();
_tabs.each(function (i, v) {
jQuery(v).on(settings.events, function () {
var _this = this;
delay.apply(this, [settings.delay, function () {
jQuery(_this).addClass(settings.focusClass);
jQuery(_this).siblings(settings.tabSelector).removeClass(settings.focusClass);
jQuery(_cons[i]).show();
jQuery(_cons[i]).siblings(settings.conSelector).hide();
jQuery(_more[i]).show();
jQuery(_more[i]).siblings().hide();
}, _isDelay])
});
});
//接收两个参数 t延迟时间秒为单位,fn要执行的函数,m是否执行延迟取决于事件的类型
var delay = function (t, fn, m) {
if (m) {
var _this = this,
d = setInterval(function () {
fn.apply(_this);
}, t * 1000);
_this.onmouseout = function () {
clearInterval(d);
};
}
else fn.apply(this);
}
}
很好用的Tab标签切换功能,延迟Tab切换。的更多相关文章
- 类似掌盟的Tab页 Android 开源框架ViewPageIndicator 和 ViewPager 仿网易新闻客户端Tab标签 (转)
原博客地址 :http://blog.csdn.net/xiaanming/article/details/10766053 本文转载,记录学习用,如有需要,请到原作者网站查看(上面这个网址) 之前 ...
- Android 开源框架ViewPageIndicator 和 ViewPager 仿网易新闻客户端Tab标签
转载请注明出处:http://blog.csdn.net/xiaanming/article/details/10766053 之前用JakeWharton的开源框架ActionBarSherlock ...
- JS 实现 Tab标签切换功能
Tab标签切换 效果图: HTML部分: <div class="wrap"> <ul id="tag"> < ...
- javascript回车完美实现tab切换功能
javascript通过回车实现tab切换功能,最经有一个项目是给化工厂做的在使用的过程中需要输入大量的数据,使用的都是小键盘区,在以前都是通过excel录入数据的现在, 在网页上需要实现excel ...
- Vue + Element-ui实现后台管理系统(3)---面包屑 + Tag标签切换功能
面包屑 + Tag标签切换功能 有关后台管理系统之前写过两遍博客,看这篇之前最好先看下这两篇博客.另外这里只展示关键部分代码,项目代码放在github上: mall-manage-system 1.V ...
- 多iframe使用tab标签方式添加、删除、切换的处理实例
紧接着上一篇随笔iframe的内容增高或缩减时设置其iframe的高度的处理方案 如果采用iframe来切换显示内容的方式来展现办公Web.那么需要解决几个问题 1.tab标签需要和显示的iframe ...
- jquery切换tab标签例子
之前做了一个简单的小效果,使用jquery方式,让tab标签切换,效果如下 代码其实很简单,首先先把代码分享给大家,代码如下 var shoptoggle = $('.shoptoggle .shop ...
- VIM 实现tab标签页及分屏,切换命令
1,在一个窗口中,VIM 的小tab标签页命令: :tabnew [++opt选项] [+cmd] 文件 建立对指定文件新的tab :tabc 关闭当前的tab ...
- html+css+jQuery+JavaScript实现tab自动切换功能
tab1.html内容 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> & ...
随机推荐
- Contest20140906 反思
这次考试最大的失误就是把最简单的一道题RE了,原因是我在main()函数中开了一个2^19的数组,这种做法在linux下没有任何问题,然而放到windows下评测,就会出现栈溢出的错误. 单题总结: ...
- [BZOJ 1006] [HNOI2008] 神奇的国度 【弦图最小染色】
题目链接: BZOJ - 1006 题目分析 这道题是一个弦图最小染色数的裸的模型. 弦图的最小染色求法,先求出弦图的完美消除序列(MCS算法),再按照完美消除序列,从后向前倒着,给每个点染能染的最小 ...
- 机械硬盘与SSD固态硬盘性能的深度
从7200转硬盘升级到10000转的迅猛龙,那叫量变.从10000转的迅猛龙升级到SSD,这个叫质变.2者的差距是有些地方相当大,而有些却很接近,主要是难比较. 经常听到有人说:我买2个黑盘组RAID ...
- Crazy Search
poj1200:http://poj.org/problem?id=1200 题意:给你一个有m种字符串,求长度为n的连续子串由多少种. 题解:网上的代码都是hash,但是本人觉得hash有问题,就是 ...
- oracle索引再论
ORACLE中索引的数据结构有B树结构和位图结构. 我们通常用的普通索引.反向键索引.函数索引等都是B树结构的,是树状结构:位图结构则只有叶子节点. B树索引操作有唯一性扫描,范围扫描,快速索引全扫描 ...
- [LeetCode#244] Shortest Word Distance II
Problem: This is a follow up of Shortest Word Distance. The only difference is now you are given the ...
- R语言 数据的输入方式总结
1.使用C函数连接数据 2.使用c,cbind,rbind结合变量 3.使用Vector函数结合数据 4.使用矩阵结合数据5.使用data.frame函数结合数据 6.使用list函数结合数据 c 向 ...
- bzoj1334
..] of boolean; a:..] of longint; i,n,s,j,ans:longint; procedure sort(l,r: longint); var i ...
- Linux Kernel TUNSETIFF释放后重用本地拒绝服务漏洞(CVE-2013-4343)
漏洞版本: Linux kernel <= 3.11 漏洞描述: BUGTRAQ ID: 62360 CVE(CAN) ID: CVE-2013-4343 Linux Kernel是Linux操 ...
- Python根据上下限生成不重复随机数1
Python 2.7.5代码: #coding=utf-8 import random #定义计数器,默认为0 num=0 #定义随机结果集,默认为空列表 choose_resault=[] #最多可 ...