`

EasyUI Cookie记忆layout的布局

 
阅读更多

 

最近在开发中,想保存easyui的一个复杂界面的layout,让用户可以根据自己的分辨率和喜好进行界面布局的调整,并保存下来,下次进入的时候使用保存的布局位置。

 

设计:

1、需要在布局拖动的时候记录下layout部件的位置(我这里使用的是north和center,并使用fit填充全页面的方式布局,所以只需要记录north的高度就OK)。

2、在进入页面时,jquery和easyui初始化和渲染完成后,执行resize操作。

 

找方案,想办法

1、官方文档基本没有办法实现,easyui.layout虽然继承了resizable,但是查看了官方混淆后的烂代码,勉强发现官方已经覆写了resizable的相关事件,所有基本可以说,官方没有提供该功能。

2、热,从源代码下手,去修改混淆的源代码,分析后,发现是可行的,但是需要动官方源代码升级会很麻烦,前面从1.3.1升级到1.3.3已经麻烦过一次了。。。

3、通过强大的google浏览器,分析DOM结合官方API,通过1个多小时努力,找到解决方案。如下:

 

1、注册layout的布局子对象的panel,然后注册其onResize事件,获取变动后的位置,并记录到cookie中。

 

function registerRememberPosEvent(){
	$('#manage_popup_layout').layout('panel','north').panel({
		onResize:function(w,h){
			rememberPos(h);		
		}
	});
}
function rememberPos(h){
  $.cookie('popup.position.height', h);
}

 

 

2、页面初始化完成后,先resize布局子对象的panel,然后再调用layout的resize,实现读取cookie中保存的位置并设置。

// 读取cookie,并设置初始化布局高度
function recoverPos(timestamp){
	var h = $.cookie('popup.position.height');
	if(!h) h=400;
	$('#manage_popup_layout').layout('panel','north').panel('resize',{height:h});
	$('#manage_popup_layout').layout('resize');
}

 

3,、进入页面,初始化完成后,注册事件,读取cookie,resize位置

// easyui渲染完成事件,注意这是全局事件,用了后注销下。
$.parser.onComplete=function(context){
        registerRememberPosEvent()
        recoverPos();
	$.parser.onComplete = function(){
		console.info("[popup]已注销onComplete事件");
	}
}

 

 

希望对有相同需求的兄弟有帮助。

 

1
1
分享到:
评论

相关推荐

    easyui layout+tab+tree实现网站基本布局

    本话题将详细探讨如何利用EasyUI的layout、tab和tree组件来实现一个基本的网站布局。 首先,`EasyUI layout` 是一种强大的布局工具,它允许开发者将页面划分为多个区域(如北、南、东、西、中),每个区域可以独立...

    easyui 整体框架布局1.2.6

    在 EasyUI 中,框架布局(Layout)是核心功能之一,它允许开发者将页面分割成多个区域,如北(North)、南(South)、东(East)、西(West)和中心(Center),这样可以灵活地组织和管理网页内容。以下是对 EasyUI ...

    esayui layout

    "EasyUI Layout" 是 EasyUI 中的一个核心组件,用于实现页面的布局管理。下面我们将深入探讨 EasyUI Layout 的相关知识点。 1. **Layout 基本概念**: EasyUI Layout 是一种灵活的布局解决方案,它允许开发者将...

    可拖拽布局组件easyui-portal

    `EasyUI-Portal`是一个基于JavaScript和CSS的开源框架,专为创建可定制、可拖拽的布局而设计,它使得开发人员能够轻松构建以用户为中心的Web应用程序,实现信息的集中访问。下面我们将深入探讨`EasyUI-Portal`的核心...

    jquery-easyui-portal 自定义布局

    3. **Layout**:Layout组件是EasyUI中的核心布局工具,它允许将页面划分为北(North)、南(South)、东(East)、西(West)和中心(Center)五个区域。每个区域都可以包含一个或多个Panel,通过调整各区域的大小,...

    JQuery EasyUI Layout 在from布局自适应窗口大小的实现方法

    本文主要探讨如何使用 jQuery EasyUI Layout 实现从布局在窗口大小调整时自适应的方法。 在 jQuery EasyUI 中,Layout 是一个强大的组件,用于创建复杂的页面布局。然而,当 Layout 应用于 form 元素时,可能会遇到...

    easyui 扩展layout的方法,支持动态添加删除块

    ### easyUI扩展Layout方法以支持动态添加与删除区块 #### 概述 easyUI是一款基于jQuery的用户界面库,它提供了丰富的UI组件和强大的布局管理功能。本文将详细介绍如何通过扩展easyUI的`layout`方法来实现动态添加...

    EasyUI布局 高度自适应

    最近在把以前写的一个项目改成用easyui做前端。过程中遇到了不少问题。其中一个就是datagrid不能很好的布局。...这个时候就应该用 easyui-layout来分隔窗体来使具体的内容放在easyui-layout不同的部分。这样就能很好

    EasyUi简单的布局实现源码

    在本文中,我们将深入探讨如何使用EasyUI框架来实现简单的页面布局,主要关注Layout和Tabs组件的使用。EasyUI是一个基于jQuery的轻量级前端框架,它提供了丰富的UI组件,帮助开发者快速构建用户界面,而无需过多关注...

    jQuery EasyUI 中文API—Layout(Panel)

    Layout(布局)是 jQuery EasyUI 中的一个核心组件,它允许我们在网页上创建复杂的布局结构,方便地管理和组织页面内容。在本篇文章中,我们将深入探讨 jQuery EasyUI 中的 Layout(面板布局)及其相关API。 Layout...

    使用jquery-easyui的布局layout写后台管理页面的代码详解

    总之,jQuery EasyUI的Layout布局功能是构建后台管理页面的强大工具,结合实例代码,开发者可以快速创建出专业且功能完善的管理界面。通过学习和掌握这一技术,可以极大地提升Web应用的用户体验和开发效率。

    easyui页面布局示例

    首先,EasyUI 提供了多种布局模式,如网格布局(grid layout)、面板布局(panel layout)、窗口布局(window layout)等,这些布局方式可以帮助开发者灵活地组织页面元素。在本示例中,很可能是使用了网格布局来...

    easyui-1.4.4框架布局

    基于easyui-1.4.4框架布局. jQuery EasyUI是一组基于jQuery的UI插件集合,而jQuery EasyUI的目标就是帮助web开发者更轻松的打造出功能丰富并且美观的UI界面。开发者不需要编写复杂的javascript,也不需要对css样式有...

    EasyUi布局示例,适合初学,简单易懂

    这个“EasyUi布局示例”是专为初学者设计的,旨在帮助他们快速理解和掌握EasyUi的布局机制,从而能够构建出美观且功能齐全的网页应用。 在前端开发中,布局是至关重要的部分,它决定了网页元素如何在不同屏幕尺寸和...

    jquery easyui 经典布局

    jquery easyui 经典布局 类似extjs 感谢原作者

    jQuery布局组件EasyUI Layout使用方法详解

    jQuery EasyUI Layout是一款基于jQuery库开发的前端用户界面布局组件,它允许开发者快速构建出具有多种布局样式的网页界面。在现代网页设计中,布局是一个非常重要的部分,它不仅决定了用户界面的美观程度,而且直接...

    JQueryEasyUI Layout布局框架的使用

    JQueryEasyUI Layout布局框架是基于JQuery的前端框架,它的主要功能是实现页面布局,能够快速构建具有高交互性的网页界面。在JQueryEasyUI的Layout布局中,页面被划分为多个区域,这些区域可以独立地展示内容,用户...

    有关easyui-layout中的收缩层无法显示标题的解决办法

    在使用EasyUI布局时,有时会遇到一个棘手的问题,即在设置面板为可折叠(收缩层)后,标题和图标消失,导致界面显示不完整。这个问题主要出现在easyui-layout的实现中,当用户尝试折叠某个面板时,其标题和图标未能...

Global site tag (gtag.js) - Google Analytics