jQuery实现列表自动循环滚动鼠标悬停时停止滚动

下面是详细讲解“jQuery实现列表自动循环滚动鼠标悬停时停止滚动”的完整攻略。

实现列表自动循环滚动

HTML结构

首先,需要在HTML结构中创建列表元素,以下是示例代码:

<div class="slider">
  <ul>
    <li><a href="#"><img src="image-1.jpg" alt=""></a></li>
    <li><a href="#"><img src="image-2.jpg" alt=""></a></li>
    <li><a href="#"><img src="image-3.jpg" alt=""></a></li>
    <li><a href="#"><img src="image-4.jpg" alt=""></a></li>
    <li><a href="#"><img src="image-5.jpg" alt=""></a></li>
  </ul>
</div>

CSS样式

接下来,我们需要为列表元素添加样式,用来控制滚动的效果。以下是示例代码:

.slider {
  overflow: hidden;
  position: relative;
  height: 400px;
  width: 500px;
}

.slider ul {
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  width: 500%;
  margin: 0;
  padding: 0;
  animation: slide 20s linear infinite;
}

.slider li {
  list-style: none;
  float: left;
  height: 100%;
  width: 20%;
}

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

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

JavaScript代码

最后,在JavaScript代码中,我们使用jQuery实现对列表元素的自动循环滚动效果。以下是示例代码:

$(function() {
  var slide = $('.slider ul');
  var slideCount = slide.children().length;
  var slideWidth = $('.slider').width();
  var slideHeight = $('.slider').height();
  var sliderUlWidth = slideCount * slideWidth;

  slide.css({ width: sliderUlWidth, marginLeft: - slideWidth });

  slide.children().last().prependTo(slide);

  function moveLeft() {
    slide.animate({
      left: + slideWidth
    }, 200, function() {
      slide.children().last().prependTo(slide);
      slide.css('left', '');
    });
  };

  function moveRight() {
    slide.animate({
      left: - slideWidth
    }, 200, function() {
      slide.children().first().appendTo(slide);
      slide.css('left', '');
    });
  };

  $('.slider-prev').click(function() {
    moveLeft();
  });

  $('.slider-next').click(function() {
    moveRight();
  });

  setInterval(function() {
    moveRight();
  }, 3000);
});

示例说明

以下是两个示例说明:

示例一

假设我们想要在列表滚动过程中停止自动循环滚动。我们可以像下面这样修改JavaScript代码:

var autoScroll;

$('.slider').hover(function() {
  clearInterval(autoScroll);
}, function() {
  autoScroll = setInterval(function() {
    moveRight();
  }, 3000);
});

autoScroll = setInterval(function() {
  moveRight();
}, 3000);

这样,在鼠标移动到列表元素上时,自动循环滚动就会停止。当鼠标离开列表元素时,自动循环滚动就会恢复。

示例二

假设我们想要在滚动时添加一个“立即停止”按钮,用户可以通过点击该按钮来立即停止滚动。我们可以像下面这样修改HTML结构和JavaScript代码:

<button class="btn-stop-scroll">停止滚动</button>

<div class="slider">
  <ul>
    <li><a href="#"><img src="image-1.jpg" alt=""></a></li>
    <li><a href="#"><img src="image-2.jpg" alt=""></a></li>
    <li><a href="#"><img src="image-3.jpg" alt=""></a></li>
    <li><a href="#"><img src="image-4.jpg" alt=""></a></li>
    <li><a href="#"><img src="image-5.jpg" alt=""></a></li>
  </ul>
</div>
var autoScroll;

$('.btn-stop-scroll').click(function() {
  clearInterval(autoScroll);
});

$('.slider').hover(function() {
  clearInterval(autoScroll);
}, function() {
  autoScroll = setInterval(function() {
    moveRight();
  }, 3000);
});

autoScroll = setInterval(function() {
  moveRight();
}, 3000);

这样,在点击“停止滚动”按钮时,自动循环滚动就会立即停止。当鼠标移动到列表元素上时,自动循环滚动就会停止。当鼠标离开列表元素时,自动循环滚动就会恢复。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:jQuery实现列表自动循环滚动鼠标悬停时停止滚动 - Python技术站

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

相关文章

  • jQuery fadeIn()方法

    下面是对jQuery fadeIn()方法的详细讲解: 1. 什么是jQuery fadeIn()方法? jQuery中的fadeIn()方法可以添加一个淡入的效果来显示隐藏的DOM元素。 fadeIn()方法可以在给定时间(以毫秒为单位)中淡入所选元素到其完全不透明度。此方法在不改变布局(如visibility)的情况下不会显示元素。如果要在元素不可见时立…

    jquery 2023年5月12日
    00
  • Jquery从头学起第四讲 jquery入门教程

    下面是基于Jquery从头学起第四讲的完整攻略: 简介 这一讲主要介绍了如何利用Jquery操作DOM。DOM(Document Object Model)即文档对象模型,是一种用于表示和操作HTML、XML等文档对象的标准模型。利用Jquery可以方便地选中DOM元素,并对其进行添加、删除、修改等操作。 选中DOM元素 在Jquery中,可以使用选择器选中…

    jquery 2023年5月28日
    00
  • jQWidgets jqxToolBar refresh() 方法

    以下是关于 jQWidgets jqxToolBar 组件中 refresh() 方法的详细攻略。 jQWidgets jqxToolBar refresh() 方法 jQWidgets jqxToolBar的 refresh() 方法用于刷新工具栏的内容。当您添加、删除或更新工具栏的工具时,您可以使用该方法来更新工具的显示。 语法 $(‘#toolbar’…

    jquery 2023年5月11日
    00
  • jQuery UI Datepicker show()方法

    jQuery UI 的 Datepicker 组件提供了一个 show() 方法,该方法用于显示日期选择器。在本教程中,我们将详细介绍 Datepicker show() 方法的使用。 show() 方法基本语法如下: $( ".selector" ).datepicker( "show" ); 其中,”.select…

    jquery 2023年5月11日
    00
  • Highcharts 非常实用的Javascript统计图demo示例

    Highcharts是一个非常流行的Javascript图表库,可以用来创建各种类型的动态统计图表,包括线图、柱状图、饼图等。下面我们来介绍如何使用Highcharts创建一些常见的图表。 基本步骤 要使用Highcharts创建图表,需要进行以下几个基本步骤: 引入Highcharts库文件,可以在Highcharts官网上下载。 创建一个容器元素来存放图…

    jquery 2023年5月27日
    00
  • 详解jQuery中的easyui

    这里是“详解jQuery中的easyui”的完整攻略,包括easyui的入门、常用组件的使用和示例。 入门 引入easyui <link rel="stylesheet" type="text/css" href="css/easyui.css"> <script type=&qu…

    jquery 2023年5月28日
    00
  • jQWidgets jqxSwitchButton uncheck()方法

    下面我们来详细讲解一下”jQWidgets jqxSwitchButton uncheck()方法”的使用攻略。 什么是jqxSwitchButton? jqxSwitchButton是基于jQuery和jQWidgets的开关按钮插件,能够很轻松地创建一个开关按钮。 uncheck()方法是什么? uncheck()方法是jqxSwitchButton插件…

    jquery 2023年5月12日
    00
  • jQWidgets jqxTree allowDrag属性

    以下是关于 jQWidgets jqxTree allowDrag 属性的完整攻略: jQWidgets jqxTree allowDrag 属性 allowDrag 属性用于控制是否允许用户拖动树形结构中的节点。当该属性设置为 true 时,用户可以拖动节点;当该属性设置为 false 时,用户无法拖动节点。 语法 $(‘#jqxTree({ allowD…

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