<div class="codetitle"> <span><a style="CURSOR: pointer" data="79304" class="copybut" id="copybut79304" onclick="doCopy('code79304')"><u>コードをコピー</u></a></span> コードは次のとおりです:</div> <div class="codebody" id="code79304"> <br><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" > <br><html xmlns="http://www.w3.org/1999/xhtml"> <br><head> <br><script type="text/javascript"> ;!-- <br>//メインのスクロール関数<br>//スクロール効果がまさに必要なものである場合<br>//この関数を直接呼び出すだけで済みます<br>var moveTag=function( obj) { <br>var _this = this; <br>_this.speed = 10;//移動速度<br>_this.space = 10 * _this.speed;//移動間隔時間<br>obj.scrollLeft =0;/ /スクロール位置を初期化します (主に FF との互換性を考慮) <br>var divList = obj.getElementsByTagName("DIV"); <br>var obj2 = new Object();//すべてのスクロール列が含まれます div <br>for(var i=0;i<divlist.length>if(divList[i].parentNode==obj){ <br>obj2=divList[i]; <br>} <br>} <br>//スクロールする必要があるすべての列を取得します<br>//divList を 2 回ループする目的は、スタイル名がスクロール コードに影響を与えないようにすることです<br>//つまり、スクロールするコードとスタイル名の結合を可能な限り減らす <br>var cellCount = 0; <br>_this.cellList = new Array(); <br>for(var i=0;i<divlist.length>if(divList[i].parentNode==obj2){ <br>cellCount ; <br>_this.cellList.push(divList[i]);//スクロールする必要があるすべての列<br> } <br>} <br>_this.resetCellList=function(){ <br>//この関数は主に中断のないスクロール用です<br>//終点までスクロールするたびに使用する必要があります<br>/ /すでにスクロールされている列をリセットします 現在の列の後に移動 <br>for(var i=0;i<_this.celllist.length-1>obj2.removeChild(_this.cellList[i]); 🎜>obj2.appendChild( _this.cellList[i]); <br>} <br>//_this.cellList を再取得 <br>_this.cellList = new Array(); ;divList.length ;i ){ <br>if(divList[i].parentNode==obj2) _this.cellList.push(divList[i]); <br>} <br>//alert(_this.cellList. length); <br>} <br>_this.resetForMoveRight=function(){ <br>//この関数は主に中断のないスクロールに使用されます<br>//resetCellList との違いは、この関数が中断のないスクロールに使用されることです。 right<br>//開始点までスクロールするたびに、<br>を使用する必要があります//現在の列の後のすべての列を現在の列の前に移動します <br>if(_this.cellList.length>0){ <br>for( var i=_this.cellList.length-1;i>0;i--){ <br>obj2.removeChild(_this.cellList[i]); <br>obj2.insertBefore(_this.cellList) [i],obj2 .childNodes[0]); <br>} <br>} <br>//_this.cellList を再取得 <br>_this.cellList = new Array(); ;i< divList.length;i ){ <BR>if(divList[i].parentNode==obj2) _this.cellList.push(divList[i]); <BR>} <BR>//alert(_this. cellList.length ); <BR>} <BR>//alert(_this.cellList.length); <BR>obj2.style.width = parseInt(obj.offsetWidth * cellCount) "px"; 🎜>/ /alert(_this.endScroll); <BR>var cellScroll = obj.offsetWidth;//毎回スクロールする距離<BR>var endScroll = obj2.offsetWidth - cellScroll;//スクロールバー<BR> //alert(_this.cellScroll); <BR>// <BR>_this.moveLength = cellScroll; // 0 の場合は、ページが読み込まれた直後に移動します。 _this.cellScroll に等しい <BR>_this.scrollEnd = false; <BR>//休憩を取る <BR>_this.sleep=function() { <BR>_this.scrollTimes; <BR>if(_this.scrollTimes>=_this.space){ <br>_this.scrollTimes=0; <br>} <br>}; <br>_this.moveStart = true ;//移動を開始するかどうか<br>_this.isMoveLeft = true;//左に移動するかどうか<br>_this.move=function(){ <br>obj.onmouseover=function( ){ <br>_this.moveStart= false; <br>obj.onmouseout=function(){ <br>_this.moveStart=true; <br>}; >if(obj.scrollLeft> =endScroll && _this.isMoveLeft){//左に移動し、最後まで移動しました<br>if(_this.moveLength > 0) _this.moveLength = cellScroll;//Adjust<br>if(_this.cellList.length> ;0){ <br>_this.resetCellList();//セルリストを更新 <br>obj.scrollLeft=0; <br>}else{ <br>_this.scrollEnd = true; 🎜>} <br>}else if(obj.scrollLeft<=0 && !_this.isMoveLeft){//右に移動し、最後まで移動しました<BR>if(_this.moveLength > 0) _this.moveLength = cellScroll;//調整<br> if(_this.cellList.length>0){ <br>_this.resetForMoveRight();//セルリストを更新 <br>obj.scrollLeft=endScroll; <br> >_this.scrollEnd = false; <br>} <br>} <br>// <br>if(_this.scrollEnd){//左に移動 <br>if(_this.moveLength<cellScroll && _this.moveStart){ <BR>obj.scrollLeft-- ; <BR>_this.moveLength ; <BR>}else if(_this.moveLength>=cellScroll){ <BR>_this.sleep() <BR>} <BR>else{//右に移動 <BR>if(_this.moveLength<cellScroll && _this.moveStart){ <BR>obj.scrollLeft ; <BR>_this.moveLength <BR>}else if(_this.moveLength>=cellScroll ; ){ <BR>_this.sleep(); <BR>} <BR>} <BR>}; <BR>_this.start=function(){ <BR>setInterval(_this.move, _this.speed); <BR>}; <BR>//右に移動<BR>_this.moveRight=function(){ <BR>_this.scrollEnd = true;//最後までスクロールしました<BR>_this.isMoveLeft = false;//右にスクロール<BR> _this.scrollTimes=0; <BR>}; <BR>//左に移動<BR>_this.moveLeft=function(){ <BR>_this.scrollEnd = false;//最後までスクロールしません<BR>_this. isMoveLeft = true; // 左にスクロールします <BR>_this.scrollTimes=0; <BR>}; ="Content-Type" content="text/html; charset=gb2312" /> <br><style><!-- <BR>#list{border:#ccc 1px Solid;} <BR> # list div div{line-height:30px;text-align:center;border-right:#ccc 1px Solid;} <BR>#list{width:150px;height:30px;overflow:hidden;}/*必須属性、幅と高さはカスタマイズ可能*/ <BR>#list div div{width:150px;height:30px;float:left;}/*必須の属性、幅と高さは #list と同じである必要があります*/ <BR>- -></style><style mce_bogus="1">#list{border:#ccc 1px Solid;} <br>#list div div{line-height:30px;text-align :center;border -right:#ccc 1px Solid;} <br>#list{width:150px;height:30px;overflow:hidden;}/*必須属性、幅と高さはカスタマイズ可能*/ <br># list div div{width :150px;height:30px;float:left;}/*必須の属性、幅と高さは #list 定義と同じである必要があります*/</style> <br><title>タイトルなし Document</title> 🎜></head><br><div><br><div><br> <div>2 列目<br><div>3 列目<br><div>4 列目<br><div>5 列目<br></div> <br></div> <br><a href="javascript:moveLeft()" mce_href="javascript:moveLeft()">左に移動</a> <a href="javascript:moveRight()" mce_href="javascript:moveRight()">右に移動</a> <br><script type="text/javascript"><!-- <BR>var move=new moveTag(document.getElementById("list")); <BR>move.start(); <BR>move .speed=10;//スクロール速度、デフォルトは 10 <BR>// move.space=0;//スクロール間隔時間、デフォルトはスクロール速度 * 16 <BR>//左への移動は左端までのみ移動でき、左端まで移動することはできません<BR>//順番に中断せずにスクロールするには、左端の座標が常に変化します<BR>//move.moveLeft();//これにより、右から左へのデフォルトの移動を設定できます<BR>//move.moveRight();// move.moveLeft() の反対方向<BR>var moveLeft=move.moveLeft; <BR>var moveRight=move.moveRight; <BR>//N 箇所にスクロールするページが必要ですか? <BR>//問題ありません!それを実現するには、さらにいくつかの新しいインスタンスが必要です <BR>// --></script> <br></html></div> </div> </div></_this.celllist.length-1></divlist.length></divlist.length> </div>