博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Little Demo】左右按钮tab选项卡双切换
阅读量:6696 次
发布时间:2019-06-25

本文共 6320 字,大约阅读时间需要 21 分钟。

通过前一篇文章  的说明,相关效果也就可以实现了。

 

1.左右按钮tab选项卡双切换

很明显,左右两个按钮是 absolute 布局,另外就是内容部分和Tab标签部分。

1) 先实现Tab内容和标签部分的显示:

HTML代码:

We provide a full spectrum of online advertising...

Tour Our Services

CSS代码:

body, ul, li {
margin: 0; padding: 0; }body, button, input, select, textarea {
font: 12px/1.5 tahoma, arial, \5b8b\4f53; }ul, ol,li {
list-style: none; }a {
text-decoration: none;}.hidden {
display: none;}/*---------- tab ------------*/.tab-Infomations {
position: relative;width: 959px;margin: 10px auto;}.tab-content {
width:912px;height:324px;background: url("../imgs/tab-for-infomation/slidebg.jpg") no-repeat; overflow: hidden;margin: 0 auto;}/*---------- tab-thumbs ------------*/.tab-thumbs{
position: absolute;bottom: 0;}.tab-thumbs li {
float: left;width: 228px;height: 50px;}.tab-thumbs li a {
width: 228px;height: 50px;display: block;color: #ffffff;font-size: 18px;font-family: Arial,sans-serif;line-height: 50px;text-align: center; }.tab-thumbs li.selected a{
cursor: default;text-shadow: 1px 1px 1px #374f10;}/*---------- tab-info ------------*/.tab-info {
width:912px;height:324px;}.info {
width: 912px;height: 324px;position: absolute;}.info p{
color:#1d1d1d;font-size: 12px;line-height: 20px;margin-left: 326px;margin-top: 142px;width: 542px; }.info1 {
background: url("../imgs/tab-for-infomation/billboard1.png") no-repeat; }.info2 {
background: url("../imgs/tab-for-infomation/billboard2.png") no-repeat; }.info3 {
background: url("../imgs/tab-for-infomation/billboard3.png") no-repeat; }.info4 {
background: url("../imgs/tab-for-infomation/billboard4.png") no-repeat; }.GlobalButton {
background: url("../imgs/tab-for-infomation/btn_right.png") no-repeat top right;display: block;float: left;font-weight: bold;height: 31px;margin-top: 20px;padding-right: 20px;}.GlobalButton span {
background: transparent url("../imgs/tab-for-infomation/btn_left.png") no-repeat 0 0;line-height: 18px;line-height: 18px;padding: 7px 0 6px 20px;color: #252525;display: block;}/*---------- tab-info ------------*/.arrows {
position: absolute;}

效果:

 

2) 然后我们把两边的按钮加上

这里稍微调整下HTML:

...

然后是CSS代码:

.tab-border {
border: 1px solid #cccccc;margin: 0 auto;padding:3px;width: 912px;}/*---------- tab-arrows ------------*/.arrows a {
display: block;height: 41px;width:41px;top: 143px;z-index: 10;position: absolute;cursor: pointer;}.arrows-left {
background: url("../imgs/tab-for-infomation/arrows.png") no-repeat 0 0;left: 0;}.arrows-right {
background: url("../imgs/tab-for-infomation/arrows.png") no-repeat -41px 0px;right: 0;}.arrows-left:hover,.arrows-right:hover {
background-position-y: -41px;}

显示效果如下:

 

3) 然后就是添加jQuery方法 

$(document).ready(function () {    var mIndex = 0;    var maxIndex = $(".tab-thumbs li").length-1;    $(".tab-thumbs li").click(function () {        var mIndex = $(this).index();        changeTab(mIndex);    });    $(".arrows-right").click(function () {        if(mIndex
0){ mIndex--; }else { mIndex = maxIndex; } changeTab(mIndex); });})function changeTab(theIndex) { $(".tab-thumbs li").removeClass("selected"); $(".tab-thumbs li").eq(theIndex).addClass("selected") $(".info").stop(); $(".info").fadeOut(); $(".info").eq(theIndex).fadeIn();}

 

源码见 ||  || 

 

2.左右滚动效果

前面是用的淡入淡出的效果,但是一般来说还有左右滚动的效果。我们来实现看看:

