[置顶] JS UI自己搞2 -- 构建简单的UI组件

基于Tauri2.0与VUE3的桌面应用框架设计与窗口置顶功能实战 本文详细介绍了基于Tauri2.0与VUE3构建现代化桌面应用的完整流程。通过实战演示如何搭建项目框架、设计应用布局、实现自定义标题栏,并重点讲解了窗口置顶功能的实现方法,包括权限配置与状态同步,帮助开发者高效开发高性能、小体积的跨平台桌面应用。 阅读详情

这里贴出修改后的JS代码,其它的代码见 第一节内容.

 

新增了 动态创建HTML元素的功能,动态对其赋CSS属性的功能. 新增一个helloworld的例子: 尚未完成.

 

现在有事 暂贴这些代码.

 

对第一节中html文件的修改处为 <body id='body'>,新增了一个id属性

 

Object.extend = function(distObject, souceObject) {
	for (var property in souceObject) {
		distObject[property] = souceObject[property];
	}
	return distObject;
}

//定义全局对象
if(typeof BJExtreme == 'undefined')
	BJExtreme =  function(){} ;

BJExtreme.log = nitobi.Debug.log ;

/*自定义的Dom*/
BJExtreme.Dom = {} ;

BJExtreme.Dom.$ = function(id){
	return document.getElementById(id);
}
BJExtreme.Dom.$name = function(name){
	return document.getElementsByTagName(name);
}
/**
 * 创建HTML元素,并连接到父元素中
 * @param {} elehtml
 * @param {} id
 * @param {} parentid
 */
BJExtreme.Dom.$c = function(elehtml,id,parentid){
	var ele = document.createElement(elehtml);
	ele.setAttribute('id',id);
	BJExtreme.Dom.$(parentid).appendChild(ele);
	ele = null ;
}


/**
 * 元素效果渲染功能区域
 * @type {}
 */
BJExtreme.EleHtml = {} ;

/**
 * 对指定id元素,冲入CSS元素,要注意的是在css属性出现连字符时
 * 将后面的首字母改为大写,并且去掉连字符. 例如:
 * margin-top 写成 marginTop
 * 
 * @param {} id
 * @param {} cssobj
 */
BJExtreme.EleHtml.css = function(id,cssobj){
	//HTML元素的style属性是个数组
	for (var property in cssobj) {
		BJExtreme.Dom.$(id).style[property] = cssobj[property];
	}
}


/**
 * 隐藏和显示HTML元素
 * @param {} id
 */
BJExtreme.EleHtml.hide = function(id){
	BJExtreme.EleHtml.css(id,{display:'none'});
}
BJExtreme.EleHtml.show = function(id){
	BJExtreme.EleHtml.css(id,{display:''});
}

BJExtreme.EleHtml.text = function(id,text){
	if ( text == undefined||text == '')
		return BJExtreme.Dom.$(id).innerText;
	BJExtreme.Dom.$(id).innerText = text;
}

BJExtreme.EleHtml.html = function(id,html){
	if ( html == undefined||html == '')
		return BJExtreme.Dom.$(id).innerHTML;
	BJExtreme.Dom.$(id).innerHTML = html;
}
/**
 * 设置HTML元素的宽高
 * @param {} id
 * @param {} width
 * @param {} height
 */
BJExtreme.EleHtml.setW$H = function(id,w,h){
	BJExtreme.EleHtml.css(id,{width:w,height:h});
}

/**
 * 仅对 position: absolute;的元素有效
 * 
 * 对于使用JS操作CSS时,如果使用的属性有连字符,后面那个大写
 * margin-top 写出 marginTop 
 * @param {} id
 */
BJExtreme.EleHtml.setAbsoluteCenter = function(id){
	var sfid = BJExtreme.Dom.$(id);
	BJExtreme.EleHtml.css(id,{
		position:'absolute',
		top:'50%',
		left: '50%',
		marginTop: (-(sfid.clientHeight / 2)) + 'px' ,
		marginLeft: (-(sfid.clientWidth / 2)) + 'px'
	});
	sfid = null ;
}


//UI控件区域
BJExtreme.WebUI = {} ;

