效果如上,左右箭头点击,相应左右滑动一个功能菜单的长度,点击BTN2时若所有功能菜单没溢出就不显示箭头不允许左右滑动。

可根据初始化功能菜单的个数,判断。若某个tabCon没有内容,则删除相应tabCon和tabBtn。

HTML:

<div class="tabBtn">
<div class="btn1 Tbtn" id="OnTBtn">btn1</div>
<div class="btn2 Tbtn">btn2</div>
<div class="btn3 Tbtn">btn3</div>
<div class="btn4 Tbtn">btn4</div>
<div class="btn5 Tbtn">btn5</div>

</div>

<div class="tabCon">

<div class="tab1 tab" id="OnTCon">
<i class="leftArrow"></i>
<div>

<ul>

<li class="fun-menu">
<i></i>
<span>功能菜单1</span>
</li>
<li class="fun-menu">
<i></i>
<span>功能菜单2</span>
</li>
<li class="fun-menu">
<i></i>
<span>功能菜单3</span>
</li>

</ul>

</div>
<i class="rightArrow"></i>
</div>

.....类推5个。

CSS:

.tabBtn{
/* width: 300px;
height: 42px;
display: inline-block;
position: absolute;
right: 40px;
bottom: 15px;*/
width: 360px;
height: 32px;
display: inline-block;
position: absolute;
right: 40px;
bottom: 0;
}
.tabBtn div{
/*width: 58px;
height: 40px;*/
width: 70px;
height: 32px;
background: #E28920;
float: left;
border: 1px solid #8D8D8D;
border-top-left-radius: 20px;
border-top-right-radius: 20px;
text-align: center;
/* line-height: 42px;*/
line-height: 32px;
}
#OnTBtn{
background: #E2573E;
}
/*tap内容*/
.tabCon{
width: 100%;
height: 50px;
background:#d8cbcb;
/*position: relative;*/
}
.tab{
width: 100%;
height: 50px;
float: left;
text-align: left;
line-height: 50px;
position: absolute;
display: none;
box-sizing: border-box;

}
#OnTCon{
display: block;
}
.tab>div{
height: 50px;
overflow: hidden;
margin: 0 30px;
position: relative;
}
.tab ul{
position: absolute;
}
.fun-menu{
width: 104px;
height: 34px;
background: #F4F5F9;
float: left;
margin: 7px 6px 7px 0;
line-height: 34px;
box-sizing: border-box;
display: inline-block;

}
.fun-menu i{
width: 28px;
height: 28px;
display: inline-block;
margin-right: 3px;
margin-left: 6px;
margin-top: 3px;
float: left;
background: #8A2BE2;

}
.fun-menu span{
width: 65px;
height: 34px;
line-height: 34px;
display: inline-block;
float: left;
}
.leftArrow,.rightArrow{
width: 30px;
height: 30px;
display: inline-block;
position: absolute;


}
.leftArrow{
background: url(../img/leftArrow.png) no-repeat;
background-size: 100% 100%;
top: 7px;
display: none;
}
.rightArrow{
right: 0;
top: 10px;
background: url(../img/rightArrow.png) no-repeat;
background-size: 100% 100%;
display: none;
}

JS:

$(document).ready(function() {
var click_num =[0,0,0,0,0,0];
var curIndex=0;
var li_size=0;
var w_width = $(window).width();
var screenSize = Math.floor((w_width - 60) / 110);
$(".Tbtn").each(function(index) {
var Tbtn = $(this);
$(this).click(function() {

$("#OnTCon").removeAttr("id");
$("#OnTBtn").removeAttr("id");

$(".tab").eq(index).attr("id", "OnTCon");
Tbtn.attr("id", "OnTBtn");
curIndex=index;
tbnOnclick();
});

});
tbnOnclick();
function tbnOnclick(){
li_size = $("#OnTCon ul li").size();
$("#OnTCon ul").width(li_size * 110);

if(li_size - screenSize>0){
$(".leftArrow").css("display","block");
$(".rightArrow").css("display","block");
// $(".leftArrow").css("background","url(image/top/left-A.png) no-repeat");
// $(".rightArrow").css("background","url(image/top/right-A.png) no-repeat");
}else{
/* $(".leftArrow").css("background","url(image/top/left-B.png) no-repeat");
$(".rightArrow").css("background","url(image/top/right-B.png) no-repeat");*/
$(".leftArrow").css("display","none");
$(".rightArrow").css("display","none");
}
}

var lCanClick=true;
var rCanClick=true;
$(".rightArrow").click(function() {
if(rCanClick==false) return;
console.log(click_num[curIndex]);
if(click_num[curIndex] < li_size - screenSize) {
click_num[curIndex]++;
rCanClick=false;
$("#OnTCon ul").animate({
left: -click_num[curIndex] * 110
}, 500,function(){
rCanClick=true;
});
}else{
click_num[curIndex]=li_size - screenSize;

}
});

$(".leftArrow").click(function() {
if(lCanClick==false) return;
console.log(click_num[curIndex]);
var leftPosition = $("#OnTCon ul").css("left");
leftPosition = leftPosition.replace("px", "");
if(parseInt(leftPosition) < 0) {
click_num[curIndex]--;
lCanClick=false;
$("#OnTCon ul").animate({
left: -click_num[curIndex] * 110
}, 500,function(){
lCanClick=true;
});
}else{
click_num[curIndex]=0;
}
});

})

初始化确定TAB个数:

