《layui宇宙版教程》:轮播组件carousel

《Layui宇宙版教程》提供2000人的QQ群进行交流学习,QQ群号:1046961650,或通过手机QQ扫描二维码进入:

 

1.30 轮播组件carousel

carousel主要适用于跑马灯/轮播等交互场景。

模块加载名称:carousel。

1.30.1 快速使用

  测试代码如下:

<!DOCTYPE html>

<html>

    <head>

        <meta charset="utf-8">

       <title></title>

       <script src="js/jquery3.5.1.js"></script>

       <link rel="stylesheet" href="layui/css/layui.css" />

       <script src="layui/layui.all.js"></script>

    </head>

    <body>

       <div class="layui-carousel" id="test1">

           <div carousel-item>

              <div>条目1</div>

              <div>条目2</div>

              <div>条目3</div>

              <div>条目4</div>

              <div>条目5</div>

           </div>

       </div>

       <!-- 条目中可以是任意内容,如:<img src=""> -->

       <script>

           var carousel = layui.carousel;

           //建造实例

           carousel.render({

              elem: '#test1',

              width: '100%', //设置容器宽度

              arrow: 'always' //始终显示箭头

              //,anim: 'updown' //切换动画方式

           });

       </script>

    </body>

</html>

 

    运行效果如图1-xx所示。

 

在HTML结构中,只需要简单地注意这两项:

(1)外层元素的class="layui-carousel"用来标识为一个轮播容器

(2)内层元素的属性carousel-item用来标识条目

而id则用于carousel模块建造实例的元素指向,剩下的工作,就是按照实际需求给方法设置不同的基础参数了。

1.30.2 基础参数

通过核心方法:

carousel.render(options);

来对轮播设置基础参数,也可以通过方法:

carousel.set(options);

来设定全局基础参数。

 

支持的基础参数如图1-xx所示。

 

1.30.3 属性width和height

    测试代码如下:

<!DOCTYPE html>

<html>

    <head>

       <meta charset="utf-8">

       <title></title>

       <script src="js/jquery3.5.1.js"></script>

       <link rel="stylesheet" href="layui/css/layui.css" />

       <script src="layui/layui.all.js"></script>

    </head>

    <body>

       <div class="layui-carousel" id="test1">

           <div carousel-item>

              <div>条目1</div>

              <div>条目2</div>

              <div>条目3</div>

              <div>条目4</div>

              <div>条目5</div>

           </div>

       </div>

       <!-- 条目中可以是任意内容,如:<img src=""> -->

       <script>

           var carousel = layui.carousel;

           //建造实例

           carousel.render({

              elem: '#test1',

              width: '500px',

               height: "500px"

           });

       </script>

    </body>

</html>

 

    运行效果如图1-xx所示。

1.30.4 属性full

    测试代码如下:

<!DOCTYPE html>

<html>

    <head>

       <meta charset="utf-8">

       <title></title>

       <script src="js/jquery3.5.1.js"></script>

       <link rel="stylesheet" href="layui/css/layui.css" />

       <script src="layui/layui.all.js"></script>

    </head>

    <body>

       <div class="layui-carousel" id="test1">

           <div carousel-item>

              <div>条目1</div>

              <div>条目2</div>

              <div>条目3</div>

              <div>条目4</div>

              <div>条目5</div>

           </div>

       </div>

       <!-- 条目中可以是任意内容,如:<img src=""> -->

       <script>

           var carousel = layui.carousel;

           //建造实例

           carousel.render({

              elem: '#test1',

              full: true

           });

       </script>

    </body>

</html>

 

    运行效果如图1-xx所示。

 

1.30.5 属性anim

    测试代码如下:

<!DOCTYPE html>

