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

html-css09

移动端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>

我刚开始也在找这个问题的答案,现在解决了,为后面学习的人栽棵树吧。

实现这个功能有很多种方法,这里我选一种个人认为比较简单的方法:

建立三个网页,一个作为主页面,另外两个子页面作为切换页面嵌入主页面,子页面也可以用文字替代。

用jQuery方法来切换页面,语言比较简单网上搜一下看看就懂了

下面附上代码

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title>标题</title>

    <!--jQuery 百度CDN库-->

    <script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>

    <script>

        // jQuery代码

        $(document).ready(function () {

            $("#b1").click(function () {

                $("#tab_1").show()// 显示

                $("#tab_2").hide()// 隐藏

            })

            $("#b2").click(function () {

                $("#tab_1").hide()

                $("#tab_2").show()

            })

        })

    </script>

</head>

<body>

<div>

    <h1>标题一</h1>

</div>

<div>

    <div>

        <ul>

            <li><button id="b1">菜单1</button></li>

            <li><button id="b2">菜单2</button></li>

        </ul>

    </div>

    <div>

        <div id="tab_1">

            子页面1

        </div>

        <div id="tab_2" style="display: none">

            子页面2

        </div>

    </div>

</div>

</body>

</html>