tab,tabCon里放很多div,点击左右滑动一个。可根据初始化清除空的tabCon。的更多相关文章

  1. 微信公众号里放XLS链接

    微信公众号里放XLS链接 我们都知道创建一个微信公众号在公众号中发布一些文章是非常简单的,但公众号添加附件下载的功能却被限制,如今可以使用小程序“微附件”进行在公众号中添加附件,如:xls,word等 ...

  2. ASP.NET MVC WebApi 返回数据类型序列化控制(json,xml) 用javascript在客户端删除某一个cookie键值对 input点击链接另一个页面,各种操作。 C# 往线程里传参数的方法总结 TCP/IP 协议 用C#+Selenium+ChromeDriver 生成我的咕咚跑步路线地图 (转)值得学习百度开源70+项目

    ASP.NET MVC WebApi 返回数据类型序列化控制(json,xml)   我们都知道在使用WebApi的时候Controller会自动将Action的返回值自动进行各种序列化处理(序列化为 ...

  3. 如果你的 HTML 里全是 div,那就要小心了

    做前端开发的同学都知道,一个网页的基本组成部分是 HTML,JavaScript 和 CSS.开发人员通常更关注 JavaScript 和 CSS ,实践着各种语言规范和设计模式.对于 HTML 的关 ...

  4. 原生js实现tab选项卡里内嵌图片滚动特效代码

    <!DOCTYPE HTML><html lang="en-US"><head><meta charset="UTF-8&quo ...

  5. DIV+CSS布局问题:一个宽度不确定的DIV里面放三个水平对齐的DIV,左右两个DIV宽度固定为150px,中间那个DIV充满剩余的宽度

    一个入门的DIV+CSS布局问题:一个宽度不确定的DIV里面放三个水平对齐的DIV,左右两个DIV宽度固定为150px,中间那个DIV充满剩余的宽度. 说明:代码非真实情况下使用,所以直接简单. 没耐 ...

  6. ie10兼容问题 -- 将div定位absolute在图片img上面,导致div点击事件无效

    ie10兼容问题: 将div定位absolute在图片img上面,发现div若不加背景色,导致div点击事件(任何事件)无效. <div class="paper-box"& ...

  7. Java web开发,在一个jsp里放太多java代码的后果,摘自 java web轻量级开发面试教程

    现要做一个简单的登录页面,如果用户通过验证,会显示Welcome用户名的欢迎词,反之则返回登录页面让用户再次输入 这部分的完整代码是JSPDemo项目里的login.jsp,下面来分析一下关键代码. ...

  8. js或jquery实现点击某个按钮或元素显示div,点击页面其他任何地方隐藏div

    点击某个元素显示div,点击页面其他任何地方隐藏div,可用javascript和jquery两种方法实现: 一:javascript实现方法技巧<script>//定义stopPropa ...

  9. ios访问web页面<div>点击事件不起效果,以及alert()显示url的解决办法

    ios访问web页面<div>点击不起效果,在其div上添加style=”cursor:pointer:“ jquery web页面动态append()事件调用方法:$(document) ...

随机推荐

  1. caffe model 可视化

    1. 打开网址 http://ethereon.github.io/netscope/#/editor 2.将自己的train_test.prototxt里的复制粘贴到左边 3.然后同时shift+e ...

  2. 【转】不容忽视的ClassNotFoundException

    转载地址:http://it.deepinmind.com/jvm/2014/04/11/classnotfoundexception-is-it-slowing-down-your-jvm.html ...

  3. Java 接口练习题

    中国特色社会主义的体制中有这样的现象:地方省政府要坚持党的领导和按 照国务院的指示进行安全生产.请编写一个java应用程序描述上述的体制现象. 要求如下: (1)该应用程序中有一个“党中央”接口:Ce ...

  4. 后端学 Angular 2 —— 组件间通信

    1. 父组件向子组件传递信息 使用@Input 子组件的属性用 @Input 进行修饰,在父组件的模板中绑定变量 例子: import { Component, OnInit, Input } fro ...

  5. Fragment全解析系列(一):那些年踩过的坑

    开始之前 最新版知乎,单Activity多Fragment的架构,响应可以说非常"丝滑",非要说缺点的话,就是没有转场动画,并且转场会有类似闪屏现象.我猜测可能和Fragment转 ...

  6. Trading

    http://v.youku.com/v_show/id_XMTA0OTcxMjgw.html?from=y1.2-1-87.3.8-1.1-1-1-7

  7. RStudio中,出现中文乱码问题的解决方案

    RStudio中,出现中文乱码问题的解决方案解决步骤:1.设置RStudio文本显示的默认编码:RStudio菜单栏的Tools -> Global Options2.选择General -&g ...

  8. Upload java coed in Ubuntu(在Linux 16上,上传代码)

    指令如下:(按照如下指令顺序执行即可) 1.git status  (注释:可以查看哪些代码改动了) 2.git add .     (注意:不要漏掉add后面的" . ",将本地 ...

  9. Spark在Hadoop集群上的配置(spark-1.1.0-bin-hadoop2.4)

    运行Spark服务,需要在每个节点上部署Spark. 可以先从主节点上将配置修改好,然后把Spark直接scp到其他目录. 关键配置 修改conf/spark-env.sh文件: export JAV ...

  10. linux @后面的主机名如何修改

    @后面的为linux系统的主机名 临时修改方法:执行 hostname 主机名再执行 bash 永久修改方法:修改配置文件/etc/sysconfig/network修改参数HOSTNAME=主机名永 ...