jquery实现鼠标悬浮停止轮播特效

下面我来详细讲解“jquery实现鼠标悬浮停止轮播特效”的完整攻略。

步骤一:HTML结构

首先,我们需要在HTML文件中先构建出需要用到的轮播组件结构。这里我们采用了最常见的轮播组件形式,即左右箭头和轮播图内容,具体代码如下:

<div class="slider-wrapper">
  <div class="slider">
    <ul>
      <li><img src="slider1.jpg" alt=""></li>
      <li><img src="slider2.jpg" alt=""></li>
      <li><img src="slider3.jpg" alt=""></li>
      <li><img src="slider4.jpg" alt=""></li>
      <li><img src="slider5.jpg" alt=""></li>
    </ul>
  </div>
  <div class="slider-nav">
    <a href="javascript:void(0);"> < </a>
    <a href="javascript:void(0);"> > </a>
  </div>
</div>

步骤二:CSS样式

接下来,我们需要为构建出来的组件添加样式,这里我们需要设置一些基本的样式,比如:

.slider-wrapper {
  position: relative;
  margin: 0 auto;
  width: 600px;
  height: 300px;
}

.slider {
  position: absolute;
  width: 6000px;
  height: 300px;
  left: 0;
  top: 0;
}

.slider ul {
  list-style: none;
  margin: 0;
  padding: 0;
  width: 600px;
  height: 300px;
  overflow: hidden;
}

.slider ul li {
  float: left;
  width: 600px;
  height: 300px;
}

.slider ul li img {
  display: block;
  width: 100%;
  height: 100%;
}

.slider-nav {
  position: absolute;
  width: 130px;
  height: 50px;
  top: 50%;
  left: 50%;
  margin-top: -25px;
  margin-left: -70px;
}

.slider-nav a {
  display: block;
  float: left;
  margin: 0 10px;
  width: 50px;
  height: 50px;
  background: #ccc;
  text-align: center;
  font-size: 30px;
  color: white;
  text-decoration: none;
  line-height: 50px;
  border-radius: 50%;
}

步骤三:jQuery实现轮播特效

接下来,在添加好HTML和CSS之后,我们需要使用jQuery来实现轮播特效。为了方便维护代码,我们将全部代码集成在一个jquery.slider.js文件中,代码如下:

$(function(){
  var slide = $('.slider'),
      ul = slide.find("ul"),
      lis = ul.find("li"),
      sliderNav = $(".slider-nav"),
      prev = sliderNav.find("a:first"),
      next = sliderNav.find("a:last"),
      sliderWidth = slide.width(),
      slideTimer,
      index = 0;

  // 动态设置轮播图区域的宽高
  slide.css({
    width: sliderWidth,
    height: lis.eq(0).height()
  });

  // 设置li总宽度
  ul.css('width', (lis.length * sliderWidth));

  // 点击下一张
  next.bind('click', function (event) {
    event.preventDefault();

    if (ul.is(':animated')) {
      return false;
    }

    index++;

    if (index >= lis.length) {
      index = 0;
    }

    ul.animate({'left': -sliderWidth*index}, 500);
  });

  // 点击上一张
  prev.bind('click', function(event) {
    event.preventDefault();

    if (ul.is(':animated')) {
      return false;
    }

    index--;

    if (index < 0) {
      index = lis.length-1;
    }

    ul.animate({'left': -sliderWidth*index}, 500);
  });

  // 自动轮播
  start();
  function start() {
    slideTimer = setInterval(function () {
      next.trigger('click');
    }, 3000);
  }

  // 悬浮暂停
  slide.hover(function() {
    clearInterval(slideTimer);
  }, function() {
    start();
  });
});

在这段代码中,我们首先获取了轮播图组件中需要用到的元素对象和参数数据等,并用上述CSS对其样式进行初始化和设置。

由于我们需要实现轮播图的自动循环和悬停暂停效果,因此,我们采用了两种计时器来实现。

在点击左右箭头区域时,ul元素会通过jQuery的animate()方法实现切换,从而实现轮播图的滑动效果。

示例一:基础轮播特效

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <title>轮播特效示例</title>
    <style>
      /* 样式代码 */
    </style>
  </head>
  <body>
    <div class="slider-wrapper">
      <div class="slider">
        <ul>
          <li><img src="slider1.jpg" alt=""></li>
          <li><img src="slider2.jpg" alt=""></li>
          <li><img src="slider3.jpg" alt=""></li>
        </ul>
      </div>
      <div class="slider-nav">
        <a href="javascript:void(0);"> < </a>
        <a href="javascript:void(0);"> > </a>
      </div>
    </div>
    <script src="//cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
    <script src="jquery.slider.js"></script>
  </body>
</html>