为了和之前的对比,我们就不更改HTML 和CSS 文件中的代码。但是滚动效果是通过设置偏移值 left 来进行滚动的,而这里的信息展示部分不仅仅是图片,所以需要设置展示位的布局为相对布局,然后设置好展示位下的每个展示信息的left值,我们通过JS代码来操作:

...var maxIndex = $(".tab-thumbs li").length-1;var imgWidth = $(".tab-info").eq(0).width();// 为了对比,这里用JS 实现;实际上可以CSS直接添加的直接添加$(".tab-thumbs").attr("z-index","10"); //保持Tab 按钮在最上面// 设置图片的父元素为相对布局$(".tab-info").css({"position":"relative","overflow":"hidden"});// 去除隐藏类 hidden$(".info").removeClass("hidden");// 给每个类名为info 的元素设置左边缘位置for(var i=0;i<=maxIndex;i++){    $(".info").eq(i).css({"left":imgWidth*i+"px"});}...

然后我们的切换效果函数也需要修改下:

function changeTab(theIndex) {    var nowIndex = $(".selected").index();    var leftNum = $(".tab-info").eq(0).width()*(nowIndex-theIndex);    $(".tab-thumbs li").removeClass("selected");    $(".tab-thumbs li").eq(theIndex).addClass("selected");    $(".info").animate({left:"+="+leftNum }); //进行元素左移效果}

这样左右滚动的效果就实现了:

相关源码:

 

补充:

如果不想通过设置滚动模块的偏移值 left 来进行滚动的话,可以通过设置其父元素的 margin-left 值的变换来实现滚动效果。

HTML代码保持不变。但我们不能再让滚动模块绝对定位了,更改其 CSS样式如下:

.info {
width: 912px;height: 324px; float: left;position: static;}

然后更改JS控制其父元素 .tab-info 的 margin-left 值的变换。当 margin-left 为0,自然显示第一个模块;让 margin-left 为负的模块宽度时,显示第二个模块。以此类推。JS代码如下:

$(document).ready(function () {    var mIndex = 0;    var maxIndex = $(".tab-thumbs li").length-1;    var imgWidth = $(".info").eq(0).width();    // 为了对比,这里用JS 实现;实际上可以CSS直接添加的直接添加    $(".tab-thumbs").attr("z-index","10"); //保持Tab 按钮在最上面    // 设置图片的父元素为相对布局    $(".tab-info").css({"position":"relative","width":imgWidth*$(".tab-thumbs li").length+"px"});    // 去除隐藏类 hidden    $(".info").removeClass("hidden");    $(".tab-thumbs li").click(function () {         mIndex = $(this).index();        changeTab(mIndex);    });    $(".arrows-right").click(function () {        if(mIndex
0){ mIndex--; }else { mIndex = maxIndex; } changeTab(mIndex); });})function changeTab(theIndex) { var imgWidth = $(".info").eq(0).width(); var marginValue = "-"+theIndex*imgWidth+"px"; $(".tab-thumbs li").removeClass("selected"); $(".tab-thumbs li").eq(theIndex).addClass("selected"); $(".tab-info").css({"margin-left":marginValue,"transition-property":"margin-left","transition-duration":"0.2s"}); //进行元素左移效果}

 

转载地址:http://akvoo.baihongyu.com/

你可能感兴趣的文章
在dos控制台显示utf8字符
查看>>
Git学习笔记:pull request
查看>>
MySQL学习(四)
查看>>
响应式布局中重要的meta标签设置.适用于手机浏览器兼容性设置
查看>>
Unity---Inspector面板自定义
查看>>
2016 Multi-University Training Contest 4
查看>>
[Todo] Redis相关学习
查看>>
js中arguments对象和this对象
查看>>
html5--1.14 特殊符号的使用
查看>>
.net 实现微信公众平台的主动推送信息
查看>>
Linux上的压缩与归档
查看>>
组内评分
查看>>
centos7 修改静态ip 和dns
查看>>
android全磁盘加密
查看>>
慎用子查询,因为难以优化
查看>>
C语言的世界
查看>>
HDU 6041 - I Curse Myself | 2017 Multi-University Training Contest 1
查看>>
快给你的网站添加微信公众号吧!
查看>>
php+mysql 除了设置主键防止表单提交内容重复外的另一种方法
查看>>
I2S简单学习
查看>>