HT for Web的HTML5树组件有延迟加载的功能,这个功能对于那些需要从服务器读取具有层级依赖关系数据时非常有用,需要获取数据的时候再向服务器发起请求,这样可减轻服务器压力,同时也减少了浏览器的等待时间...http://www.hightopo.com/guide/readme.html 进入正题,今天用来做演示的Demo是,客户端请求服务器读取系统文件目录结构,通过HT for Web的HTML5树组件显示系统文件目录结构...整体的思路是这样子的,当然这离我们要实现的树组件的延迟加载技术还有些差距,那么,HT for Web的HTML5树组件的延迟加载技术是怎么实现的呢?不要着急,马上开始探讨。...= createData(file, parent); n.a('loaded', true); dm.add(n); }); } 如此,HT for Web的HTML5...树组件延迟加载技术就设计完成了,我在服务器的控制台打印出请求路径,看看这个延迟加载是不是真的,如下图: ?
HT for Web的HTML5树组件有延迟加载的功能,这个功能对于那些需要从服务器读取具有层级依赖关系数据时非常有用,需要获取数据的时候再向服务器发起请求,这样可减轻服务器压力,同时也减少了浏览器的等待时间...http://www.hightopo.com/guide/readme.html 进入正题,今天用来做演示的Demo是,客户端请求服务器读取系统文件目录结构,通过HT for Web的HTML5树组件显示系统文件目录结构...整体的思路是这样子的,当然这离我们要实现的树组件的延迟加载技术还有些差距,那么,HT for Web的HTML5树组件的延迟加载技术是怎么实现的呢?不要着急,马上开始探讨。...= createData(file, parent); n.a('loaded', true); dm.add(n); }); } 如此,HT for Web的HTML5...树组件延迟加载技术就设计完成了,我在服务器的控制台打印出请求路径,看看这个延迟加载是不是真的,如下图: 看吧,控制台打印的是4条记录,第一条是请求跟目录时打印的,我在浏览器中展开里三个目录,在控制台打印了其对应的目录路径
HT for Web的HTML5树组件有延迟加载的功能,这个功能对于那些需要从服务器读取具有层级依赖关系数据时非常有用,需要获取数据的时候再向服务器发起请求,这样可减轻服务器压力,同时也减少了浏览器的等待时间...进入正题,今天用来做演示的Demo是,客户端请求服务器读取系统文件目录结构,通过HT for Web的HTML5树组件显示系统文件目录结构。...整体的思路是这样子的,当然这离我们要实现的树组件的延迟加载技术还有些差距,那么,HT for Web的HTML5树组件的延迟加载技术是怎么实现的呢?不要着急,马上开始探讨。...= createData(file, parent); n.a('loaded', true); dm.add(n); }); } 如此,HT for Web的HTML5...树组件延迟加载技术就设计完成了,我在服务器的控制台打印出请求路径,看看这个延迟加载是不是真的,如下图: ?
完成的效果: image.png 树组件的目录结构: image.png 树组件的结构非常简单,仅需要一个组件即可完成。...Code是该节点的主键,即是使用树组件时判断选中了哪个节点的唯一标识。开发过程中,使用的数据结构并不一定恰好是Name和Code,因此允许开发者指定自己数据结构中对应功能的属性名。...class=“ChildNode”中为每个子节点递归调用了树组件。同样注意要把用户指定的参数名继续传递下去。...注意NodeClickEvent在递归调用树组件时,内部的节点被点击时,点击事件会一层一层的传递到最外层。...image.png 这样一个简单的树组件就封装完成了! image.png
在现在前端圈大行其道的 React 和 Vue 中,可复用的组件可能是他们大受欢迎的原因之一, 在 HT 的产品中也有组件的概念,不过在 HT 中组件的开发是依托于 HTML5 Canvas 的技术去实现的..., 也就是说如果你有过使用 Canvas 的开发经验你就可以来封装自己的组件。...下面我以一个进度环为例,来探究一下如何使用ht.js封装出一个拓扑组件。 效果图 ?...代码实现 前置知识 自定义组件 除了HT预定义的组件类型外,用户还可以自定义扩展类型,自定义有两种方式: 直接将type值设置成绘制函数:function(g, rect, comp, data...绘制组件 在绘制组件的过程中,我们需要把一些边界条件和特殊情况考虑到,来保持组件的扩展性和稳定性 下面就是一些我的心得 在做了 g 操作的头尾分别使用 save 和 restore ,以此来保障 g
首先建立一个视图组件(这里我们以 ht.graph.GraphView 为例,其余组件基本与之相同),通过调用组件的 enableToolTip() 方法可以启用 ToolTip 功能,之后创建一个测试用的...首先我们先来看一下左侧部分,由于大部分组件的在 ToolTip 上的使用方法类似,所以我们还是以 GraphView 来作为代表例子。...使用 HT UI 的 Popover 插件 UI 库是一款功能强大的界面组件库,基于 HT 核心包的优秀框架和 HTML5 先进的 Canvas 机制,具有易上手、高性能、易扩展、组件丰富、跨平台等特点...在这个例子中,添加了三个 UI 中的 Button 组件,并分别设置了三种不同的 Popover。...与前两种使用 UI 自带的组件不同,这里我们自定义了一个 ht.ui.EchartView 组件实现 Echarts 的显示功能,UI 库提供了自定义组件的功能,像上图中的 Button 也可以去自己定义
组件分享之前端组件——bootstrap-treeview 简单的tree树组件 背景 近期正在探索前端、后端、系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题,后续该专题将包含各类语言中的一些常用组件...组件基本信息 组件:bootstrap-treeview 开源协议:Apache-2.0 License 内容 本次分享的组件是用于前端开发使用的tree树组件。...下面是其开源库中的描述内容: 一个简单而优雅的解决方案来显示分层的树结构(即树视图),同时充分利用了Twitter Bootstrap所提供的最佳功能。...stylesheet"> 2、创建一个容器,作为生成的树存储位置...data; } $('#tree').treeview({data: getTree()}); 虽然前端现在已经被vue、react等占据,但仍然有一些小伙伴们仍在使用一体化开发,jsp开发等,这类前端组件文章主要就用于这类场景下的快速使用
Demo 链接:https://hightopo.com/demo/comp-knob/ 整体思路 组件参数 绘制旋钮 绘制刻度 绘制指针 绘制标尺 绘制文本 交互效果 1.组件参数 ?...到这就完成了基本的旋钮组件,下面继续做一些细节上的优化。 例如加一些阴影效果,颜色渐变,配色调整等。...', true); dm.a('rectSelectable', true); ht.Default.setCompType('knob',func); //注册组件
HT for Web(http://www.hightopo.com/guide/readme.html)提供了涵盖通用组件、2D拓扑图形组件以及3D引擎的一站式解决方案,正如Hightopo官网所表达的我们希望提供...讨论前先设定话题的边界,HT是基于HTML5的图形组件库,因此文章的案例更多会涉及HTML和JavaScript语言,但并不局限于Web前端,设计思想上同样适用于任何GUI语言平台。...因此我选择在话题展开之前,先用HT来扩展定制几个应用案例,以便大家了解HT组件及其扩展设计思路。...此例子麻雀虽小五脏俱全,三个部分分别采用三种方式实现了自定义组件,同时不同组件共享同一数据源,在呈现的基础上还支持桌面和移动端的Mouse和Touch的交互,还有不同终端屏幕的组件布局功能。...这样的问题描述完全无法定位根源,到底时后台数据库问题,网络通讯问题,解析数据问题,设置模型问题还是组件封装问题?
应用都支持树状结构数据的展示,展现效果各异,2D上的树状结构在展现层级关系明显,但是如果数据量大的话,看起来就没那么直观,找到指定的节点比较困难,而3D上的树状结构在展现上配合HT for Web的弹力布局组件会显得比较直观...所以这时候结构清晰的3D树的需求就来了,那么这个3D树具体长成啥样呢,我们来一起目睹下~ ? 要实现这样的效果,该从何下手呢?接下来我们就将这个问题拆解成若干个小问题来解决。 1....代码是这样写的: /** * 布局树 * @param {ht.Node} root - 根节点 * @param {Number} [minR] - 末端节点的最小半径 */ function...也不需要太大的改造,我们只需要修改下布局器并且将2D拓扑组件改成3D拓扑组件就可以了。...提个外话,节点上可以贴上图片,还可以设置文字的朝向,可以根据用户的视角动态调整位置,等等一系列的拓展,这些大家都可以去尝试,相信都可以做出一个很漂亮的3D树出来。
但,我还是不喜欢DOM上太重都是元素,不喜欢庞大包罗万象搞得没有一家能完美实现的标准,另外用XML、Flex的MXML或Sliverlgiht/WPF的XAML来描述图形实在是笨重不灵活,基于HTML5...sunrise', rect: [120, 80, 120, 80] } ] }); 如上代码注册了一个名为'group-sunrise'的新矢量,其由四部分组件...因此HT for Web不仅定义矢量格式、实现了矢量绘制,还提供了矢量编辑工具设计器,用户拖拖拽拽就能绘制出矢量图形,然后导出JSON,注册到HT之后即可使用到所有的HT组件上,注意哦:是所有组件,不仅仅是拓扑...、不仅仅是3D、还有所有通用组件: ?...Cavnas的2D孰优孰劣争论,SVG的确也有highcharts这样不错应用的案例,HT成功实现所有组件采用Canvas设计,而Sencha和Kendoui等流行的通用组件都采用DOM方式堆积也发展的不错
更好的方法:组件树模式 使用这种方法,您的重点是拥有命名良好的组件,这些组件隐式地解释了它们的组成,而不用特意对具有不同名称的组件组进行分类。... ) 优点#1:明显的子组件关系 组件树模式消除了猜测;组件之间的关系立即变得清晰明了。...考虑到可重用性,组件树有助于避免这种无效的二元思维。...优点#3:尽量减少命名 由于您有组件树,因此不需要将目录名分类在组件名之上。组件名称是分类,当您看到组件由哪些内部组件组成时,为组件确定好的名称也会更容易。...在解释了结构之后,我让ChatGPT在左列生成“平面”目录结构,在右边生成我称为“组件树”的结构。
今天我们就来实现一把自定义HTML5表格组件的Renderer和Editor,为了更直观地演示编辑效果,我们正好利用HT for Web强大的HTML5拓扑图组件 首先来瞧瞧效果: ?...按照HT for Web组件的设计惯例,我们需要创建一个Div作为view,在view中包含一个canvas元素,组件内容在canvas上绘制; 2. editor需要与用户有交互,因此,需要在view...用户通过拖拉组件可以改变角度,这个改变是连续的,而且在拖拉的时候有可能鼠标会离开组件区域,要实现离开组件区域也能够正确的改变值,那么这时候就需要调用HT for Web的startDragging()方法...这些就是组件绘制的所有逻辑,但是有一点必须注意,在绘制完组件后,必须调用下restore()方法,因为在initContext()方法中做了一次save()操作,接下来看看具体实现(代码有些长); setValue...原因很简单,就如第3点种提到的,用户在拖拉组件的时候,有可能拖离了组件区域,这时候只能通过window上的mousemove及mouseup两个事件监听令用户继续操作; // 监听window的mousemove
今天我们就来实现一把自定义HTML5表格组件的Renderer和Editor,为了更直观地演示编辑效果,我们正好利用HT for Web强大的HTML5拓扑图组件 首先来瞧瞧效果: ?...按照HT for Web组件的设计惯例,我们需要创建一个Div作为view,在view中包含一个canvas元素,组件内容在canvas上绘制; 2. editor需要与用户有交互,因此,需要在...用户通过拖拉组件可以改变角度,这个改变是连续的,而且在拖拉的时候有可能鼠标会离开组件区域,要实现离开组件区域也能够正确的改变值,那么这时候就需要调用HT for Web的startDragging()方法...这些就是组件绘制的所有逻辑,但是有一点必须注意,在绘制完组件后,必须调用下restore()方法,因为在initContext()方法中做了一次save()操作,接下来看看具体实现(代码有些长); setValue...原因很简单,就如第3点种提到的,用户在拖拉组件的时候,有可能拖离了组件区域,这时候只能通过window上的mousemove及mouseup两个事件监听令用户继续操作; // 监听window的mousemove
案例展示 案例效果,如下图所示: 了解 和 标签 HTML5 引入了很多新的标签,其中就包括 和 标签。...CSS 部分 接下来是 CSS 样式部分,用于美化我们的 Accordion 组件: html { font-size: 16px; font-family: "Poppins"; }...; position: absolute; right: 1rem; transition: all 150ms ease-out; } 这些样式定义了 Accordion 组件的外观
js与H5 canvas实现动态旋转圣诞树 效果图: 源代码 var collapsed
小程序与传统HTML5的区别 小程序刚开放公测,互联网圈内开始了各种解读和猜测。其中有观点认为小程序和HTML5有着紧密关联,甚至小程序就是基于HTML5开发。...组件封装不同。 小程序独立出来了很多原生APP的组件,在HTML5需要模拟才能实现的功能,小程序里可以直接调用组件。 【如果大家对程序员,web前端感兴趣,想要学习的,关注一下小编吧。...or这里需要注意的是:所有组件与属性都是小写,以连字符-连接。...这里小程序废弃了select组件,考虑到的是这个组件的交互不适合移动场景,最终用picker代替了。...,从体验和页面流畅度来说,都会比HTML5要优秀很多。
下面我们就用递归来完成vue中的组件递归。也将认识到组件的递归,实际上就是数据递归的外在形式。所以我们完成组件的递归,最重要的还是定义好可以递归的数据结构。Here we go....下面我们在VueJS里创建一个递归树组件,完整的Demo请戳这里 创建一个树组件 树组件的结构可以想像成文件目录 + 根目录 + 目录A + 目录A1 + 目录B 可以把文件目录理解成树...(Tree),目录就是树的节点(Node)。...树总是有一个根节点,从根节点上进行某一操作,找到子节点,重复同一操作,直到叶子节点(没有子节点的节点)。...name为node,然后组件里面用到了node自身,但是不需要在components里显式引用。
领取专属 10元无门槛券
手把手带您无忧上云