jQuery实现选项联动轮播效果【附实例】

下面是“jQuery实现选项联动轮播效果【附实例】”的完整攻略,我将以分步骤的形式详细讲解过程。

步骤1:准备工作

首先,我们需要在html文件中引入jQuery和轮播插件bxSlider的js和css文件,以及我们编写的css和html文件。代码如下:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>jQuery实现选项联动轮播效果</title>
    <link rel="stylesheet" href="css/style.css">
    <link rel="stylesheet" href="css/jquery.bxslider.css">
  </head>
  <body>
    <div class="list-wrap">
      <ul class="list">
        <li class="item" data-type="all">All</li>
        <li class="item" data-type="web">Web</li>
        <li class="item" data-type="ui">UI</li>
        <li class="item" data-type="graphic">Graphic</li>
        <li class="item" data-type="print">Print</li>
        <li class="item" data-type="motion">Motion</li>
        <li class="item" data-type="3d">3D</li>
      </ul>
      <ul class="slider-list">
        <li data-type="web">
          <img src="http://placehold.it/300x200">
          <p>Web Design</p>
        </li>
        <li data-type="ui">
          <img src="http://placehold.it/300x200">
          <p>User Interface</p>
        </li>
        <li data-type="graphic">
          <img src="http://placehold.it/300x200">
          <p>Graphic Design</p>
        </li>
        <li data-type="print">
          <img src="http://placehold.it/300x200">
          <p>Print Design</p>
        </li>
        <li data-type="motion">
          <img src="http://placehold.it/300x200">
          <p>Motion Design</p>
        </li>
        <li data-type="3d">
          <img src="http://placehold.it/300x200">
          <p>3D Design</p>
        </li>
      </ul>
    </div>
    <script src="js/jquery-3.6.0.min.js"></script>
    <script src="js/jquery.bxslider.min.js"></script>
    <script src="js/script.js"></script>
  </body>
</html>

步骤2:实现联动效果

接下来,我们需要编写jQuery代码实现联动效果。首先,我们需要监听选项卡的点击事件,根据点击的选项卡值来显示对应的轮播图片。代码如下:

$('.list .item').click(function(e) {
  var type = $(e.target).data('type');
  $('.slider-list').bxSlider().destroySlider();
  if (type === 'all') {
    $('.slider-list li').show();
  } else {
    $('.slider-list li').hide();
    $('.slider-list li[data-type="' + type + '"]').show();
  }
  $('.slider-list').bxSlider({
    pager: false,
    controls: false,
    slideWidth: 300,
    minSlides: 1,
    maxSlides: 3,
    moveSlides: 1,
    slideMargin: 30,
    adaptiveHeight: true
  });
});

代码中,我们先给每个选项卡元素绑定了一个点击事件。在点击事件中,我们首先获取被点击元素的data-type值,然后根据这个值来控制轮播图的展示。如果data-type是all,表示需要显示所有的轮播图,我们将所有的li元素都显示出来。否则,我们将所有的li元素隐藏起来,然后只显示data-type等于被点击元素的data-type的li元素。之后,我们还要重新初始化轮播图组件bxSlider。

接下来,我们需要选中轮播图容器.slider-list,在其上调用bxSlider插件,设置相关参数实现轮播效果。代码如下:

$('.slider-list').bxSlider({
  pager: false,
  controls: false,
  slideWidth: 300,
  minSlides: 1,
  maxSlides: 3,
  moveSlides: 1,
  slideMargin: 30,
  adaptiveHeight: true
});

代码中,我们设置了轮播图不显示分页器和控制按钮,图片的宽度为300px,可以一次性显示的最小和最大图片数量为1和3张,移动图片的数量为1,图片之间的间隔为30px,轮播图组件的高度自适应上一个图片的高度。这样,我们就实现了选项卡和轮播图的联动效果。

步骤3:完整示例

最后,我们再给出完整的示例代码:

CSS:

.list-wrap {
  margin-top: 50px;
  text-align: center;
}
.list-wrap .list {
  display: inline-block;
  margin-right: 20px;
  padding: 0;
  list-style: none;
}
.list-wrap .list .item {
  display: inline-block;
  padding: 10px 20px;
  background-color: #ddd;
  color: #333;
  cursor: pointer;
  border-radius: 20px;
  margin-right: 10px;
  font-size: 16px;
}
.list-wrap .list .item:hover {
  background-color: #333;
  color: #fff;
}
.list-wrap .slider-list {
  margin-top: 50px;
  text-align: center;
}
.list-wrap .slider-list li {
  display: inline-block;
  padding: 20px;
  box-sizing: border-box;
  text-align: left;
  background-color: #eee;
  margin-right: 30px;
  border-radius: 10px;
}
.list-wrap .slider-list li p {
  margin-top: 20px;
  font-size: 20px;
  font-weight: bold;
}

