控件

控件:指有交互效果的 UI,一般包含 HTML 结构及 JS 代码。BUI 有 50 多个交互控件,兼容,灵活,可以组合成上百种交互效果。

初始化

轮播图效果演示

支持手势操作

例如:轮播图包含以下代码片段

<div id="uiSlide" class="bui-slide"></div>
// 焦点图 js 初始化:
var uiSlide = bui.slide({
  id: "#uiSlide",
  height: 380,
  autopage: true,
  loop: true,
  data: [
    {
      image: "images/banner01.png",
      url: "pages/ui_controls/bui.slide_title.html",
    },
    {
      image: "images/banner02.png",
      url: "pages/ui_controls/bui.slide_title.html",
    },
  ],
});

控件的具体参数请参考 API 文档 slide api

带中括号的参数为可选,例如[menu] [width],不带中括号的参数为必要项,例如id

控件方法

可以通过刚刚的实例uiSlide,常用的场景,都能找到对应的方法。

// 自动播放
uiSlide.start();

// 停止播放
uiSlide.stop();

// 跳转下一个
uiSlide.next();

// 获取当前索引
uiSlide.index();

// 跳转第2个图片
uiSlide.to(1);
// 跳转第2个图片不需要动画
uiSlide.to(1, "none");

动态渲染

BUI 的控件只初始化一次,无需重复初始化,通过 option 方法,修改 data 的数据。

// 示例数据
var data = [
  {
    image: "images/banner01.png",
  },
];
// 修改动态值
uiSlide.option("data", data);

例子:

<div id="slide" class="bui-slide"></div>
// 先初始化
var uiSlide = bui.slide({
  id: "#slide",
  height: 380,
  autopage: true,
  data: [], // 数据为空
});

// 异步请求
bui
  .ajax({
    url: "http://www.easybui.com/demo/json/slide.json",
  })
  .then(function (result) {
    var data = result.data || [];
    // 修改数据
    uiSlide.option("data", data);
  });

slide.json 接口返回的数据为:

{
    "status": 200,
    "info": "获取成功",
    "data": [{
        "image": "images/banner01.png",
        "url": "pages/ui_controls/bui.slide_title.html"
    },{
        "image": "images/banner02.png",
        "url": "pages/ui_controls/bui.slide_title.html"
    }]
}

订阅式事件

控件的内部绑定了一些方法,在外层重新绑定一次会影响内部实现,通过订阅式监听事件则不会相互影响。

例如:监听跳转事件,不管轮播图滑动跳转,点击跳转,还是自动跳转到第几个,都会触发这个回调,展示当前的索引值。

uiSlide.on("to", function () {
  let index = this.index();
  console.log(index);
});

更多控件

Copyright ©2017-2022 easybui.com all right reserved,powered by Gitbook该文件修订时间: 2022-04-25 16:25:58

results matching ""

    No results matching ""