HTML代码(wxml)
{{item.name}}
CSS(less):
.nav-bar{ position: relative; z-index: 10; height: 90upx; white-space: nowrap; background-color: #fbfbfb; .nav-item{ display: inline-block; width: 150upx; height: 90upx; text-align: center; line-height: 90upx; font-size: 30upx; color: #a4a4a4; position: relative; } .current{ color: #3f3f3f; font-weight: bold; } }
实现效果大致为这样的:
PS: 以上为纯CSS实现部分,如果项目 tab数量 为通过接口动态获取的,可以适当加入一些 js 计算。
JS 思路:
大致为(以微信小程序为例):
let width=0; // 当前选中选项卡及它之前的选项卡之和总宽度 let nowWidth=0; // 当前选项卡的宽度 //获取可滑动总宽度 for (let i=0; i <=index; i++) { let result=await this.getElSize('tab' + i); width +=result.width; if(i===index){ nowWidth=result.width; } } // console.log(width, nowWidth, windowWidth) //等待swiper动画结束再修改tabbar this.$nextTick(()=> { if (width - nowWidth/2 > windowWidth / 2) { //如果当前项越过中心点,将其放在屏幕中心 this.scrollLeft=width - nowWidth/2 - windowWidth / 2; console.log(this.scrollLeft) }else{ this.scrollLeft=0; } if(typeof e==='object'){ this.tabCurrentIndex=index; } this.tabCurrentIndex=index; })
ps: getElSize() 函数代码为:
getElSize(id) { return new Promise((res, rej)=> { let el=uni.createSelectorQuery().select('#' + id); el.fields({ size: true, scrollOffset: true, rect: true }, (data)=> { res(data); }).exec(); }); },
这样就可以实现动态 tab 切换了:
插件安装方式,ctrl+shift+p输入install packages
CSS3:支持CSS3里的语法高亮。(Sublime3里自带的CSS高亮不够用)。安装后, 打开一个CSS文件,然后按照下面GIF操作,将CSS3高亮作为CSS文件的默认高亮。
livestyle:调试后实时更新页面。安装这个还需要安装谷歌的插件。
Emmet:快速生成代码,用过h5build的应该知道。ul*li*3相当于:
<ul><li></li><li></li><li></li></ul>
记下语法就ok.
ConvertToUTF8:编码转utf8
CSScomb:css属性排序
html5:html规范包,输入html+tab生成html规范文档
Alignment:代码对齐,快捷键ctrl alt a
Autoprefixer插件:css3私有前缀自动补全插件
AutoFileName:自动完成文件名的输入,如图片选取,快捷输入文件名路径补全
less sass插件
JsFormat js格式化插件
Terminal 命令行插件
Minify 代码美化压缩插件
Color Highlighter 颜色选择插件
Ctrl+D 选中光标所占的文本,继续操作则会选中下一个相同的文本。
Alt+F3 选中文本按下快捷键,即可一次性选择全部的相同文本进行同时编辑。举个栗子:快速选中并更改所有相同的变量名、函数名等。
Ctrl+L 选中整行,继续操作则继续选择下一行,效果和 Shift+↓ 效果一样。
Ctrl+Shift+L 先选中多行,再按下快捷键,会在每行行尾插入光标,即可同时编辑这些行。
Ctrl+Shift+M 选择括号内的内容(继续选择父括号)。举个栗子:快速选中删除函数中的代码,重写函数体代码或重写括号内里的内容。
Ctrl+M 光标移动至括号内结束或开始的位置。
Ctrl+Enter 在下一行插入新行。举个栗子:即使光标不在行尾,也能快速向下插入一行。
Ctrl+Shift+Enter 在上一行插入新行。举个栗子:即使光标不在行首,也能快速向上插入一行。
Ctrl+Shift+[ 选中代码,按下快捷键,折叠代码。
Ctrl+Shift+] 选中代码,按下快捷键,展开代码。
Ctrl+K+0 展开所有折叠代码。
Ctrl+← 向左单位性地移动光标,快速移动光标。
Ctrl+→ 向右单位性地移动光标,快速移动光标。
shift+↑ 向上选中多行。
shift+↓ 向下选中多行。
Shift+← 向左选中文本。
Shift+→ 向右选中文本。
Ctrl+Shift+← 向左单位性地选中文本。
Ctrl+Shift+→ 向右单位性地选中文本。
Ctrl+Shift+↑ 将光标所在行和上一行代码互换(将光标所在行插入到上一行之前)。
Ctrl+Shift+↓ 将光标所在行和下一行代码互换(将光标所在行插入到下一行之后)。
Ctrl+Alt+↑ 向上添加多行光标,可同时编辑多行。
Ctrl+Alt+↓ 向下添加多行光标,可同时编辑多行。
Ctrl+J 合并选中的多行代码为一行。举个栗子:将多行格式的CSS属性合并为一行。
Ctrl+Shift+D 复制光标所在整行,插入到下一行。
Tab 向右缩进。
Shift+Tab 向左缩进。
Ctrl+K+K 从光标处开始删除代码至行尾。
Ctrl+Shift+K 删除整行。
Ctrl+/ 注释单行。
Ctrl+Shift+/ 注释多行。
Ctrl+K+U 转换大写。
Ctrl+K+L 转换小写。
Ctrl+Z 撤销。
Ctrl+Y 恢复撤销。
Ctrl+U 软撤销,感觉和 Gtrl+Z 一样。
Ctrl+F2 设置书签
Ctrl+T 左右字母互换。
F6 单词检测拼写
Ctrl+F 打开底部搜索框,查找关键字。
Ctrl+shift+F 在文件夹内查找,与普通编辑器不同的地方是sublime允许添加多个文件夹进行查找,略高端,未研究。
Ctrl+P 打开搜索框。举个栗子:1、输入当前项目中的文件名,快速搜索文件,2、输入@和关键字,查找文件中函数名,3、输入:和数字,跳转到文件中该行代码,4、输入#和关键字,查找变量名。
Ctrl+G 打开搜索框,自动带:,输入数字跳转到该行代码。举个栗子:在页面代码比较长的文件中快速定位。
Ctrl+R 打开搜索框,自动带@,输入关键字,查找文件中的函数名。举个栗子:在函数较多的页面快速查找某个函数。
Ctrl+: 打开搜索框,自动带#,输入关键字,查找文件中的变量名、属性名等。
Ctrl+Shift+P 打开命令框。场景栗子:打开命名框,输入关键字,调用sublime text或插件的功能,例如使用package安装插件。
Esc 退出光标多行选择,退出搜索框,命令框等。
Ctrl+Tab 按文件浏览过的顺序,切换当前窗口的标签页。
Ctrl+PageDown 向左切换当前窗口的标签页。
Ctrl+PageUp 向右切换当前窗口的标签页。
Alt+Shift+1 窗口分屏,恢复默认1屏(非小键盘的数字)
Alt+Shift+2 左右分屏-2列
Alt+Shift+3 左右分屏-3列
Alt+Shift+4 左右分屏-4列
Alt+Shift+5 等分4屏
Alt+Shift+8 垂直分屏-2屏
Alt+Shift+9 垂直分屏-3屏
Ctrl+K+B 开启/关闭侧边栏。
F11 全屏模式
Shift+F11 免打扰模式
蒙 ArkTS(HarmonyOS ArkTS)是适用于鸿蒙操作系统(HarmonyOS)的 TypeScript 开发框架。在鸿蒙 ArkTS 中实现动态添加 `tabcontent` 的功能,与在 Unity 中使用 ArkTS 的过程类似,都需要通过编程来控制用户界面的显示。
以下是一个基于鸿蒙 ArkTS 的简单示例,用于动态添加 `tabcontent`:
1. **定义Tab组件**:首先,你需要定义一个Tab组件,用于表示每个Tab页。这个组件应该包含所有你希望在Tab页上展示的内容。
2. **创建Tab容器**:在ArkTS中,你可以创建一个容器来管理所有的Tab页面。这个容器可以是一个简单的StackPanel或者Grid,用于排列所有的Tab内容。
3. **动态添加Tab内容**:通过编程的方式,你可以根据需要动态地创建Tab组件,并将其添加到Tab容器中。
下面是一个简化的ArkTS TypeScript示例代码,说明如何实现动态添加Tab内容的逻辑:
import { Component, Prop, h } from '@akeros/arkts';
@Component
export class TabContent extends HTMLElement {
@Prop() tabId: string;
@Prop() content: string;
constructor(private host: HTMLElement) {
super();
this.render();
}
render() {
this.innerHTML=`
<div class="tab-content">
<h2>${this.content}</h2>
</div>
`;
}
}
@Component
export class TabController extends HTMLElement {
private tabs: Map<string, TabContent>=new Map();
addTab(tabId: string, content: string) {
const tabContent=new TabContent(this.host);
tabContent.tabId=tabId;
tabContent.content=content;
this.tabs.set(tabId, tabContent);
this.host.appendChild(tabContent);
}
updateTab(tabId: string, newContent: string) {
const tabContent=this.tabs.get(tabId);
if (tabContent) {
tabContent.content=newContent;
tabContent.render();
}
}
removeTab(tabId: string) {
const tabContent=this.tabs.get(tabId);
if (tabContent) {
tabContent.remove();
this.tabs.delete(tabId);
}
}
}
在这个示例中,`TabContent` 组件用于表示单个Tab的内容,而 `TabController` 组件则负责管理所有的Tab页面。`addTab` 方法用于添加新的Tab内容,`updateTab` 方法用于更新现有Tab的内容,而 `removeTab` 方法则用于删除不再需要的Tab。
请注意,这个代码示例是一个简化的版本,用于说明如何在鸿蒙 ArkTS 中动态添加和更新Tab内容。在实际应用中,你可能需要根据具体的鸿蒙 ArkTS 版本和项目需求来调整代码。
在鸿蒙 ArkTS 项目中,你可以通过调用 `TabController` 组件的方法来动态地添加、更新或删除Tab内容,从而实现灵活的用户界面管理。
*请认真填写需求信息,我们会在24小时内与您取得联系。