この記事の例では、シームレスな上下スクロールを実現するための JavaScript のコードを説明しており、具体的な内容は次のとおりです。
シームレスな上下スクロールを実現するための js の原理 は次のとおりです:
1. まずコンテナの高さまたは幅を設定し、次に overflow:hidden;
2. コンテナの高さを設定した後、それを超えるとコンテンツは非表示になります。
3. コンテナのscrollTop(上下にスクロール)属性の値を変更して、コンテンツを1ノード分上下に移動します(スクロールの原理)。
4. スクロールの高さscrollTopがスクロールされるノードの高さ以上の場合、scrollTop=0を設定し、子ノードツリーの最初のノードを最後に移動し、中断のないループスクロール効果が再開されます。現れる。
レンダリングは次のとおりです:
コードは次のとおりです:
<div id="colee" style="overflow:hidden;height:100px;width:410px;border:1px solid red;"> <div id="colee1"> <p>php</p> <p>java</p> <p>ruby</p> <p>python</p> <p>www.phpddt.com</p> </div> <div id="colee2"></div> </div> <script> //速度设置 var speed=1; var colee2=document.getElementById("colee2"); var colee1=document.getElementById("colee1"); var colee=document.getElementById("colee"); colee2.innerHTML=colee1.innerHTML; //克隆colee1为colee2 function Marquee1(){ //当滚动至colee1与colee2交界时 if(colee2.offsetTop-colee.scrollTop<=0){ colee.scrollTop-=colee1.offsetHeight; //colee跳到最顶端 }else{ colee.scrollTop++ } } var MyMar1=setInterval(Marquee1,speed)//设置定时器 //鼠标移上时清除定时器达到滚动停止的目的 colee.onmouseover=function() {clearInterval(MyMar1)} //鼠标移开时重设定时器 colee.onmouseout=function(){MyMar1=setInterval(Marquee1,speed)} </script>