jQuery与JavaScript轮播图实现:原理与技巧

14,790次阅读
没有评论

共计 12005 个字符,预计需要花费 31 分钟才能阅读完成。

本文还有配套的精品资源,点击获取 jQuery 与 JavaScript 轮播图实现:原理与技巧

简介:轮播图是一种网页展示技术,通过自动切换图片或内容,为用户提供动态且节省空间的展示方式。本文深入探讨了使用 jQuery 和纯 JavaScript 实现轮播图的方法和原理,包括 DOM 操作、动画制作、事件监听和逻辑控制。通过案例讲解了如何创建轮播组件、实现动画效果、添加事件监听器,并实现自动播放和循环功能。同时比较了 jQuery 和纯 JavaScript 在实现轮播效果时的差异,以及各自的优缺点。jQuery 与 JavaScript 轮播图实现:原理与技巧

1. jQuery 轮播实现原理和操作步骤

网页中的图片轮播是一种常见的动态效果,用于展示产品、活动等信息。在前端开发中,使用 jQuery 实现轮播图可以快速完成任务,但它背后的实现原理是什么?如何一步步操作完成轮播功能?本章将揭开 jQuery 轮播图的神秘面纱。

jQuery 轮播的实现原理

jQuery 轮播图的核心原理是利用 jQuery 提供的动画方法来周期性地更换显示的内容,从而达到轮播的效果。它通常包含以下几个要素:

  • HTML 结构 : 创建一个带有图片和控制按钮的轮播容器。
  • CSS 样式 : 设定轮播容器和图片的基本样式,包括尺寸、位置等。
  • JavaScript 逻辑 : 使用 jQuery 的方法来控制图片的切换和动画效果。

jQuery 轮播的操作步骤

