`
流浪鱼
  • 浏览: 1682137 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

tabs源码分析

 
阅读更多



 

 easyui的tabs源码分析

使用原始的html div代码:

			<div class="easyui-tabs" id="testtabs"  fit="true" plain="true" style="height:100px;width:300px;">
				<div title="Title1" style="padding:10px;">fdafdadsf</div>
				<div title="Title2" style="padding:10px;">Content 2</div>
				<div title="Title3" style="padding:10px;">Content 3</div>
			</div>

 

经过转换后html代码:

<div style="height: 100px; width: 1400px;" plain="true" fit="true"
			id="testtabs" class="easyui-tabs tabs-container">
			<!--tab的头-->
			<div class="tabs-header tabs-header-plain" style="width: 1400px;">
				<div class="tabs-scroller-left" style="display: block;"></div>
				<div class="tabs-scroller-right" style="display: block;"></div>
				<div class="tabs-wrap" style="margin-left: 0px; left: 0px; width: 1400px;">
					<ul class="tabs">
						<li class="tabs-selected">
							<a class="tabs-inner" href="javascript:void(0)">
								<span class="tabs-title">Title1</span>
								<span class="tabs-icon"></span>
							</a>
						</li>
						<li class="">
							<a class="tabs-inner" href="javascript:void(0)">
								<!--tabs-title没有具体的样式,只是为了js代码使用,为了选中或者修改标题用-->
								<span class="tabs-title tabs-with-icon">Title2</span>
								<!--小图标-->
								<span class="tabs-icon icon-reload"></span>
							</a>
						</li>
						<li class="">
							<a class="tabs-inner" href="javascript:void(0)">
								<span class="tabs-title tabs-closable">Title3</span>
								<span class="tabs-icon"></span>
							</a>
							<!--关闭按钮-->
							<a class="tabs-close" href="javascript:void(0)"></a>
						</li>
					</ul>
				</div>
			</div>
			<!--tab主体-->
			<div class="tabs-panels" style="height: 70px; width: 1398px;">
				<div class="panel" style="display: block; width: 1398px;">
					<div style="padding: 10px; width: 1378px; height: 50px;" title="" closed="true"
						class="panel-body panel-body-noheader panel-body-noborder">
						fdafdadsf
					</div>
				</div>
				<div class="panel" style="display: none; width: 1398px;">
					<div style="padding: 10px; width: 1378px; height: 50px;" title="" closed="true"
						class="panel-body panel-body-noheader panel-body-noborder">
						Content 2
					</div>
				</div>
				<div class="panel" style="display: none; width: 1398px;">
					<div style="padding: 10px; width: 1378px; height: 50px;" title="" closed="true"
						class="panel-body panel-body-noheader panel-body-noborder">
						Content 3
					</div>
				</div>
			</div>
		</div>

 

通过对比原始html和转换后html的对比,easyui对原始的html增加了头<div class="tabs-header tabs-header-plain" style="width: 1400px;">...</div>并且对原始的主体进行了总的封装<div class="tabs-panels" style="height: 70px; width: 1398px;">......</div>。

根据源码可以分析出easyui的tabs生成步骤如下:

1.根据传入的参数来决定是执行相应的方法还是进行初始化

2.初始化时对原始的div进行了包装,包装函数为wrapTabs(container)

此函数主要功能是生成tab的头,即<div class="tabs-header tabs-header-plain" style="width: 1400px;">...</div>和外部包装体<div class="tabs-panels" style="height: 70px; width: 1398px;">......</div>。

此方法只是生成框架,而真正具体实现的是通过方法createTab(container, options)。

createTab用于创建tab页得header,即在ul添加li和设置主体div的内容

3.通过setProperties(this)函数为tabs的小标签tab就头添加事件或动作,并根据href加载主体panel异步的内容

4.通过setSize(this)函数设置tab的大小和设置tab的滚动条是否可见
5.通过selectTab(this)选中tab标签

 

说明:

在源码中tab一般表示标签页

 

panel表示的是tab的主体

  • 大小: 1 KB
  • 大小: 564 Bytes
分享到:
评论

相关推荐

    tabs页签

    3. **源码分析**: 链接中的博客文章《iteye博客》可能提供了tabs的源码解析。在阅读源码时,注意理解以下几个关键部分: - Tab切换事件的绑定和解绑。 - 激活状态的管理,通常通过添加/移除特定的CSS类来实现。 ...

    iview tabs 顶部导航栏和模块切换栏的示例代码

    在本篇中,我们将关注于iView组件库中的Tabs组件,学习如何使用其实现顶部导航栏和模块切换栏功能。 首先,介绍iView中的Tabs组件,它通常用于在页面内创建多个标签页,每个标签页可以加载不同的内容,且在界面上只...

    简约时尚的纯CSS3 Tabs选项卡特效

    标题 "简约时尚的纯CSS3 Tabs选项卡特效" 指的是一个利用纯CSS3实现的,具有现代感和简洁设计的选项卡效果。这种效果通常用于网站布局中,允许用户在不同内容之间切换,而无需加载新页面。在描述中提到了一个博客...

    jQuery实现4种超酷Tabs选项卡特效源码.zip

    这个"jQuery实现4种超酷Tabs选项卡特效源码.zip"压缩包包含了一些利用jQuery创建的选项卡效果,这些效果可以增强用户界面的互动性和美观性。下面我们将深入探讨jQuery选项卡的基本概念、实现方式以及可能涉及的技术...

    ViewPager实现Tab源码

    通过以上步骤和源码分析,我们可以理解`ViewPager`和`TabLayout`如何协同工作,实现高效的页面切换和`Tab`显示。在实际开发中,还可以根据需求扩展功能,如添加滑动动画、自定义`Tab`样式等。对于开发者来说,熟练...

    ItemTouchHelp-RecycleView(仿写网易新闻客户端,顶部tabs,滑动排序,增加删除 )

    6. **源码结构分析**:通常,项目源码会包括以下几个部分:Activity或Fragment类负责处理布局和业务逻辑,Adapter类用于将数据绑定到RecyclerView,ViewHolder类封装了视图对象并处理触摸事件,以及布局文件定义了UI...

    wpf Ribbon 开发例及源码

    **WPF Ribbon 开发详解与源码分析** WPF(Windows Presentation Foundation)是微软推出的用于构建Windows应用程序的UI框架,而Ribbon则是Microsoft为提升用户界面体验,模仿Office系列软件的顶部工具栏设计的一种...

    asfdasfd

    标题 "asfdasfd" 并没有提供具体的知识点,但根据...在源码分析和工具使用方面,博主可能分享了如何集成和调试这些JavaScript库,以及如何将它们应用到实际项目中的技巧。如果需要深入学习,可以参考提供的博文链接。

    jquery easyui demo和源码

    源码分析可以帮助开发者理解EasyUI如何处理事件、渲染DOM元素、以及与jQuery的交互方式,对于性能优化和扩展功能很有价值。 ### 演示示例 (`jquery-easyui-DEMO`) `jquery-easyui-DEMO` 文件夹提供了各种组件的使用...

    Chrom扩展及应用高清PDF(含源码)

    7. **源码分析**:提供的源码可能包含了实际的示例扩展,读者可以学习如何将理论知识应用到实践中。 8. **打包与发布**:学习如何将扩展打包成CRX文件,以及如何在Chrome Web Store上发布扩展,以便其他用户下载和...

    Android高级应用源码-标签式布局吧.rar

    源码分析可以帮助开发者深入理解这一布局的实现方式,从而提升自己的编程技能。 标签式布局,通常称为Tab Layout,在Android中,它主要用于创建一个多页的界面,每个页面代表一个不同的“标签”或“选项卡”。这种...

    若依后台管理系统源代码

    一直想做一款后台管理系统,看了很多优秀的开源项目但是发现没有合适自己的。于是利用空闲休息时间开始自己写一套后台系统。如此有了若依管理系统。她可以用于所有的Web应用程序,如网站管理后台,网站会员中心,CMS...

    sqli-labs.zip

    学习如何分析这些错误以构建有效的注入。 3. **盲注(Blind SQL Injection)**:在没有错误信息或者输出有限的情况下,攻击者需要根据响应时间或页面内容的微妙变化来判断查询结果。了解如何使用时间延迟注入和布尔...

    JQUERY UI 开发指南源码

    通过分析这些代码,你可以深入理解jQuery UI的工作原理,并学会如何在自己的项目中应用。 此外,jQuery UI还支持主题系统,允许开发者自定义组件的外观。书中可能有对应的示例展示如何创建和应用自定义主题。学习这...

    jquery滑动切换tab

    4. **源码分析**:在给定的标签中,"其他"可能指的是这个实现可能包含一些自定义的CSS或JavaScript优化,比如缓动函数、响应式布局适应或其他交互增强功能。具体源码分析需要查看实际代码才能确定。 通过以上步骤,...

    firefox-narrow_pantip-源码.rar

    《Firefox-Narrow_Pantip 源码分析与探索》 Firefox-Narrow_Pantip 是一个专门为泰国知名社交论坛 Pantip 设计的浏览器扩展。它旨在优化用户在 Pantip 上的浏览体验,尤其是在狭窄的屏幕或者移动设备上。源码分析...

    Tab选项卡控件及Demo源码.zip

    源码分析可能涉及以下几个关键点: 1. 事件处理:了解如何监听和响应用户点击选项卡的事件。 2. 动态内容加载:掌握如何根据当前选中的选项卡加载对应的内容。 3. 样式定制:学习如何修改选项卡的外观,包括字体、...

    YT-REACT-TABS

    【标题】"YT-REACT-TABS"是一个基于React技术实现的YouTube视频播放器的源码项目,专门用于展示如何在React应用中构建一个类似YouTube的Tab切换功能。这个项目可能包括了创建、切换和管理多个视频播放Tab的组件化...

    app ionic开发实例源码

    开发者可以通过分析源码学习如何在Ionic项目中集成这些功能,了解AngularJS的服务、指令和控制器是如何与Ionic的组件交互的。 在文件列表中,我们看到"chankoujie.apk",这很可能是一个已经打包好的Android应用。...

    android手机触屏TAB菜单源码

    总之,这个“android手机触屏TAB菜单源码”涵盖了Android中创建触屏TAB菜单的基本步骤和关键点,通过学习和分析源码,开发者可以了解如何集成`TabLayout`和`ViewPager`,以及如何自定义标签的样式和行为。...

Global site tag (gtag.js) - Google Analytics