• 大三学习进度47


    使用

    元素功能的开启只需要加载element模块即会自动完成,所以不用跟其它模块一样为某一个功能而调用一个方法。她只需要找到她支持的元素,如你的页面存在一个 Tab元素块,那么element模块会自动赋予她该有的功能。

    HTMLcode

    <div class="layui-tab" lay-filter="demo">

      <ul class="layui-tab-title">

        <li class="layui-this">网站设置</li>

        <li>商品管理</li>

        <li>订单管理</li>

      </ul>

      <div class="layui-tab-content">

        <div class="layui-tab-item layui-show">内容1</div>

        <div class="layui-tab-item">内容2</div>

        <div class="layui-tab-item">内容3</div>

      </div>

    </div>

          

    前提是你要加载element模块

    JavaScriptcode

    layui.use('element', function(){

      var element = layui.element;

      

      //一些事件触发

      element.on('tab(demo)', function(data){

        console.log(data);

      });

    });

          

    预设元素属性

    我们通过自定义元素属性来作为元素的功能参数,他们一般配置在容器外层,如:

    </>code

    <div class="layui-tab" lay-allowClose="true" lay-filter="demo">…</div>      

    <span class="layui-breadcrumb" lay-separator="|"></span>

     And So On

          

    element 模块支持的元素如下表:

    属性名可选值说明

    lay-filter任意字符事件过滤器(公用属性),主要用于事件的精确匹配,跟选择器是比较类似的。

    lay-allowClosetrue针对于Tab容器,是否允许选项卡关闭。默认不允许,即不用设置该属性

    lay-separator任意分隔符针对于面包屑容器

    基础方法

    基础方法允许你在外部主动对元素发起一起操作,目前element模块提供的方法如下:

    方法名描述

    var element = layui.element;element模块的实例

    返回的element变量为该实例的对象,携带一些用于元素操作的基础方法

    element.on(filter, callback);用于元素的一些事件触发

    element.tabAdd(filter, options);用于新增一个Tab选项

    参数filter:tab元素的 lay-filter="value" 过滤器的值(value)

    参数options:设定可选值的对象,目前支持的选项如下述示例:

    </>code

    element.tabAdd('demo', {

      title: '选项卡的标题'

      ,content: '选项卡的内容' //支持传入html

      ,id: '选项卡标题的lay-id属性值'

    });             

                  

    element.tabDelete(filter, layid);用于删除指定的Tab选项

    参数filter:tab元素的 lay-filter="value" 过滤器的值(value)

    参数layid:选项卡标题列表的 属性 lay-id 的值

    示例code

    element.tabDelete('demo', 'xxx'); //删除 lay-id="xxx" 的这一项  

                  

    element.tabChange(filter, layid);用于外部切换到指定的Tab项上,参数同上,如:

    element.tabChange('demo', 'layid'); //切换到 lay-id="yyy" 的这一项

    element.tab(options);用于绑定自定义 Tab 元素(即非 layui 自带的 tab 结构)。该方法为 layui 2.1.6 新增

    参数options:设定可选值的对象,目前支持的选项如下述示例:

    </>code

    //HTML

    <ul id="tabHeader">

      <li>标题1</li>

      <li>标题2</li>

      <li>标题3</li>

    </ul>

    <div id="tabBody">

      <div class="xxx">内容1</div>

      <div class="xxx">内容2</div>

      <div class="xxx">内容4</div>

    </div>

                  

    //JavaScript              

    element.tab({

      headerElem: '#tabHeader>li' //指定tab头元素项

      ,bodyElem: '#tabBody>.xxx' //指定tab主体元素项

    });             

                  

    element.progress(filter, percent);用于动态改变进度条百分比:

    element.progress('demo', '30%');更新渲染

    更新渲染

    跟表单元素一样,很多时候你的页面元素可能是动态生成的,这时element的相关功能将不会对其有效,你必须手工执行 element.init(type, filter) 方法即可。注意:2.1.6 开始,可以用 element.render(type, filter); 方法替代

    第一个参数:type,为表单的type类型,可选。默认对全部类型的表单进行一次更新。可局部刷新的type如下表:

    参数(type)值描述

    tab重新对tab选项卡进行初始化渲染

    nav重新对导航进行渲染

    breadcrumb重新对面包屑进行渲染

    progress重新对进度条进行渲染

    collapse重新对折叠面板进行渲染

    例子code

    element.init(); //更新全部  2.1.6 可用 element.render() 方法替代

    element.render('nav'); //重新对导航进行渲染。注:layui 2.1.6 版本新增

    //……

          

    第二个参数:filter,为元素的 lay-filter="" 的值。你可以借助该参数,完成指定元素的局部更新。

    </>code

    【HTML】

    <div class="layui-nav" lay-filter="test1">

      …

    </div>

    <div class="layui-nav" lay-filter="test2">

      …

    </div>

          

    【JavaScript】

    //比如当你对导航动态插入了二级菜单,这时你需要重新去对它进行渲染

    element.render('nav', 'test1'); //对 lay-filter="test1" 所在导航重新渲染。注:layui 2.1.6 版本新增

    //……      

          

    事件触发

    语法:element.on('event(过滤器值)', callback);

    element 模块在 layui 事件机制中注册了element 模块事件,所以当你使用 layui.onevent() 自定义模块事件时,请勿占用 element 名。目前 element 模块所支持的事件如下表:

    event描述

    tab触发 Tab 选项卡切换事件

    tabDelete触发 Tab 选项卡删除事件

    nav触发导航菜单的点击事件

    collapse触发折叠面板展开或收缩事件

    默认情况下,事件所触发的是全部的元素,但如果你只想触发某一个元素,使用事件过滤器即可。

    如:<div class="layui-tab" lay-filter="test"></div>

    </>code

    element.on('tab(test)', function(data){

      console.log(data);

    });

          

    触发选项卡切换

    Tab选项卡点击切换时触发,回调函数返回一个object参数,携带两个成员:

    </>code

    element.on('tab(filter)', function(data){

      console.log(this); //当前Tab标题所在的原始DOM元素

      console.log(data.index); //得到当前Tab的所在下标

      console.log(data.elem); //得到当前的Tab大容器

    });

          

    触发选项卡删除

    Tab选项卡被删除时触发,回调函数返回一个object参数,携带两个成员:

    </>code

    element.on('tabDelete(filter)', function(data){

      console.log(this); //当前Tab标题所在的原始DOM元素

      console.log(data.index); //得到当前Tab的所在下标

      console.log(data.elem); //得到当前的Tab大容器

    });

          

    注:该事件为 layui 2.1.6 新增

    触发导航菜单的点击

    当点击导航父级菜单和二级菜单时触发,回调函数返回所点击的菜单DOM对象:

    </>code

    element.on('nav(filter)', function(elem){

      console.log(elem); //得到当前点击的DOM对象

    });

          

    触发折叠面板

    当折叠面板点击展开或收缩时触发,回调函数返回一个object参数,携带三个成员:

    </>code

    element.on('collapse(filter)', function(data){

      console.log(data.show); //得到当前面板的展开状态,true或者false

      console.log(data.title); //得到当前点击面板的标题区域DOM对象

      console.log(data.content); //得到当前点击面板的内容区域DOM对象

    });

          

    动态操作进度条

    你肯定不仅仅是满足于进度条的初始化显示,通常情况下你需要动态改变它的进度值,element模块提供了这样的基础方法:element.progress(filter, percent);。

    例子code

    <div class="layui-progress layui-progress-big" lay-filter="demo" lay-showPercent="true">

      <div class="layui-progress-bar" lay-percent="0%"></div>

    </div>

    上述是一个已经设置了过滤器(lay-filter="demo")的进度条

    现在你只需要在某个事件或者语句中执行方法:element.progress('demo', '50%');

    即可改变进度

          

    如果你需要进度条更直观的例子,建议浏览:进度条演示页面

  • 相关阅读:
    snabbdom源码(二)
    linux汇总 文本操作三篇之grep
    snabbdom源码(一)
    linux汇总 文本操作三篇之sed
    你的c语言中文版项目使用 char 还是 wchar_t?
    实习经验谈
    fastdfs 安装和使用
    redison 自动续期的 分布式锁
    vue3 中的axios的使用,使用Vue.prototype 报错问题
    vue3的 keepalive 使用,以及activated钩子 和 vuerouter中的 scrollBehavior的使用
  • 原文地址:https://www.cnblogs.com/hhw12345/p/14161810.html
Copyright © 2020-2023  润新知