この記事の内容は、JavaScript を使用して動的なカルーセル効果を実現する方法です。 (コード例)。一定の参考値があるので、困っている友達が参考になれば幸いです。
機能説明:
1. マウスを移動します。左と右 横の矢印が表示され、マウスを離れると矢印が非表示になります。
2. 下部に小さな円を動的に追加し、クリック イベントをバインドし、小さな円のクリック イベントと左右の矢印のクリック イベント
3. 最初の画像をコピーして ul に追加します。最後に、画像を動的に追加できます
#4. 矢印にクリックイベントをバインドして画像をシームレスに回転できるようにする
#5. 自動回転を実装(アニメーション機能)#具体的な実装コード:
1. マウスを移動すると左右の矢印が表示され、矢印は非表示になります。
con.addEventListener('mouseenter', function() { arrow_l.style.display = 'block'; // 将左右箭头的display设为block arrow_r.style.display = 'block'; }); con.addEventListener('mouseleave', function() { arrow_l.style.display = 'none'; // 将左右箭头display设为none arrow_r.style.display = 'none'; });2. 下部に小さな円を動的に追加してクリック イベントをバインドし、小さな円のクリック イベントを左側のクリック イベントと同期させます。および右矢印
for(var i = 0; i <span style="font-family: 'Microsoft YaHei'; font-size: 15px;"></span>3。最初の画像をコピーして ul に追加します。最後に、画像を動的に追加できます<p></p><pre class="brush:php;toolbar:false">// 克隆第一张图片 var first = ul.children[0].cloneNode(true); // true 深拷贝 ul.appendChild(first); // 拷贝第一张图片添加到ul最后4。矢印にクリックイベントをバインドして、画像をシームレスに回転できるようにします
①右側の矢印のクリックイベント
var num = 0; // 用来存储点击后图片序号 var circle = 0; // 用来存储点击后小圆圈序号 var flag = true; // flag 节流阀 防止用户点击过快 图片播放太快 // 右侧箭头点击播放 arrow_r.addEventListener('click', function() { if(flag) { // 点击后先关闭节流阀 flag = false; // 如果播放到了最后一张,就把left直接值设为0从头播放,同时还原num if(num == ul.children.length - 1) { ul.style.left = 0; num = 0; } num++; animate(ul, - num * conWidth, function() { // 回调函数 动画执行完后开启节流阀 flag = true; }); // 小圆圈和箭头一起变化 circle++; /* if(circle == ol.children.length) { circle = 0; } */ // 可以用三元运算符判断小圆圈是否到了最后一个,如果是最后一个就还原circle circle == ol.children.length ? circle = 0 : circle; circleChange(); // 使当前小圆圈为选中状态(重复代码封装到一个函数里了) } })②右の矢印のクリックイベント左矢印
arrow_l.addEventListener('click', function() { if(flag) { // 首先关闭节流阀 flag = false; // 如果播放到了第一张,就把left值设为最后一张的值 if(num == 0) { num = ul.children.length - 1; ul.style.left = - num * conWidth + 'px'; } num--; animate(ul, - num * conWidth, function() { flag = true; }); // 小圆圈和箭头一起变化 circle--; // 三元表达式 circle <span style="font-family: 'Microsoft YaHei'; font-size: 14px;"></span>circleChange();関数コード<p></p><pre class="brush:php;toolbar:false">// 小圆圈的选中状态(相同代码可以封装为一个函数,使代码更简洁) function circleChange() { // 排他思想 for(var i = 0; i <span style="font-family: 'Microsoft YaHei'; font-size: 14px;"></span>5.実装自動カルーセル(アニメーション機能) <p> </p><pre class="brush:php;toolbar:false">// 自动播放轮播图,相当于隔一段时间调用一次右侧箭头点击事件 var timer = setInterval(function() { // 手动调用点击事件 arrow_r.click(); }, 2000);アニメーション関数 animate.js (
ps: これを以下の Index.js に書きませんでした。これは自分で取得する必要があります。 animate.js ファイルを使用するか、js コードに直接貼り付けます)// obj 动画对象
// target 目标位置
// callback 回调函数
function animate(obj, target, callback) {
clearInterval(obj.timer);
obj.timer = setInterval(function() {
var step = (target - obj.offsetLeft) / 10; // step步长值
step = step > 0 ? Math.ceil(step) : Math.floor(step); // 大于零向上取整,小于零向下取整
if(obj.offsetLeft == target) {
clearInterval(obj.timer);
// if(callback) { // 判断是否传了回调函数
// callback(); // 回调函数,当动画执行完后才执行
// }
// &&是短路运算符,存在callback时才会继续执行callback()
callback && callback();
}
obj.style.left = obj.offsetLeft + step + 'px';
}, 15)
}
HTML コード:
<div> <i></i> <i></i> <ul> <li> <a><img src="/static/imghwm/default1.png" data-src="images/img1.jpg" class="lazy" alt="JavaScript で動的なカルーセル効果を実現するにはどうすればよいですか? (コード例)" ></a> </li> <li> <a><img src="/static/imghwm/default1.png" data-src="images/img2.jpg" class="lazy" alt="JavaScript で動的なカルーセル効果を実現するにはどうすればよいですか? (コード例)" ></a> </li> <li> <a><img src="/static/imghwm/default1.png" data-src="images/img3.jpg" class="lazy" alt="JavaScript で動的なカルーセル効果を実現するにはどうすればよいですか? (コード例)" ></a> </li> <li> <a><img src="/static/imghwm/default1.png" data-src="images/img4.jpg" class="lazy" alt="JavaScript で動的なカルーセル効果を実現するにはどうすればよいですか? (コード例)" ></a> </li> <li> <a><img src="/static/imghwm/default1.png" data-src="images/img5.jpg" class="lazy" alt="JavaScript で動的なカルーセル効果を実現するにはどうすればよいですか? (コード例)" ></a> </li> </ul> <ol> </ol> </div>ps:
左側と右側にある小さな矢印はアイコンフォント アイコンです (iconarrow_left、iconarrow_right)、導入予定
<link>CSS コード:
<style> * { margin: 0; padding: 0; } ul,li,ol,a { list-style: none; text-decoration: none; } .con { width: 533px; height: 300px; margin: 100px auto; position: relative; background-color: #f0f0f0; overflow: hidden; } .arrow-l,.arrow-r{ display: none; width: 20px; height: 40px; line-height: 40px; text-align: center; color: #eee; position: absolute; top: 45%; background-color: rgba(0, 0, 0, 0.2); z-index: 2; cursor: pointer; } .arrow-l { left: 0; } .arrow-r{ right: 0; } ul { position: absolute; width: 600%; } ul li { float: left; } ul li img { width: 533px; height: 300px; } ol { position: absolute; left: 50%; bottom: 8px; -webkit-transform: translateX(-50%); transform: translateX(-50%); } ol li { float: left; width: 6px; height: 6px; margin: 0 2px; border-radius: 50%; border: 2px solid rgba(255, 255, 255, 0.5); cursor: pointer; } .current { background-color: #ffe; } </style>詳細な JavaScript コード (index.js)
window.addEventListener('load', function() { // 等页面加载完毕 // 获取需要用到的的元素 var arrow_l = document.querySelector('.arrow-l'); var arrow_r = document.querySelector('.arrow-r'); var con = document.querySelector('.con'); var conWidth = con.offsetWidth; // 鼠标经过箭头显示,鼠标离开箭头隐藏 con.addEventListener('mouseenter', function() { arrow_l.style.display = 'block'; // 将左右箭头的display设为block arrow_r.style.display = 'block'; // 鼠标经过停止定时器 clearInterval(timer); timer = null; // 释放定时器变量 }); con.addEventListener('mouseleave', function() { arrow_l.style.display = 'none'; // 将左右箭头display设为none arrow_r.style.display = 'none'; // 鼠标离开再重新开启定时器 timer = setInterval(function() { // 手动调用点击事件 arrow_r.click(); // 自动轮播 }, 2000); }); var ul = con.querySelector('ul'); var ol = con.querySelector('ol'); // 动态添加底部小圆圈 for(var i = 0; i <span style="font-family: 'Microsoft YaHei'; font-size: 14px;">さらにクールな CSS3、html5、JavaScript 特殊効果コードがすべて揃っています: </span>javascript 特殊効果コレクション<p></p>
以上がJavaScript で動的なカルーセル効果を実現するにはどうすればよいですか? (コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

C/CからJavaScriptへのシフトには、動的なタイピング、ゴミ収集、非同期プログラミングへの適応が必要です。 1)C/Cは、手動メモリ管理を必要とする静的に型付けられた言語であり、JavaScriptは動的に型付けされ、ごみ収集が自動的に処理されます。 2)C/Cはマシンコードにコンパイルする必要がありますが、JavaScriptは解釈言語です。 3)JavaScriptは、閉鎖、プロトタイプチェーン、約束などの概念を導入します。これにより、柔軟性と非同期プログラミング機能が向上します。

さまざまなJavaScriptエンジンは、各エンジンの実装原則と最適化戦略が異なるため、JavaScriptコードを解析および実行するときに異なる効果をもたらします。 1。語彙分析:ソースコードを語彙ユニットに変換します。 2。文法分析:抽象的な構文ツリーを生成します。 3。最適化とコンパイル:JITコンパイラを介してマシンコードを生成します。 4。実行:マシンコードを実行します。 V8エンジンはインスタントコンピレーションと非表示クラスを通じて最適化され、Spidermonkeyはタイプ推論システムを使用して、同じコードで異なるパフォーマンスパフォーマンスをもたらします。

現実世界におけるJavaScriptのアプリケーションには、サーバー側のプログラミング、モバイルアプリケーション開発、モノのインターネット制御が含まれます。 2。モバイルアプリケーションの開発は、ReactNativeを通じて実行され、クロスプラットフォームの展開をサポートします。 3.ハードウェアの相互作用に適したJohnny-Fiveライブラリを介したIoTデバイス制御に使用されます。

私はあなたの日常的な技術ツールを使用して機能的なマルチテナントSaaSアプリケーション(EDTECHアプリ)を作成しましたが、あなたは同じことをすることができます。 まず、マルチテナントSaaSアプリケーションとは何ですか? マルチテナントSaaSアプリケーションを使用すると、Singの複数の顧客にサービスを提供できます

この記事では、許可によって保護されたバックエンドとのフロントエンド統合を示し、next.jsを使用して機能的なedtech SaaSアプリケーションを構築します。 FrontEndはユーザーのアクセス許可を取得してUIの可視性を制御し、APIリクエストがロールベースに付着することを保証します

JavaScriptは、現代のWeb開発のコア言語であり、その多様性と柔軟性に広く使用されています。 1)フロントエンド開発:DOM操作と最新のフレームワーク(React、Vue.JS、Angularなど)を通じて、動的なWebページとシングルページアプリケーションを構築します。 2)サーバー側の開発:node.jsは、非ブロッキングI/Oモデルを使用して、高い並行性とリアルタイムアプリケーションを処理します。 3)モバイルおよびデスクトップアプリケーション開発:クロスプラットフォーム開発は、反応および電子を通じて実現され、開発効率を向上させます。

JavaScriptの最新トレンドには、TypeScriptの台頭、最新のフレームワークとライブラリの人気、WebAssemblyの適用が含まれます。将来の見通しは、より強力なタイプシステム、サーバー側のJavaScriptの開発、人工知能と機械学習の拡大、およびIoTおよびEDGEコンピューティングの可能性をカバーしています。

JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

SublimeText3 中国語版
中国語版、とても使いやすい

Dreamweaver Mac版
ビジュアル Web 開発ツール

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、