BJExtreme.WebUI.popHelloWorld = function(){
	BJExtreme.Dom.$c('div','helloworld','body');
	BJExtreme.EleHtml.css('helloworld',{
		width:"400px",height:"200px",backgroundColor: 'pink'		
	});
	BJExtreme.EleHtml.setAbsoluteCenter('helloworld');
	
	
	BJExtreme.EleHtml.text('helloworld','你好,世界');
	
	
}
BJExtreme.WebUI.popHelloWorld();

//Test -- 区域
BJExtreme.Test = {} ;

BJExtreme.Test.$c = function(){
	BJExtreme.Dom.$c('p','exap','container');
	BJExtreme.EleHtml.html('exap','大家好啊');
}

BJExtreme.Test.show = function(){
	BJExtreme.EleHtml.show('container');
}
BJExtreme.Test.hide = function(){
	BJExtreme.EleHtml.hide('container');
}
BJExtreme.Test.setAbsoluteCenter = function(){
	BJExtreme.EleHtml.setW$H('container1',"200px","600px")
	BJExtreme.EleHtml.setAbsoluteCenter('container1');
}

BJExtreme.Test.$c();
BJExtreme.Test.hide();
BJExtreme.Test.show();

BJExtreme.Test.setAbsoluteCenter();

 

 

  • 大小: 36.6 KB
  • 大小: 19.1 KB
基于shadcn/ui与Tailwind CSS构建Neobrutalism风格React组件库 在现代前端开发中,组件库是提升开发效率、保证设计一致性的关键技术方案。其核心原理在于通过封装可复用的UI元素,将设计语言系统化地转化为代码。从技术价值看,优秀的组件库不仅能加速项目构建,更能实现设计系统的高效落地。shadcn/ui以其独特的“代码即依赖”理念,结合Tailwind CSS的实用优先范式,为定制化设计风格提供了理想的技术基础。这一组合特别适合实现Neobrutalism这类强调粗犷边框、硬朗阴影和高饱和度配色的数字设计风格。通过定义设计令牌、覆写组件变体,开发者可以快速构建个性鲜明的界面,满 阅读详情

相关推荐

Tauri2.0+Vue3实战:如何快速搭建一个带置顶功能的桌面应用(附完整代码)

本文详细介绍了如何使用Tauri2.0与Vue3框架快速构建一个现代化桌面应用,重点讲解了如何实现系统级的窗口置顶功能。通过从环境搭建、项目初始化、核心框架设计到系统交互集成的完整流程,提供了完整的代码示例,帮助开发者掌握利用Web技术栈开发轻量级、高性能桌面应用的关键技术。

weixin_27945229的博客 314

JS UI组件

常用 javascript UI 组件

yuanchun的知识整理 3655

UI框架源码

可用于ui界面的设计,将此工程导入Unity以后,即可使用

[autojs]用户界面GUI编程

布局(Layout)则是装着一个或多个控件的”容器”,用于控制在他里面的控件的位置,比如垂直布局(vertical)会把他里面的控件从上往下依次显示(即纵向排列),水平布局(horizontal)则会把他里面的控件从左往右依次显示(即横向排列),以及帧布局(frame),他会把他里面的控件直接在左上角显示,如果有多个控件,后面的控件会重叠在前面的控件上。水平布局是一种比较简单的布局,会把在它里面的控件按照水平方向依次摆放,如下图所示: 水平布局: ————————————————————————————

FL1623863129的博客 3982

PPPoE上网配置不求人:华为路由器命令行操作指南(2023最新版)

本文提供2023年最新的华为路由器PPPoE上网配置命令行操作指南。通过详细的步骤讲解,从连接设备、创建拨号接口、绑定PPPoE客户端到配置内网与NAT,手把手教你完成配置,并附有验证排错方法,助你轻松实现稳定上网。

s4t5u6v的博客 679

手把手教你用DCA1000和mmWave Studio 2.0采集AWR1843雷达数据(附驱动安装与常见报错排查)

本文详细介绍了使用DCA1000和mmWave Studio 2.0采集AWR1843毫米波雷达数据的全流程指南,包括硬件连接、驱动安装、软件配置及常见报错排查。通过实战经验分享,帮助开发者快速掌握数据采集技巧,优化雷达参数配置,提升数据质量与采集效率。

weixin_30070339的博客 332