HTML:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>jQuery实现选项联动轮播效果</title>
    <link rel="stylesheet" href="css/style.css">
    <link rel="stylesheet" href="css/jquery.bxslider.css">
  </head>
  <body>
    <div class="list-wrap">
      <ul class="list">
        <li class="item" data-type="all">All</li>
        <li class="item" data-type="web">Web</li>
        <li class="item" data-type="ui">UI</li>
        <li class="item" data-type="graphic">Graphic</li>
        <li class="item" data-type="print">Print</li>
        <li class="item" data-type="motion">Motion</li>
        <li class="item" data-type="3d">3D</li>
      </ul>
      <ul class="slider-list">
        <li data-type="web">
          <img src="http://placehold.it/300x200">
          <p>Web Design</p>
        </li>
        <li data-type="ui">
          <img src="http://placehold.it/300x200">
          <p>User Interface</p>
        </li>
        <li data-type="graphic">
          <img src="http://placehold.it/300x200">
          <p>Graphic Design</p>
        </li>
        <li data-type="print">
          <img src="http://placehold.it/300x200">
          <p>Print Design</p>
        </li>
        <li data-type="motion">
          <img src="http://placehold.it/300x200">
          <p>Motion Design</p>
        </li>
        <li data-type="3d">
          <img src="http://placehold.it/300x200">
          <p>3D Design</p>
        </li>
      </ul>
    </div>
    <script src="js/jquery-3.6.0.min.js"></script>
    <script src="js/jquery.bxslider.min.js"></script>
    <script src="js/script.js"></script>
  </body>
</html>

JavaScript:

$('.list .item').click(function(e) {
  var type = $(e.target).data('type');
  $('.slider-list').bxSlider().destroySlider();
  if (type === 'all') {
    $('.slider-list li').show();
  } else {
    $('.slider-list li').hide();
    $('.slider-list li[data-type="' + type + '"]').show();
  }
  $('.slider-list').bxSlider({
    pager: false,
    controls: false,
    slideWidth: 300,
    minSlides: 1,
    maxSlides: 3,
    moveSlides: 1,
    slideMargin: 30,
    adaptiveHeight: true
  });
});

这样,我们就完成了“jQuery实现选项联动轮播效果”的完整攻略,示例中展示了选项卡和轮播图的联动效果及其具体实现方法。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:jQuery实现选项联动轮播效果【附实例】 - Python技术站

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

相关文章

  • jQWidgets jqxPasswordInput宽度属性

    以下是关于 jQWidgets jqxPasswordInput 组件中宽度属性的详细攻略。 jQWidgets jqxPasswordInput 宽度属性 jQWidgets jqxPasswordInput 组件宽度属性用于控制组件的宽度。 语法 $(‘#passwordInput’).jqxPasswordInput({ width: ‘200px’ …

    jquery 2023年5月12日
    00
  • jQWidgets jqxRadioButton改变事件

    以下是关于 jQWidgets jqxRadioButton 组件中改变事件的详细攻略。 jQWidgets jqxRadioButton 改变事件 jQWidgets jqxRadioButton 组件的 change 事件在单选的选中状态发生改变时触发。 语法 // 绑定 change 事件 $(‘#radioButton’).on(‘change’, …

    jquery 2023年5月12日
    00
  • jQuery unbind()方法

    jQuery unbind()方法用于从元素中删除一个或多个事件处理程序。它可以用于清除事件处理程序,以便在不需要它们时释放内存。 以下是unbind()方法的详细: 语法 $(selector).unbind(eventType, handler) 参数 eventType:必需,要删除的事件类型。 handler:可选,要删除的事件处理程序。 示例1:删…

    jquery 2023年5月9日
    00
  • jQuery bind()方法

    jQuery bind()方法是用于将事件处理程序绑定到元素的方法。该方法可以绑定多个事件处理程序,并且可以在事件处理程序中访问事件对象。 语法 jQuery bind()方法的语法如下: $(selector).bind(event, data, handler); 参数说明: selector:必需,用于选择要绑定事件的元素的选择器。 event:必需,…

    jquery 2023年5月9日
    00
  • jQuery常见动画效果实现介绍

    jQuery常见动画效果实现介绍 jQuery常见动画效果的实现非常常用,本文将介绍jQuery中常见的动画效果及其实现方法。 1. 常见动画效果 1.1. show() 和 hide() show() 和 hide()是最常用的两个动画效果,分别用于显示和隐藏一个元素。它们的语法非常简单: $(selector).show(); $(selector).h…

    jquery 2023年5月28日
    00
  • jQuery Selectors(选择器)的使用(四-五、内容篇&可见性篇)

    下面是关于 “jQuery Selectors(选择器)的使用(四-五、内容篇&可见性篇)” 的完整攻略。 内容篇 内容篇指的是根据元素的内容信息来对元素进行筛选和操作。以下是一些常用的内容选择器: :contains() :contains()选择器用来选取包含特定文本的元素。语法为 $(‘:contains(text)’): // 选取包含文本“…

    jquery 2023年5月28日
    00
  • jQuery解决input元素的blur事件和其他非表单元素的click事件冲突问题

    要解决input元素的blur事件和其他非表单元素的click事件冲突问题,需要进行事件冒泡和捕获机制的处理。 首先,我们需要使用jQuery的事件委托机制,将click事件绑定到最外层的容器上,并通过选择器指定只绑定非表单元素的click事件(如div、span、a等)。 接着,在input元素的blur事件中,通过event.stopPropagatio…

    jquery 2023年5月27日
    00
  • jQWidgets jqxRadioButton宽度属性

    以下是关于 jQWidgets jqxRadioButton 组件中宽度属性的详细攻略。 jQWidgets jqxRadioButton 宽度属性 jQWidgets jqxRadioButton 组件的宽度属性用于设置单选按钮的宽度。 语法“`javascript // 设置宽度属性$(‘#radioButton’).jqxRadioButton({ …

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