この記事では主に JavaScript での回転カルーセル チャートの実装について詳しく紹介します。興味のある方は参考にしてください。
最近 JavaScript を勉強しているのですが、回転カルーセル チャートを試してみました。 jsを使って簡単なカルーセル画像を作成します。動的効果は表示できないので、スクリーンショットを貼り付けます:
効果は次のようになります: 合計7枚の写真があり、それらは自動的に左にスライドします。 、そして、左と右の矢印は、カルーセルの左と右のスライドを制御することもできます。同時に、マウスが画像上で停止すると、カルーセルは自動的に停止し、マウスが離れるとスライドし続けます。左に回転します。
まず、ここでは 2 つの関数をカプセル化しました (jQuery をまだ学習していないため、関数をカプセル化する方法を使用して実装しました)。最初の関数は、要素を取得するために呼び出すことができる $ 関数です。 HTML のコードは次のとおりです。
`function $(select){ if (typeof select != 'string') { console.log('传入的参数有误'); return null; } var firstChar = select.charAt(0); switch(firstChar){ case '#': return document.getElementById(select.substr(1)); break; case '.': if (document.getElementsByClassName){ return document.getElementsByClassName(select.substr(1)); } else { var result = []; var allElemnts = document.getElementsByTagName('*'); console.log(allElemnts); for (var i = 0; i < allElemnts.length; i++){ var e = allElemnts[i]; var className = e.className; var classArr = className.split(' '); for (var j = 0; j < classArr.length; j++){ var c = classArr[j]; if (c == select.substr(1)) { result.push(e); break; } } } return result; } break; default : return document.getElementsByTagName(select); } }`
2 番目の関数は、json を使用して複数のスタイルを動的に変更し、アニメーション効果を実現するアニメーション関数です。次のステップは HTML 部分を書きます。画像が数枚しかないので、HTML 部分は非常に単純です:
function animate(element, json, fun) { clearInterval(element.timer); function getStyle(element, styleName){ if(element.currentStyle){ //ie浏览器下 直接通过currentstyle来获取 //return element.currentStyle.heigh; return element.currentStyle[styleName]; }else{ var computedStyle = window.getComputedStyle(element,null); return computedStyle[styleName]; } } var isStop = false; element.timer = setInterval(function () { isStop = true; for (var key in json){ var target = json[key]; var current; if (key == 'opacity') { //当动画的类型为透明度时 获取的值应该是浮点类型 current = parseFloat(getStyle(element, key)) || 1; } else { //其他情况 用整数类型 current = parseInt(getStyle(element, key)) || 0; } var step = (target - current) / 10; if (key != 'opacity') { step = step > 0 ? Math.ceil(step) : Math.floor(step); } current += step; if (key == 'opacity') { if (Math.abs(target - current) > 0.01) { isStop = false; } else { current = target; } element.style.opacity = current + ''; } else { if (Math.abs(target-current) > Math.abs(step)) { isStop = false; } else { current = target; } if (key == 'zIndex'){ element.style.zIndex = Math.round(current); } else { element.style[key] = current + 'px'; } } } if (isStop) { clearInterval(element.timer); console.log('动画完成'); if (typeof fun == 'function') { fun(); } } }, 30); }`
CSS スタイル部分には多くの説明がありません。
以下はJS部分です。コードも非常にシンプルなので、明確にしてください
<body> <p class="box"> <p class="content"> <ul> <li><a href="#"><img src="./images/1.jpg"></a></li> <li><a href="#"><img src="./images/2.jpg"></a></li> <li><a href="#"><img src="./images/3.jpg"></a></li> <li><a href="#"><img src="./images/4.jpg" class="current"></a></li> <li><a href="#"><img src="./images/5.jpg"></a></li> <li><a href="#"><img src="./images/6.jpg"></a></li> <li><a href="#"><img src="./images/7.jpg"></a></li> </ul> </p> <p class="control"> <a href="javascript:;" id="prev"></a> <a href="javascript:;" id="next"></a> </p> </p> </body>
window.onload = function(){ //定位,并给图片设置大小透明度 var json = [{ width: 630, top: 23, left: 0, zIndex: 2, opacity: 0 },{ width: 630, top: 23, left: 0, zIndex: 3, opacity: 0 },{ width: 630, top: 23, left: 0, zIndex: 4, opacity: 0.6 },{ width: 730, top: 0, left: 125, zIndex: 5, opacity: 1 },{ width: 630, top: 23, left: 350, zIndex: 4, opacity: 0.6 },{ width: 630, top: 23, left: 350, zIndex: 3, opacity: 0 },{ width: 630, top: 23, left: 350, zIndex: 2, opacity: 0 }];
以上がJavaScript を使用して回転カルーセル チャートを実装するためのサンプル コードの共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。