如何使用JS构建复杂的UI--笔记

本文的主旨在于如何设计复杂UI组件。 本文以使用JavaScript实现一个轮播图为栗子。由最基础的实现,到后面的优化都会介绍。 slider包括三个部分:放置图片的主体(ul),控制小圆点及向前向后的按钮。效果图如下: 我们要做一个轮播(slider)组件,应该有两个步骤 结构设计 列表结构(图片是一个列表型结构,所以主体用<ul>) css 绝对定位(使用css...

一只胖胖胖miao 741

DC Error: The power pin VDD on the cell UASA1/CG_X8_Rdsd2pcm is unconnected. (UPF-581)

【代码】DC Error: The power pin VDD on the cell UASA1/CG_X8_Rdsd2pcm is unconnected. (UPF-581)

baidu_34971492的博客 969

JavaScript UI 组件库详细介绍

</h1>

东城十三 2344

《拉依达的嵌入式\驱动面试宝典》—操作系统篇(二)

《拉依达的嵌入式\驱动面试宝典》 整合了所有我认为可能遇到的技术面试问题。所有问题及其答案均是我个人学习后查阅资料总结,每个回答都做了仔细的分析,在嵌入式及其驱动面试相关问题解析做到全网独一无二。学习或者转行到嵌入式、驱动开发领域学习的不二之选

拉依达不拉跨的博客 471

Python爬虫教程:微博热点话题抓取与社交媒体分析

微博是中国最大的社交媒体平台之一,拥有海量的用户和丰富的讨论话题。通过爬取微博的热门话题和讨论内容,我们可以深入分析用户的兴趣、舆论走势、社会情绪等。通过爬取微博的热点话题和讨论内容,我们可以获得关于当前热门话题的宝贵数据,并基于这些数据进行多种社交媒体分析。本文将通过Python爬虫技术,详细介绍如何抓取微博上的热门话题、话题讨论内容,并进行社交媒体分析。希望本文为你提供了一个全面的微博数据抓取与分析的指南,帮助你在社交媒体数据分析的道路上迈出坚实的第一步。微博上的一些页面内容是静态的,可以直接通过。

2201_76125261的博客 590

CH6- JS UI前端开发

文章目录前言目标1.JS前端开发基础JS FA的使用AceAbility如何加载JS FAJS FA开发目录2.—个典型JS FA应用开发构建页面结构构建页面样式构建页面逻辑适配设备类型3.构建用户界面组件通用特性组件通用属性组件通用样式组件通用事件list组件**tabs组件**dialog组件form组件4.动画静态动画连续动画5.用户交互手势事件触摸按键事件多模输入处理按钮事件6.自定义组件构建引用运行结果7.JS FA调用PA两种PA调用方式FA调用PA常见问题示例:JS端PA端(Ability方式

weixin_46227276的博客 2264

如何用 Claude Code 阅读和理解陌生代码

摘要: 在接手陌生代码时,Claude Code能显著提升理解效率。核心策略是结构化拆解而非逐行阅读: 从整体入手:先扫描目录结构、定位核心模块,建立项目地图; 聚焦关键路径:通过数据流追踪、异常逻辑分析,识别技术债与风险点; 规避常见错误:避免抽象提问或一次性提交全部代码,应分模块精准提问; 高阶应用:可生成逻辑分层图、标记高复杂度区域,甚至定制阅读顺序。 最终目标是通过结构优先的提问策略,将理解周期从数天压缩至数小时。

sg_knight的专栏 1020

Video.js控制条魔改指南:从进度条置顶到自定义播放速率按钮

本文深入解析Video.js播放器控制条的组件化架构,提供从进度条置顶到自定义播放速率按钮的实战魔改指南。通过组件树重组与自定义组件开发,实现非标准UI布局,并解决控件层级与事件同步等高级定制难题,帮助前端开发者打造独特且稳健的视频播放体验。

lg888的博客 801

【AI大模型应用开发】【LlamaIndex教程】2. 存储模块:如何在 LlamaIndex 中使用自定义的向量数据库?(附代码)

前面文章两行代码就实现了文档的切分和向量化存储以及持久化存储。如果我们想用自定义的向量化数据库呢?

同学小张的博客 2117

【人工智能 Open AI】程序员怎样提升研发效率?从技术、业务、项目管理等等多个方面来阐述。

程序员要想提升研发效率,需要从技术、业务、项目管理等多方面着手,多靠工具配合实践实现,从而提升研发效率。

AI天才研究院 5526

彻底解决!LayUI fixbar组件指定scroll时top置顶失效的3个关键方案

你是否在使用LayUI的fixbar组件时遇到过这样的问题:明明配置了scroll参数,可点击top按钮却无法让指定容器置顶?别担心,本文将从组件原理出发,通过3个实战方案帮你彻底解决这个棘手问题,让你的回到顶部功能精准响应。 ## 问题根源:scroll参数的认知误区 fixbar组件的top置顶功能失效,90%的原因是对`scroll`参数的理解不到位。根据官方文档[docs/fixbar...

gitblog_01127的博客 489

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

vue + element-ui 穿梭框+上下移动、置顶置底功能

vue + element-ui 穿梭框+上下移动、置顶置底功能

weixin_47909226的博客 1854

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

[置顶] 为自己的JS库 moogens 增加 facebox 组件

之前的JS慢慢积累下来慢慢也就自己完善了个,比之前的__init_xu 要减小的多,主要代码仅仅包括如下几个部分:   简单去除注释压缩后在 9K左右,基本都全了 呵呵,比如DOM操作     事件操作:   做了个简单UI开发设想... 名字暂定为 mgui,在global.js 中暂时就这些代码: (function() { /** * MGUI for

vb2005xu的专栏 242

uniapp,vue2 置顶功能实现,默认右边半隐藏,点击一次移出来,点击二次置顶,一段时间不操隐藏

置顶功能实现,默认右边半隐藏,点击一次移出来,点击二次置顶,一段时间不操隐藏。

PrimaryColor 396

控制数据是否置顶按钮

是否置顶

七七的博客 147

Vue 2.0组件设计-表单分页

表单分页在后台管理系统中最为常见,几乎所有的表格页面都会用到,但是一般的UI框架分页组件在点击切换分页后,都没有自动滚动置顶的功能,为了更好的用户体验以及全局复用,有必要自己封装一个分页组件。

分享前端工程化、AI 应用、Agent 开发与大模型实践! 743

vue2+elementUI table表格勾选行冻结/置顶

本文介绍了一个Vue组件PinnedSelectTable.vue,实现了一个带固定选择功能的表格组件。该组件主要特点包括: 支持多选功能,通过复选框选择行数据,并可设置最大选择数量限制 提供跨页选择保留功能,已选数据会缓存到selectedRowCache中 表格数据自动按选中状态排序显示,已选行显示在前 底部固定操作栏,提供"取消合并"和"确认合并"按钮 支持自定义列渲染,可通过插槽方式覆盖默认显示 实现了v-model双向绑定,支持value/change事件

cnsv的博客 320

[置顶] 为自己的JS库 moogens 增加 简易矩形 组件 -- 改进版本

看了 http://www.iteye.com/topic/610962 好东西啊 把它写成自己的吧.... 今天先做个基本版 明天回家优化...   先看图效果 :             谢谢 cjx186 的好东西啊....   代码如下:   (function(){var d={height:"1px","font-size":"1px",ove

vb2005xu的专栏 313

LobeChat能否实现对话置顶?重要会话管理技巧

本文介绍如何在LobeChat中通过pinned字段和排序逻辑实现对话置顶功能,利用其开放架构与插件系统进行会话管理,提升重要对话的可见性与工作效率,适用于个人与团队的知识沉淀与协作场景。

weixin_34618526的博客 631

iview实战 : 树形组件自定义

Tree树形组件是iview 中相对复杂的一个组件。 自定义节点内容 使用强大的 Render 函数可以自定义节点显示内容和交互,比如添加图标,按钮等。     ——官方文档 但官方的 example 只有增和删的功能,而我想加置顶和修改名字的功能。 上代码: Helloworld.vue <template> ...

weixin_30773135的博客 1341
上一篇: [置顶] jquery选择器的调试 -- 使用其他的日志工具
下一篇: [置顶] 隐藏apache和php的版本信息
许一沐
博客等级 码龄21年 18粉丝 649原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值