要实现一个简单的 jQuery 轮播图,可以按以下步骤操作:

  1. HTML 结构搭建 : 在页面上放置一个

    容器,并在其中添加若干 标签作为轮播图的内容。 html

    Image 1 Image 2 Image 3

  2. CSS 样式添加 : 设定轮播图容器的宽度、高度以及相对定位,使得图片可以水平排列显示。

    ```css

    slider {

    position: relative;
    width: 500px;
    height: 300px;
    

    }

    slider img {

    position: absolute;
    width: 100%;
    height: 100%;
    display: none;
    

    } ```

  3. JavaScript 实现动画 : 使用 jQuery 的 fadeIn fadeOut 方法来实现图片的淡入淡出效果。

    ```javascript $(document).ready(function() {var currentIndex = 0; var images = $('#slider img'); var numberOfImages = images.length; var interval = setInterval(nextImage, 3000);

    function showImage(index) {images.eq(index).fadeIn(1000);
        images.not(index).fadeOut(1000);
    }
    
    function nextImage() {var nextIndex = (currentIndex + 1) % numberOfImages;
        showImage(nextIndex);
        currentIndex = nextIndex;
    }
    

    }); ```

  4. 以上步骤展示了 jQuery 轮播图的基本实现方式。在下一章节中,我们将探究使用纯 JavaScript 实现轮播图的原理和步骤,这不仅加深对 DOM 操作的理解,还能提供更好的性能和更细粒度的控制。

    2. JavaScript 轮播实现原理和操作步骤

    2.1 JavaScript 轮播的基本原理

    2.1.1 理解 DOM 结构和事件机制

    JavaScript 轮播实现的基础是 DOM(Document Object Model),即文档对象模型。DOM 代表了页面的内容结构,允许我们通过脚本语言访问和修改文档的结构、样式和内容。在实现轮播时,DOM 为我们提供了操作图片、文本、按钮等元素的接口。

    事件机制是 JavaScript 轮播另一个核心概念。轮播需要响应用户的交互(如点击按钮、鼠标悬停)或系统事件(如定时器到期)。通过绑定事件监听器,我们可以在指定的事件触发时执行相应的函数,实现轮播图的切换、开始、暂停等功能。

    2.1.2 利用原生 JavaScript 实现轮播效果

    原生 JavaScript 实现轮播图的关键在于几个 DOM 操作和事件处理函数的编写。我们可以通过 document.getElementById() , document.getElementsByTagName() , document.createElement() 等方法来操作 DOM 元素,还可以使用 addEventListener() 来监听事件。

    下面是一个简单的轮播图实现的代码结构:

    // 获取 DOM 元素
    var slider = document.getElementById('slider');
    var slides = slider.getElementsByTagName('li');
    var currentIndex = 0;
    
    // 切换到指定的幻灯片
    function goToSlide(index) {// 具体切换逻辑}
    
    // 下一张幻灯片
    function nextSlide() {currentIndex = (currentIndex + 1) % slides.length;
        goToSlide(currentIndex);
    }
    
    // 上一张幻灯片
    function prevSlide() {currentIndex = (currentIndex - 1 + slides.length) % slides.length;
        goToSlide(currentIndex);
    }
    
    // 定时器来自动播放幻灯片
    var timer = setInterval(nextSlide, 3000);
    
    // 绑定到控制按钮
    var btnNext = document.getElementById('btnNext');
    btnNext.addEventListener('click', nextSlide);
    
    var btnPrev = document.getElementById('btnPrev');
    btnPrev.addEventListener('click', prevSlide);
    

    上述代码提供了一个实现轮播的基础框架,但没有包含具体的切换逻辑和样式控制。开发者需要根据实际需求对 goToSlide() 函数进行编写,以实现图片的平滑过渡效果。

    2.2 JavaScript 轮播的具体操作步骤

    2.2.1 创建轮播容器和内容

    轮播图通常由一个容器和多个子元素组成,子元素代表轮播中的每一帧。我们可以通过 HTML 定义一个轮播容器和几个子元素,通过 CSS 设置样式。

    
    
    • Slide 1
    • Slide 2
    • Slide 3

    2.2.2 实现轮播图的切换逻辑

    接下来,我们需要编写切换逻辑,即让轮播图根据用户的操作(如点击按钮)或定时器自动切换图片。这通常涉及到修改 CSS 样式,如改变图片的 opacity 或改变其容器的 margin-left 属性。

    function goToSlide(index) {
        // 依次隐藏其他幻灯片
        for (var i = 0; i 

    2.2.3 添加控制按钮和指示器

    为了更好的用户体验,我们可以添加控制按钮和指示器来手动切换幻灯片。

    
    
    
    
    // 上一张和下一张按钮的事件处理函数
    var btnPrev = document.getElementById('btnPrev');
    var btnNext = document.getElementById('btnNext');
    
    btnPrev.addEventListener('click', function() {prevSlide();
    });
    
    btnNext.addEventListener('click', function() {nextSlide();
    });
    

    此外,还可以通过创建指示器来让用户知道当前是第几张幻灯片,以及总共有多少张幻灯片。通常指示器是通过小圆点表示,每个圆点对应一张幻灯片。

    在实现轮播功能时,还需注意以下几点:

    • 确保在图片切换时平滑过渡,可以通过 CSS 的过渡(transition)属性来实现。
    • 轮播图应支持响应式设计,以适应不同设备屏幕尺寸。
    • 在轮播图的结束添加循环逻辑,以实现无缝轮播。
    • 实现自动播放时,确保提供暂停和继续的选项。

    通过上述步骤,你可以创建一个基础的 JavaScript 轮播图。对于更高级的实现,你可以利用库如 Swiper Slick 等,它们提供了更多定制化选项和丰富的动画效果。

    3. DOM 操作

    3.1 DOM 操作的重要性

    3.1.1 DOM 的作用和特点

    文档对象模型(Document Object Model, DOM)是 HTML 和 XML 文档的编程接口。DOM 将文档表示为树形结构,其中每一个节点都是一个具有特定类型、属性和值的对象。DOM 允许开发者使用各种编程语言访问和操作文档的结构、样式和内容。

    DOM 的特点体现在:

    • 结构化访问 :DOM 将文档视为一个树形结构,可以通过节点之间的关系(如父子、兄弟节点)进行操作。
    • 跨平台 :作为 Web 标准的一部分,DOM 不依赖于任何特定的编程语言或浏览器。
    • 动态性 :DOM 支持动态修改文档内容,可以即时反映在用户界面上。
    • 事件驱动 :DOM 的事件模型允许对用户交互做出响应。

    3.1.2 通过 DOM 管理页面结构

    通过 DOM,开发者可以动态地添加、移除和修改页面上的元素。这不仅限于内容,还包括页面的样式和结构。例如,可以使用 JavaScript 创建新的元素,然后将它们添加到 HTML 文档中,或者找到特定的元素并更改其属性(如类、样式或文本)。

    3.1.3 示例代码

    以下是一个示例代码,说明如何使用原生 JavaScript 创建一个新的段落元素,并将其添加到 HTML 文档的 body 部分。

    // 创建新的段落元素
    const newParagraph = document.createElement('p');
    newParagraph.textContent = '这是一个新添加的段落';
    newParagraph.style.color = 'blue'; // 修改样式
    
    // 获取 body 元素,并将新创建的段落添加到 body 中
    document.body.appendChild(newParagraph);
    

    3.2 JavaScript 与 DOM 的交互方式

    3.2.1 获取和修改元素属性

    要与 DOM 交互,首先需要获取页面上的元素。常见的获取元素的方法有:

    • document.getElementById(id) :通过元素 ID 获取单个元素。
    • document.getElementsByTagName(tagName) :通过标签名获取元素集合。
    • document.querySelector(selector) :通过 CSS 选择器获取第一个匹配的元素。
    • document.querySelectorAll(selector) :通过 CSS 选择器获取所有匹配的元素。

    一旦获取了元素,就可以通过属性来修改它的样式、内容等。例如:

    // 获取一个元素
    const element = document.querySelector('.my-element');
    
    // 修改其样式
    element.style.width = '200px';
    element.style.height = '100px';
    
    // 修改其类
    element.classList.add('highlight');
    

    3.2.2 动态创建和删除 DOM 节点

    JavaScript 提供了创建和删除节点的方法:

    • 创建节点: document.createElement(tagName)
    • 删除节点: element.remove()
    • 移动节点: element.moveTo(newParent, referenceNode)
    • 克隆节点: element.cloneNode(deep)

    通过这些方法,可以灵活地构建页面内容,满足各种交互需求。例如,可以创建一个动态的菜单,或根据用户操作显示和隐藏页面上的某些部分。

    3.2.3 示例代码

    以下是一个示例,展示如何动态创建一个列表,并将其添加到页面上已存在的容器中。

    
    
    
    
    DOM 操作示例 
    
    
    

    3.2.4 代码逻辑分析

    在上述代码中,我们首先创建了一个无序列表(

    ),然后通过循环创建了三个列表项(

  5. ),每个列表项中包含文本内容。接着,我们获取了页面上 ID 为 container 的元素,并将新创建的列表添加到这个容器中。通过这种方式,我们可以在不影响页面其他内容的情况下,动态地添加新的内容。

    3.2.5 表格展示

    下面是该代码段涉及的关键 DOM 操作方法的表格总结:

    | 方法 | 描述 | 示例 | | --- | --- | --- | | document.createElement(tagName) | 创建一个新的元素节点 | const p = document.createElement('p'); | | element.appendChild(child) | 将一个节点添加到指定父节点的子节点列表末尾 | container.appendChild(list); | | element.removeChild(child) | 移除一个子节点 | container.removeChild(list); | | element.cloneNode(deep) | 克隆一个节点 | const clonedList = list.cloneNode(true); |

    通过这些操作,开发者可以实现复杂的用户界面和交互效果。DOM 操作是前端开发中不可或缺的技能,无论是现代前端框架还是原生 JavaScript 应用,都离不开对 DOM 的操作和管理。

    4. 动画效果的实现

    动画是现代网页中不可或缺的元素之一,它能够提供视觉反馈,增强用户体验。CSS 和 JavaScript 是实现动画效果的两种主要技术。CSS 动画通常更为高效,而 JavaScript 动画则提供了更高的灵活性和控制力。本章将深入探讨如何使用 CSS 和 JavaScript 实现动画效果。

    4.1 CSS 动画与 JavaScript 动画的比较

    4.1.1 CSS 动画的使用场景和优势

    CSS 动画对于简单的动画效果是十分理想的,它利用浏览器的硬件加速特性,可以流畅地执行关键帧动画和过渡效果。CSS 动画的使用场景包括:

    • 变换(Transform)动画:如平移、缩放、旋转和倾斜。
    • 过渡(Transition)动画:在元素状态变化时产生的平滑动画效果。
    • 关键帧动画:定义动画序列中特定时间点的样式。

    CSS 动画的优势在于:

    • 性能高效 :由浏览器原生支持,不需要 JavaScript 的解释执行,可以实现高帧率和流畅的动画。
    • 易于实现 :简单的动画通过 @keyframes transition 属性即可实现。
    • 易于维护 :与样式分离,维护和修改更为方便。

    4.1.2 JavaScript 动画的灵活性和控制力

    相较于 CSS,JavaScript 在动画领域提供了更高的灵活性和控制力,尤其适合复杂的动画逻辑。JavaScript 动画的使用场景包括:

    • 基于时间的动画:需要在特定时间点执行特定操作。
    • 复杂的交互动画:需要根据用户操作动态改变动画。
    • 依赖于应用状态的动画:如数据变化驱动的动画。

    JavaScript 动画的优势在于:

    • 动态控制 :可以随时改变动画的状态,如暂停、停止或重启。
    • 条件判断 :根据程序逻辑判断下一步的动画行为。
    • 复杂的交互 :响应复杂的用户输入和事件。

    4.2 JavaScript 实现动画效果的方法

    4.2.1 基本的定时器和动画效果

    使用 JavaScript 实现动画效果的基础是定时器函数 setTimeout() setInterval() 。它们可以用来创建一个持续的动画效果,通过不断地更新 DOM 元素的样式来实现。

    // 示例代码:使用 setInterval 实现简单的动画效果
    var element = document.getElementById('animated-element');
    var position = 0;
    var direction = 1;
    var speed = 5;
    var interval = 20; // 每 20 毫秒更新一次位置
    
    var moveElement = setInterval(function() {
      position += direction * speed;
      // 边界检查
      if (position>= 200 || position 

    4.2.2 jQuery 的动画方法和应用

    jQuery 提供了简单而强大的动画方法,如 animate() ,它封装了复杂的定时器逻辑,使得开发者可以更加专注于动画效果的实现。

    // 示例代码:使用 jQuery 的 animate 方法实现动画效果
    $('#animated-element').animate({left: '+=100' // 增加 100px 位置}, 1000); // 在 1000 毫秒内完成动画
    

    jQuery 的 animate 方法可以接受多个属性,让开发者可以同时对多个样式属性进行动画处理。通过使用 step done 回调函数,可以实现更复杂的动画控制。

    通过对比 CSS 和 JavaScript 实现动画的方式,我们可以看到它们各自的优势和使用场景。CSS 动画适合快速实现简单的动画,而 JavaScript 动画在需要高度控制和复杂交互的情况下更为合适。开发者应根据项目的具体需求选择合适的动画技术。

    5. 事件监听的设置

    5.1 事件监听的基本概念

    5.1.1 什么是事件监听

    在 Web 开发中,事件监听是一种编程技术,用于处理用户与页面元素交互时产生的事件,如点击、鼠标移动、键盘输入等。事件监听允许开发者以异步的方式响应这些事件,而不会阻碍程序的其他部分运行,从而提高应用程序的响应性和性能。

    5.1.2 事件监听的作用和优势

    事件监听提供了更高的灵活性和控制力。通过监听器,我们可以为不同的事件指定不同的处理函数,以实现对页面行为的精确控制。它避免了轮询机制,减少了不必要的计算资源消耗。事件监听的响应式特性意味着页面只在实际发生事件时才作出反应,提升了应用程序的用户体验和运行效率。

    5.2 JavaScript 中的事件监听实现

    5.2.1 事件监听器的注册和触发

    在 JavaScript 中,可以使用 addEventListener 方法为元素添加事件监听器。以下是一个简单的示例,展示了如何为一个按钮添加点击事件的监听器:

    // 获取 DOM 元素
    var myButton = document.getElementById('myButton');
    
    // 添加事件监听器
    myButton.addEventListener('click', function() {alert('按钮被点击了!');
    });
    

    这段代码首先通过 getElementById 获取了页面中的按钮元素。然后,使用 addEventListener 方法为该按钮添加了一个点击事件监听器。当按钮被点击时,会弹出一个警告框显示消息。

    5.2.2 高级事件监听技巧和实践

    事件委托

    事件委托是一种高效处理事件的技巧,它利用了事件冒泡的原理。将事件监听器添加到父元素上,并根据事件的目标元素来判断是否触发事件处理函数。这样可以减少监听器的数量,尤其在处理大量相似元素时更为有效。

    // 使用事件委托处理多个列表项的点击事件
    var list = document.getElementById('myList');
    
    list.addEventListener('click', function(event) {if (event.target && event.target.nodeName === 'LI') {console.log('列表项被点击:', event.target.textContent);
      }
    });
    
    事件对象

    JavaScript 事件对象是传递给事件处理函数的一个参数,它包含了关于事件的详细信息。通过事件对象,我们可以访问事件的类型、事件的目标元素、鼠标位置等数据。

    myButton.addEventListener('click', function(event) {console.log('事件类型:', event.type);
      console.log('事件目标:', event.target);
    });
    
    移除事件监听器

    在某些情况下,我们需要移除已经添加的事件监听器,比如在动态加载的内容上绑定的事件,当内容被卸载时,应该相应地移除事件监听器,以避免内存泄漏。

    var myButton = document.getElementById('myButton');
    
    var handleClick = function() {console.log('按钮被点击了!');
    };
    
    myButton.addEventListener('click', handleClick);
    
    // 当不再需要监听器时,可以这样移除它
    myButton.removeEventListener('click', handleClick);
    

    在上述代码中,我们首先添加了一个点击事件监听器,并存储了引用。随后,如果需要移除监听器,只需调用 removeEventListener 方法并传入相同的函数引用即可。需要注意的是,传递给 removeEventListener 的函数必须是同一个函数实例,否则移除操作将不会生效。

    5.3 事件监听的进阶应用

    5.3.1 自定义事件

    除了内置事件外,JavaScript 还允许我们创建和触发自定义事件。这对于模块化开发和组件化设计非常有用,可以让我们定义自己的事件逻辑。

    // 创建自定义事件
    var myCustomEvent = new Event('myCustomEvent');
    
    // 触发自定义事件
    document.dispatchEvent(myCustomEvent);
    
    // 监听自定义事件
    document.addEventListener('myCustomEvent', function() {console.log('自定义事件被触发');
    });
    

    5.3.2 事件冒泡与事件捕获

    事件处理程序可以被设置为在事件冒泡阶段或事件捕获阶段被触发。默认情况下,事件监听器是在冒泡阶段被调用的,但通过设置 addEventListener 的第三个参数可以改变这一行为。

    // 在事件捕获阶段捕获点击事件
    document.addEventListener('click', function(event) {console.log('捕获阶段:', event.target);
    }, true);
    
    // 在事件冒泡阶段捕获点击事件
    document.addEventListener('click', function(event) {console.log('冒泡阶段:', event.target);
    }, false);
    

    在上述代码中,我们分别在捕获和冒泡阶段添加了点击事件监听器。当事件发生时,会先触发捕获阶段的监听器,然后是冒泡阶段的监听器。

    5.3.3 阻止事件默认行为

    有时候,我们需要阻止事件的默认行为,比如阻止链接的默认跳转或表单的默认提交。在事件处理函数中返回 false 或使用 event.preventDefault 方法可以实现这一点。

    var myLink = document.getElementById('myLink');
    
    myLink.addEventListener('click', function(event) {event.preventDefault(); // 阻止链接跳转
      console.log('链接被点击,但不会跳转');
    });
    

    5.4 总结

    事件监听是 JavaScript 中非常核心的一个概念,它允许开发者处理各种用户交互行为,并作出响应。通过理解事件监听的原理和实践,我们能够更有效地构建动态且交互性强的 Web 应用。无论是简单的点击事件,还是复杂的自定义事件,甚至是对事件流的精确控制,JavaScript 都提供了丰富的 API 来支持这些操作。掌握事件监听不仅能够提升用户体验,还可以优化程序性能和提高代码的可维护性。

    6. 自动播放和循环逻辑的实现

    自动播放功能是轮播图不可或缺的一部分,它使得轮播图在没有用户交互的情况下也能持续展示内容。循环逻辑则是确保轮播内容能够无限次地循环展示。在本章节中,我们将深入探讨自动播放功能的原理、实现方式以及循环逻辑的构建方法。

    6.1 自动播放功能的原理和实现

    6.1.1 自动播放的逻辑设计

    自动播放的逻辑设计涉及到定时器的使用,以便在设定的时间间隔后自动触发轮播图的切换。在 JavaScript 中,可以通过 setInterval 函数来实现定时器,创建一个周期性执行的任务。这个任务将负责在指定的时间间隔后调用切换轮播图的函数。

    6.1.2 JavaScript 定时器的应用

    // 设置自动播放的间隔时间
    const autoplayInterval = 3000; // 3 秒
    
    // 定义定时器 ID 变量,用于之后清除定时器
    let autoplayTimeoutId;
    
    // 开始自动播放
    function startAutoplay() {autoplayTimeoutId = setInterval(() => {
            // 假设 switchSlide 是切换轮播图的函数
            switchSlide();}, autoplayInterval);
    }
    
    // 停止自动播放
    function stopAutoplay() {clearInterval(autoplayTimeoutId);
    }
    
    // 启动自动播放功能
    startAutoplay();
    

    在上述代码中,我们定义了 startAutoplay 函数来启动自动播放,它使用 setInterval 每 3 秒调用一次 switchSlide 函数。 stopAutoplay 函数则是用来停止自动播放的定时器。这样,我们就实现了自动播放功能的逻辑设计。

    6.2 循环逻辑的构建方法

    循环逻辑的构建是为了实现无缝的轮播效果。当轮播到最后一张图片时,系统应自动跳转到第一张图片,反之亦然。这通常涉及到对当前图片索引的监控和对轮播容器的适当操作。

    6.2.1 实现无缝循环轮播

    // 假设 images 数组包含所有轮播图片
    let currentImageIndex = 0;
    
    function switchSlide() {
        // 将当前图片隐藏
        document.getElementById(`image-${currentImageIndex}`).style.display = 'none';
        // 更新索引并处理循环
        if (currentImageIndex === images.length - 1) {currentImageIndex = 0; // 循环到第一张图片} else {currentImageIndex++; // 正常切换到下一张图片}
        // 将下一张图片显示
        document.getElementById(`image-${currentImageIndex}`).style.display = 'block';
    }
    

    switchSlide 函数中,我们首先隐藏当前图片,并更新 currentImageIndex 变量。当索引值达到最后一张图片的索引时,我们将其重置为 0,这样就形成了一个循环。然后,我们显示新的当前图片,并在下一次 setInterval 触发时重复此过程。

    6.2.2 循环逻辑与交互的结合

    将循环逻辑与用户交互结合在一起时,我们需要确保轮播图在用户点击或进行其他交互时也能正确响应。例如,在用户点击轮播图的控制按钮时,应该首先停止自动播放的定时器,然后根据用户的操作切换轮播图,并在操作完成后重新启动自动播放。

    // 添加事件监听器到控制按钮
    document.querySelector('.prev').addEventListener('click', () => {
        // 停止自动播放
        stopAutoplay();
        // 切换到上一张图片
        currentImageIndex = (currentImageIndex - 1 + images.length) % images.length;
        switchSlide();
        // 重新开始自动播放
        startAutoplay();});
    
    document.querySelector('.next').addEventListener('click', () => {
        // 停止自动播放
        stopAutoplay();
        // 切换到下一张图片
        switchSlide();
        // 重新开始自动播放
        startAutoplay();});
    

    在这段代码中,我们为控制按钮添加了事件监听器,以处理用户点击事件。当用户点击 "上一张" 或 "下一张" 按钮时,我们停止自动播放,执行切换逻辑,并在完成后重新启动自动播放。这样,无论用户何时进行操作,轮播图都能保持流畅和响应用户的交互。

    通过上述章节内容的解释和代码示例,我们详细介绍了自动播放和循环逻辑的实现原理和操作步骤。这样的实现不仅保证了轮播图的自动化展示,也确保了用户体验的连贯性和顺畅性。

    本文还有配套的精品资源,点击获取 jQuery 与 JavaScript 轮播图实现:原理与技巧

    简介:轮播图是一种网页展示技术,通过自动切换图片或内容,为用户提供动态且节省空间的展示方式。本文深入探讨了使用 jQuery 和纯 JavaScript 实现轮播图的方法和原理,包括 DOM 操作、动画制作、事件监听和逻辑控制。通过案例讲解了如何创建轮播组件、实现动画效果、添加事件监听器,并实现自动播放和循环功能。同时比较了 jQuery 和纯 JavaScript 在实现轮播效果时的差异,以及各自的优缺点。

    本文还有配套的精品资源,点击获取 menu-r.4af5f7ec.gif

原文地址: jQuery 与 JavaScript 轮播图实现:原理与技巧

    正文完
     0
    Yojack
    版权声明:本篇文章由 Yojack 于2024-10-23发表,共计12005字。
    转载说明:
    1 本网站名称:优杰开发笔记
    2 本站永久网址:https://yojack.cn
    3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
    4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
    5 本站所有内容均可转载及分享, 但请注明出处
    6 我们始终尊重原创作者的版权,所有文章在发布时,均尽可能注明出处与作者。
    7 站长邮箱:laylwenl@gmail.com
    评论(没有评论)