移动端的一个js效果:手滑动向上向下滚动li标签

JavaScript015

移动端的一个js效果:手滑动向上向下滚动li标签,第1张

试试以下代码:

<!DOCTYPE html>

<html>

<head>

<mata charset="utf-8"/>

<link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.css">

<script src="http://code.jquery.com/jquery-1.8.3.min.js"></script>

<script src="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.js"></script>

<script>

$(document).on("pageinit","#pageone",function(){

  $(document).on("scrollstop",function(){

    alert("停止滚动!")

  })                       

})

</script>

</head>

<body>

<div data-role="page" id="pageone">

  <div data-role="header">

    <h1>scrollstop 事件</h1>

  </div>

  <div data-role="content">

    <p><b>提示:</b>如果未出现滚动条,请尝试调整窗口尺寸。</p>

  

   <ul data-inset="true">

        <li data-role="list-divider">信息列表</li>

        <li data-role="fieldcontain">大学1</li>

        <li data-role="fieldcontain">大学大学2</li>

        <li data-role="fieldcontain">大学大学3</li>

        <li data-role="fieldcontain">大学大学4</li>

        <li data-role="fieldcontain">信息大学5</li>

        <li data-role="fieldcontain">大学6</li>

        <li data-role="fieldcontain">大学信息7</li>

        <li data-role="fieldcontain">信息大学8</li>

        <li data-role="fieldcontain">信息大学大学9</li>

        <li data-role="fieldcontain">信息大学10</li>

        <li data-role="fieldcontain">信息大学11</li>

        <li data-role="fieldcontain">信息大学12</li>

        <li data-role="fieldcontain">信息大学11</li>

        <li data-role="fieldcontain">信息大学12</li>

        <li data-role="fieldcontain">信息大学11</li>

        <li data-role="fieldcontain">信息大学12</li>

        <li data-role="fieldcontain">信息大学11</li>

        <li data-role="fieldcontain">信息大学12</li>

        <li data-role="fieldcontain">信息大学11</li>

        <li data-role="fieldcontain">信息大学12</li>

        <li data-role="fieldcontain">信息大学11</li>

        <li data-role="fieldcontain">信息大学12</li>

      </ul>

  </div>

  <div data-role="footer">

    <h1>页脚文本</h1>

  </div>

</div> 

</body>

</html>

视图的改变都应该是因为数据的改变而引起的,而不是直接通过一些api去更改视图,像你这种对应的数据应该类似

[

    {

        name: '开始',

        value: 1

    },

    {

        name: '结束',

        value: 2

    }

]

交换就是交换这个数据,然后根据新的数据去渲染你上面的视图,这样就不用担心数据和视图不同步了。

window.onload=function(){

    var btn=document.getElementById("btn")

    var odiv=document.getElementById("div")

    var ali=odiv.getElementsByTagName("li")

    var w = document.documentElement.clientWidth

    var y = document.documentElement.clientHeight

    var directionX = []

    var directionY = []

    for(var i=0 i<ali.length i++){

        directionX.push(true)

        directionY.push(true)

    }

    var t=null

    btn.onclick=function(){

        clearInterval(t)

        t=setInterval(function(){

            for(var i=0 i<ali.length i++){

                var speedx=Math.floor(Math.random()*50 + 5)

                var speedy=Math.floor(Math.random()*18 + 8)

                

                var l = directionX[i] ? ali[i].offsetLeft+speedx : ali[i].offsetLeft-speedx

                var t = directionY[i] ? ali[i].offsetTop+speedy : ali[i].offsetTop-speedy

                

                if(0 < l && l <= w-ali[i].offsetWidth){

                    ali[i].style.left=l+"px"

                }

                else

                    directionX[i] = !directionX[i]

                if(0 < t && t < y-ali[i].offsetHeight){

                    ali[i].style.top=t+"px"

                }

                else

                    directionY[i] = !directionY[i]

            }

        },10)

    }

}