示例二:改变轮播图片数量

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <title>轮播特效示例</title>
    <style>
      /* 样式代码 */
    </style>
  </head>
  <body>
    <div class="slider-wrapper">
      <div class="slider">
        <ul>
          <li><img src="slider1.jpg" alt=""></li>
          <li><img src="slider2.jpg" alt=""></li>
          <li><img src="slider3.jpg" alt=""></li>
          <li><img src="slider4.jpg" alt=""></li>
          <li><img src="slider5.jpg" alt=""></li>
          <li><img src="slider6.jpg" alt=""></li>
        </ul>
      </div>
      <div class="slider-nav">
        <a href="javascript:void(0);"> < </a>
        <a href="javascript:void(0);"> > </a>
      </div>
    </div>
    <script src="//cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
    <script src="jquery.slider.js"></script>
  </body>
</html>

以上就是“jquery实现鼠标悬浮停止轮播特效”的完整攻略,希望本篇文章能够帮助到您。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:jquery实现鼠标悬浮停止轮播特效 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • jQuery扩展方法实现Form表单与Json互相转换的实例代码

    下面我将详细讲解“jQuery扩展方法实现Form表单与Json互相转换的实例代码”的完整攻略。 1.什么是jQuery扩展方法 jQuery扩展方法指的是在jQuery中新增自定义的方法,以便我们能够更加便捷的、高效的使用jQuery来进行开发。使用jQuery扩展方法能够提高代码的可复用性和代码的简洁性。 在jQuery的扩展方法的基础上,我们可以自己实…

    jquery 2023年5月28日
    00
  • 利用JQuery和Servlet实现跨域提交请求示例分享

    让我来详细讲解一下“利用JQuery和Servlet实现跨域提交请求示例分享”的完整攻略。 什么是跨域? 在Web开发中,如果一个Web页面向其它的站点发起请求,浏览器会默认禁止这种行为。这个限制被称为“同源策略”,同源策略限制了一个站点加载另一个站点的资源。同源是指协议、域名、端口相同。跨域则是指协议、域名、端口有任何一个不同。 利用JQuery和Serv…

    jquery 2023年5月28日
    00
  • JavaScript 模块化开发实例详解【seajs、requirejs库使用】

    JavaScript 模块化开发是前端领域非常重要的一个方向,通过模块化开发可以提高代码的可维护性和复用性。本篇攻略将详细讲解如何使用 seajs 和 requirejs 库进行 JavaScript 模块化开发,包括模块的定义、依赖关系的处理、配置文件的使用等等。 一、什么是模块化开发 JavaScript 在其发展初期是以全局变量和函数为主导的。这种开发…

    jquery 2023年5月27日
    00
  • jQuery UI Sortable refreshPositions() 方法

    jQuery UI 的 Sortable 组件提供了一个 refreshPositions() 方法,该方法用于刷新 Sortable 实例中的所有元素的位置。在本教程中,我们将详细介绍 Sortable 的 refreshPositions() 的使用方法。 refreshPositions() 基本语法如下: $( ".selector&quo…

    jquery 2023年5月11日
    00
  • jQWidgets jqxBulletChart render()方法

    jQWidgets jqxBulletChart render() 方法详解 jQWidgets是一个基于jQuery的UI组件库,提供了丰富UI组件工具包。jqxBulletChart是其中之一。本文将详细介绍jqxBulletChart的render()方法,包括定义、语法和示例。 render() 方法的定义 jqxBulletChart的render…

    jquery 2023年5月10日
    00
  • jQuery EasyUI API 中文文档 – Form表单

    jQuery EasyUI 是一套基于jQuery的完整Web UI组件库,其中的Form表单组件是用于创建表单的扩展,提供了丰富的表单元素和验证功能,支持Ajax提交表单和表单数据的展示。本文将对 “jQuery EasyUI API 中文文档 – Form表单” 进行详细讲解,包括如何创建表单、表单元素的设置、表单验证、以及表单数据的提交和展示。 创建表…

    jquery 2023年5月27日
    00
  • JS异步编程方法的6种方案总结

    JS异步编程方法的6种方案总结 异步编程和JS单线程模型 在JavaScript中,任务队列是基于事件循环(event loop)实现的,主线程执行完同步任务后,会被阻塞,直到下一个异步任务添加到任务队列中。当所有的同步任务都执行完毕后,主线程会去任务队列中取出第一个任务并执行。 这种机制就决定了JavaScript是单线程的,因为当主线程被阻塞时,不能同时…

    jquery 2023年5月27日
    00
  • EasyUI jQuery 窗口小部件

    EasyUI jQuery 窗口小部件是一个基于jQuery的UI框架,它提供了各种易于使用的弹出窗口,包括对话框、消息框、窗口和提示框,可以节省开发人员的时间和精力。 下面我将为您详细讲解“EasyUI jQuery 窗口小部件”的完整攻略。 窗口小部件的引入 要使用EasyUI jQuery 窗口小部件,首先需要将相应的CSS和JS文件引入到HTML页面…

    jquery 2023年5月13日
    00
合作推广
合作推广
分享本页
返回顶部