一个小的tab切换插件
1//使用 var t1=new Tab({
etype:'onmou',//默认点击触发,如果事件写错了,当作单击
autoplay:2000,//有时间值(按照事件自动播放)和false(不自动播放)
invoke:3,//默认是第一项。
});
//插件的基本结构
;(function(){
function Tab(options){//options:配置参数
this.tab=document.querySelector('.tab');
this.tabBtn=document.querySelector('.tab_btn');
this.btns=this.tabBtn.getElementsByTagName('li');
this.divs=this.tab.querySelectorAll('.tab_item');
this.num=0;
this.timer=null;
this.options=options;
this.settings={//默认参数
etype:'onclick',//默认点击触发,如果事件写错了,当作单击
autoplay:3000,//有时间值(按照事件自动播放)和false(不自动播放)
invoke:1,//默认是第一项。
effect:'display'//display/opacity
}
this.init();
} Tab.prototype.init=function(){
var that=this;
extend(this.settings,this.options);
if(this.settings.etype=='onclick' || this.settings.etype!='onmouseover'){
this.tabSwitch('onclick');
}else if(this.settings.etype=='onmouseover'){
this.tabSwitch(this.settings.etype);
}
if(this.settings.autoplay){//如果配置参数传入一个时间,允许自动轮播,轮播的时间传过去
this.autoplay(this.settings.autoplay);
}
if(this.settings.invoke>1 && this.settings.invoke<=this.btns.length){
this.num=this.settings.invoke-1;
this.tabchange();
}
this.tab.onmouseover=function(){
clearInterval(that.timer);
}
this.tab.onmouseout=function(){
that.autoplay(that.settings.autoplay);
}
} Tab.prototype.tabSwitch=function(e){
var that=this;
for(var i=0;i<this.btns.length;i++){
this.btns[i].index=i;
this.btns[i][e]=function(){
that.num=this.index;
that.tabchange();
}
}
}
Tab.prototype.tabchange=function(){
for(var i=0;i<this.btns.length;i++){
this.btns[i].className='';
this.divs[i].className='hide';
if(this.settings.effect=='opacity'){
buffermove(this.divs[i],{opacity:0});
this.divs[i].style.display='none';
}
}
this.btns[this.num].className='active';
if(this.settings.effect=='display' || this.settings.effect!='opacity'){
this.divs[this.num].className='show';
}else if(this.settings.effect=='opacity'){
this.divs[this.num].style.display='block';
buffermove(this.divs[this.num],{opacity:100});
}
}
Tab.prototype.autoplay=function(time){
var that=this;
this.timer=setInterval(function(){
that.num++;
if(that.num>=that.btns.length){
that.num=0;
}
that.tabchange();
},time);
} function extend(obj1,obj2){
for(var i in obj2){
obj1[i]=obj2[i];
}
return obj1;
}
window.Tab=Tab;
})();
一个小的tab切换插件的更多相关文章
- jquery做一个小的轮播插件---有BUG,后续修改
//首页无缝轮播 ; (function($, window, document, undefined) { $.fn.slider = function(options) { var default ...
- 微信小程序tab切换,可滑动切换,导航栏跟随滚动实现
简介 看到今日头条小程序页面可以滑动切换,而且tab导航条也会跟着滚动,点击tab导航,页面滑动,切导航栏也会跟着滚动,就想着要怎么实现这个功能 像商城类商品类目如果做成左右滑动切换类目用户体验应该会 ...
- iTabs Tab切换插件
最近项目中使用到Tab切换,切换的页面不变,内容发生变化,随手写了份简单的插件,附带源码.先看样子: 本人也考虑到是否使用jquery ui tab,但是还是热衷于自己写一份,首先好处之一是易于培训, ...
- 根据id来实现小程序tab切换,
本例根据绑定id来实现tab切换,但本例仍有缺陷,用for循环数据,无法实现切换.如有大神能够有更好方法,欢迎留言更正 WXML: <view class="tab"> ...
- 编写tab切换插件
html: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...
- 小程序tab切换 点击左右滑动
wxml <scroll-view scroll-x="true" class="navbar-box"> <block wx:for=&qu ...
- 关于一个页面的tab切换整体页面刷新而tab标签处是同一个文件怎么做焦点的问题
解决方法,不能直接写点击效果就要在超链接中加一个参数,根据参数的值去给变焦点的效果,实现方法如下: <div class="vip_search"> ...
- 从一个简单的Tab切换开始——与AJAX的结合
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 小程序——Tab切换
<view class="body"> <view class="nav bc_white"> <view class=" ...
随机推荐
- NFS配置及使用
什么是NFS NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享存储.在NFS的应用中,本地NFS ...
- 关于Git的版本问题
问题的起源 我在IDEA上不小心修改了文件(加了一行空行)并且被保存了,在GitHub Desktop桌面工具上可以看到changes中有修改记录,并且使用命令行git status也可以看到文件的修 ...
- 在CentOS下安装crontab服务
1. 确认crontab是否安装: 执行 crontab 命令如果报 command not found,就表明没有安装 2. 安装 crontab 执行 yum install -y vixie-c ...
- linux服务器ssh、公匙和密钥实战详解
一..我们先建好一上haiwen用户用来,做为密码钥和SSH对像 二.修改vi /etc/ssh/sshd_config 文件,禁用ROOT远程直接登录. 三.ssh的公钥认证配置,只能用密匙才能登录 ...
- Ubuntu 配置FTP服务器
第三方的文件传输软件用着很不爽,想着自己搭建一个FTP来干活. 首先检查是否已经安装了FTP,输入命令: vsftpd -v 可以查看版本,如果没有安装,无法执行. 安装FTP p.p1 { mar ...
- Dynamics CRM 2015-Ribbon In Basic Home Tab
前文中有说到关于Form上Ribbon的配置以及控制,而Ribbon Button还可以在其它地方的配置,今天就来说说在Basic Home Tab里面的配置,效果图如下: 具体配置Customiza ...
- wss 协议传送过来的数据是经过 gzip 压缩过的,如何使用 qt 解压该数据呢?
#include <QtZlib/zlib.h> QByteArray qGzipUncompress(const QByteArray& data) { if (!data.da ...
- Tesseract OCR win 32位编译
https://github.com/tesseract-ocr/tesseract/wiki/Compiling 找到该标题:Develop Tesseract 按照上面的步骤执行即可,最后使用 v ...
- APP性能测试(CPU)
获取数据 :adb shell dumpsys cpuinfo | grep packagename result = os.popen("adb shell dumpsys cpuinfo ...
- svn版本管理系统出现的问题解决办法
首先会出现下面的一个提示错误: cannot checkout from svn run 'cleanup' if it was interrupted 百度加谷歌找到的解决问题的办法各种各样,自己遇 ...