<html>

    <head>

       <meta charset="utf-8">

       <title></title>

       <script src="js/jquery3.5.1.js"></script>

       <link rel="stylesheet" href="layui/css/layui.css" />

       <script src="layui/layui.all.js"></script>

    </head>

    <body>

       <div class="layui-carousel" id="test1">

           <div carousel-item>

              <div>条目1</div>

              <div>条目2</div>

              <div>条目3</div>

              <div>条目4</div>

              <div>条目5</div>

           </div>

       </div>

       <!-- 条目中可以是任意内容,如:<img src=""> -->

       <script>

           var carousel = layui.carousel;

           //建造实例

           carousel.render({

              elem: '#test1',

              //anim: "updown" //上下切换

              //anim: "fade" //渐隐渐显切换

              anim: "default" //default 左右切换)

           });

       </script>

    </body>

</html>

 

1.30.6 属性autoplay

    测试代码如下:

<!DOCTYPE html>

<html>

    <head>

       <meta charset="utf-8">

       <title></title>

       <script src="js/jquery3.5.1.js"></script>

       <link rel="stylesheet" href="layui/css/layui.css" />

       <script src="layui/layui.all.js"></script>

    </head>

    <body>

       <div class="layui-carousel" id="test1">

           <div carousel-item>

              <div>条目1</div>

              <div>条目2</div>

               <div>条目3</div>

              <div>条目4</div>

              <div>条目5</div>

           </div>

       </div>

       <!-- 条目中可以是任意内容,如:<img src=""> -->

       <script>

           var carousel = layui.carousel;

           //建造实例

           carousel.render({

              elem: '#test1',

              autoplay: false

           });

       </script>

    </body>

</html>

 

1.30.7 属性interval

    测试代码如下:

<!DOCTYPE html>

<html>

    <head>

       <meta charset="utf-8">

       <title></title>

       <script src="js/jquery3.5.1.js"></script>

       <link rel="stylesheet" href="layui/css/layui.css" />

       <script src="layui/layui.all.js"></script>

    </head>

    <body>

       <div class="layui-carousel" id="test1">

           <div carousel-item>

              <div>条目1</div>

              <div>条目2</div>

              <div>条目3</div>

              <div>条目4</div>

              <div>条目5</div>

           </div>

       </div>

       <!-- 条目中可以是任意内容,如:<img src=""> -->

       <script>

           var carousel = layui.carousel;

           //建造实例

           carousel.render({

              elem: '#test1',

              interval: 1000

           });

       </script>

    </body>

</html>

 

1.30.8 属性index

    测试代码如下:

<!DOCTYPE html>

<html>

    <head>

       <meta charset="utf-8">

       <title></title>

       <script src="js/jquery3.5.1.js"></script>

       <link rel="stylesheet" href="layui/css/layui.css" />

       <script src="layui/layui.all.js"></script>

    </head>

    <body>

       <div class="layui-carousel" id="test1">

           <div carousel-item>

              <div>条目1</div>

              <div>条目2</div>

              <div>条目3</div>

              <div>条目4</div>

              <div>条目5</div>

           </div>

       </div>

       <!-- 条目中可以是任意内容,如:<img src=""> -->

       <script>

           var carousel = layui.carousel;

           //建造实例

           carousel.render({

              elem: '#test1',

              index: 3

           });

       </script>

    </body>

</html>

 

    运行效果如图1-xx所示。

 

1.30.9 属性arrow

    测试代码如下:

<!DOCTYPE html>

<html>

    <head>

       <meta charset="utf-8">

       <title></title>

       <script src="js/jquery3.5.1.js"></script>

       <link rel="stylesheet" href="layui/css/layui.css" />

       <script src="layui/layui.all.js"></script>

    </head>

    <body>

       <div class="layui-carousel" id="test1">

           <div carousel-item>

              <div>条目1</div>

              <div>条目2</div>

              <div>条目3</div>

              <div>条目4</div>

              <div>条目5</div>

           </div>

        </div>

       <!-- 条目中可以是任意内容,如:<img src=""> -->

       <script>

           var carousel = layui.carousel;

           //建造实例

           carousel.render({

              elem: '#test1',

              //arrow: "hover" //悬停显示

              //arrow: "always" //始终显示

              arrow: "none" //始终不显示

           });

       </script>

    </body>

</html>

 

1.30.10 属性indicator

注意:如果设定了anim:'updown',该参数将无效。

   

测试代码如下:

<!DOCTYPE html>

