移动端html5怎么实现原生tab滑动切换

html-css04

移动端html5怎么实现原生tab滑动切换,第1张

 我们使用移动端时可以通过触屏手势左右滑动来切换TAB栏目,我们说的TAB一般由导航条和TAB对应的内容组成,切换导航条上的标签同时标签对应的内容也会跟着切换。

我们准备一个TAB导航#pagenavi,里面包含TAB导航要切换的四个导航按钮,然后是切换的主体内容#slider,这里应该放置四个li与导航按钮对应,内容自定义。

由于是移动端应用,我们加载zepto.js,zepto就是体积小的jquery。然后需要加载触屏滑动插件touchslider.js。

接下来我们就直接调用TouchSlider,通过设置绑定tab,滑动方向、速度、时间等信息实现内容切换,请看详细代码:

<script type="text/javascript">

var page='pagenavi'

var mslide='slider'

var mtitle='emtitle'

arrdiv = 'arrdiv'

var as=document.getElementById(page).getElementsByTagName('a')

var tt=new TouchSlider({id:mslide,'auto':'-1',fx:'ease-out',direction:'left',speed:600,timeout:5000,'before':function(index){

var as=document.getElementById(this.page).getElementsByTagName('a')

as[this.p].className=''

as[index].className='active'

this.p=index

var txt=as[index].innerText

$("#"+this.page).parent().find('.emtitle').text(txt)

var txturl=as[index].getAttribute('href')

var turl=txturl.split('#')

$("#"+this.page).parent().find('.go_btn').attr('href',turl[1])

}})

tt.page = page

tt.p = 0

for(var i=0i<as.lengthi++){

(function(){

var j=i

as[j].tt = tt

as[j].onclick=function(){

this.tt.slide(j)

return false

}

})()

}

</script>

常见命名

.wrap或.wrapper--用于外侧包裹

.container或.ct--包裹容器

.header--用于头部

.body--页面 body

.footer--页面尾部

.aside、sidebar--用于侧边栏

.content--和header footer对应,用于主要内容

.navigation--导航元素

.pagination--分页

.tabs >.tab--tab切换

.breadcrumbs--导航列表、面包屑

.dropdown--下拉菜单

.article--文章

.main--用于主体

.thumbnail--头像、小图像

.media--媒体资源

.panel--面板

.tooltip--鼠标放置上去的提示

.popup--鼠标点击弹出的提示

.button、btn--按钮

.ad--广告

.subnav--二级导航

.menu--菜单

.tag--标签

.message或.notice--提示消息

.summary--摘要

.logo--logo

.search--搜索框

.login--登录

.register--注册

.username--用户名

.passwprd--密码

.banne --广告条

.copyright--版权

.modal或.dialog--弹窗

状态:

inverse--相反的

toggled--切换

switched--转换

original--起初的

initial--最初的

identified--识别

disabled--禁用

loading--加载

pending--等待

syncing--同步

default--默认

修饰:

dark--黑暗的

light--浅色的

shaded--深色阴影的

flat--平滑的

ghost--精灵

maroon--褐红色的

pale--白

intense--强烈的

twisted--扭曲的

narrow--狭窄的

wide--宽的

smooth--光滑的

separate--分离

clean--清洁的

sharp--锋利的

aligned--对齐的

元素:

pagination--分页

modal--情态动词

popup--弹出

article--文章

story--故事

flash--闪光

status--现状

state--州立

media--媒体

block--快

card-卡

teaser--挑逗

badge--徽章

label--标签

sheet--片材

poster--海报

notice--通知

record--记录

entry--入门

item--项目

figure--图

square--广场

module--模块

bar--酒吧

button--按钮

action--行动

knob--旋钮

布局:

navigation--航行

wrapper--包装器

inner--内部的

header--页眉

footer--页脚

aside--在一边

section--部分

divider--除法器

content--内容

container--容器

panel--面板

pane--窗格

construct--建造

composition--作文

spacing--间距

frame--框架

您好!很高兴为您答疑。

走读了一下您的代码,发现您没有提供网站的页面代码,因此缺少一些必要元素,为您随手补充到足以调试的地步并在火狐下进行了测试,发现代码运行正常,贴出来给您参考一下(因为没有附加css样式,只是达到了切换显示的效果,而非tab切换的效果,但是足以解决js兼容问题):

<script language="javascript">

function secBoard(n)

{

for(i=1i<3i++)

{

eval("document.getElementById('cl0"+i+"').className='s02'")

eval("tbx0"+i+".style.display='none'")

}

eval("document.getElementById('cl0"+n+"').className='s01'")

eval("tbx0"+n+".style.display='block'")

}</script>

<div style="display:" id="tbx01" align="center">11</div>

<div style="display:none" id="tbx02" align="center">22</div>

<table>

<tr>

<td id="cl01" width="184" class="s01" onClick="secBoard(1)" style="cursor: pointer"><img src="image/preg-1.jpg" height="27" width="184" style="border:none" align="left"></td>

<td id="cl02" width="186" class="s02" onClick="secBoard(2)" style="cursor: pointer"><img src="image/creg-1.jpg" height="27" width="184" style="border:none" align="left"></td>

</tr>

</table>

如果对我们的回答存在任何疑问,欢迎继续问询。