Layui 您所在的位置:网站首页 layui水平导航栏 Layui

Layui

2023-08-29 18:08| 来源: 网络整理| 查看: 265

一、实现效果

layui实现左侧菜单栏效果

二、代码实现

1. main.ftl

项目主页面,注意引入layui的css样式和js文件,还要引入aside.ftl左侧菜单栏 和 main.js文件。

... ...

tab项是放在这个div中的,其中有一个重要的属性lay-filter,在js中调用的tabAdd,tabDelete等多种方法都携带了这个参数,将tab项放在lay-filter=‘demo’的div中,可以借助该参数完成指定元素的局部更新。

2. aside.ftl

账号管理 普通账号 管理员账号 专案设置 订餐管理 菜单管理 每日供应 订单管理 评论管理

data-url=“”后跟iframe跳转地址。

3. main.js

layui.use(['element', 'layer', 'jquery'], function () { var element = layui.element; var $ = layui.$; // 配置tab实践在下面无法获取到菜单元素 $('.site-demo-active').on('click', function () { var dataid = $(this); //这时会判断右侧.layui-tab-title属性下的有lay-id属性的li的数目,即已经打开的tab项数目 if ($(".layui-tab-title li[lay-id]").length //否则判断该tab项是否以及存在 var isData = false; //初始化一个标志,为false说明未打开该tab项 为true则说明已有 $.each($(".layui-tab-title li[lay-id]"), function () { //如果点击左侧菜单栏所传入的id 在右侧tab项中的lay-id属性可以找到,则说明该tab项已经打开 if ($(this).attr("lay-id") == dataid.attr("data-id")) { isData = true; } }) if (isData == false) { //标志为false 新增一个tab项 active.tabAdd(dataid.attr("data-url"), dataid.attr("data-id"), dataid.attr("data-title")); } } //最后不管是否新增tab,最后都转到要打开的选项页面上 active.tabChange(dataid.attr("data-id")); }); var active = { //在这里给active绑定几项事件,后面可通过active调用这些事件 tabAdd: function (url, id, name) { //新增一个Tab项 传入三个参数,分别对应其标题,tab页面的地址,还有一个规定的id,是标签中data-id的属性值 //关于tabAdd的方法所传入的参数可看layui的开发文档中基础方法部分 element.tabAdd('demo', { title: name, content: '', id: id //规定好的id }) FrameWH(); //计算ifram层的大小 }, tabChange: function (id) { //切换到指定Tab项 element.tabChange('demo', id); //根据传入的id传入到指定的tab项 }, tabDelete: function (id) { element.tabDelete("demo", id);//删除 } }; function FrameWH() { var h = $(window).height(); $("iframe").css("height", h + "px"); } });

element中tabAdd方法,其中content可以是一个iframe页面,实现了不同页面间的切换:

element.tabAdd('demo', { title: '选项卡的标题', content: '选项卡的内容', //支持传入html id: '选项卡标题的lay-id属性值' });

4. 后台Controller层代码 layui路径跳转

参考:

layui实现左侧菜单点击右侧内容区显示 三、set ‘X-Frame-Options’ to 'DENY’错误

1. 具体报错

iframe集成时出现,页面空白,浏览器控制台报错:Refused to display in a frame because it set 'X-Frame-Options' to 'DENY'

2. 解决方法

我使用的框架是SpringBoot并整合了SpringSecurity,拓展WebSecurityConfigurerAdapter

@Override protected void configure(HttpSecurity http) throws Exception{ // 防止iframe http.headers().frameOptions().disable(); }

参考:

SpringBoot异常:Refused to display in a frame because it set ‘X-Frame-Options’ to ‘DENY’


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有