<html>

    <head>

       <meta charset="utf-8">

       <title></title>

       <script src="js/jquery3.5.1.js"></script>

       <link rel="stylesheet" href="layui/css/layui.css" />

       <script src="layui/layui.all.js"></script>

    </head>

    <body>

       <div class="layui-carousel" id="test1">

           <div carousel-item>

              <div>条目1</div>

              <div>条目2</div>

              <div>条目3</div>

              <div>条目4</div>

              <div>条目5</div>

           </div>

       </div>

       <!-- 条目中可以是任意内容,如:<img src=""> -->

       <script>

           var carousel = layui.carousel;

           //建造实例

           carousel.render({

              elem: '#test1',

              //indicator: "inside" //容器内部

              //indicator: "outside" //容器外部

              indicator: "none" //不显示

           });

       </script>

    </body>

</html>

 

1.30.11 属性trigger

    测试代码如下:

<!DOCTYPE html>

<html>

    <head>

        <meta charset="utf-8">

       <title></title>

       <script src="js/jquery3.5.1.js"></script>

       <link rel="stylesheet" href="layui/css/layui.css" />

       <script src="layui/layui.all.js"></script>

    </head>

    <body>

       <div class="layui-carousel" id="test1">

           <div carousel-item>

              <div>条目1</div>

              <div>条目2</div>

              <div>条目3</div>

              <div>条目4</div>

              <div>条目5</div>

           </div>

       </div>

       <!-- 条目中可以是任意内容,如:<img src=""> -->

       <script>

           var carousel = layui.carousel;

           //建造实例

           carousel.render({

              elem: '#test1',

              trigger: "mouseover"

           });

       </script>

    </body>

</html>

 

1.30.12 切换事件

轮播的每一次切换时触发,回调函数返回一个object参数。

   

测试代码如下:

<!DOCTYPE html>

<html>

    <head>

       <meta charset="utf-8">

       <title></title>

       <script src="js/jquery3.5.1.js"></script>

       <link rel="stylesheet" href="layui/css/layui.css" />

       <script src="layui/layui.all.js"></script>

    </head>

    <body>

       <div class="layui-carousel" id="test1" lay-filter="mycarousel">

           <div carousel-item>

              <div>条目1</div>

              <div>条目2</div>

              <div>条目3</div>

              <div>条目4</div>

              <div>条目5</div>

           </div>

       </div>

       <!-- 条目中可以是任意内容,如:<img src=""> -->

       <script>

           var carousel = layui.carousel;

           //建造实例

           carousel.render({

              elem: '#test1',

           });

 

           //监听轮播切换事件

           carousel.on('change(mycarousel)', function(obj) { //test1来源于对应HTML容器的 lay-filter="test1" 属性值

              console.log(obj.index); //当前条目的索引

              console.log(obj.prevIndex); //上一个条目的索引

              console.log(obj.item); //当前条目的元素对象

           });

       </script>

    </body>

</html>

 

1.30.13 重载方法

事实上,在执行carousel.render(options)方法时,有返回一个当前实例的对象。该对象包含了用于操作当前轮播的一些属性和方法,示例代码如图1-xx所示。

 

    测试代码如下:

<!DOCTYPE html>

<html>

    <head>

       <meta charset="utf-8">

       <title></title>

       <script src="js/jquery3.5.1.js"></script>

       <link rel="stylesheet" href="layui/css/layui.css" />

       <script src="layui/layui.all.js"></script>

    </head>

    <body>

       <div class="layui-carousel" id="test1" lay-filter="mycarousel">

           <div carousel-item>

              <div>条目1</div>

              <div>条目2</div>

              <div>条目3</div>

              <div>条目4</div>

              <div>条目5</div>

           </div>

       </div>

       <!-- 条目中可以是任意内容,如:<img src=""> -->

       <script>

           var carousel = layui.carousel;

           //建造实例

           var mycarousel = carousel.render({

              elem: '#test1',

           });

 

           $(document).ready(function() {

              setTimeout(function() {

                  mycarousel.reload({

                     interval: 1000,

                  });

              }, 5000);

           });

       </script>

    </body>

</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值