Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
hello uni-app x
提交
e958fde6
H
hello uni-app x
项目概览
DCloud
/
hello uni-app x
通知
5998
Star
91
Fork
163
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
18
列表
看板
标记
里程碑
合并请求
1
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
H
hello uni-app x
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
18
Issue
18
列表
看板
标记
里程碑
合并请求
1
合并请求
1
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
e958fde6
编写于
9月 18, 2023
作者:
H
hdx
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
custom-tab-bar: 凹槽更改为图片实现
上级
01395aaf
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
12 addition
and
44 deletion
+12
-44
pages/template/custom-tab-bar2/custom-tab-bar2.uvue
pages/template/custom-tab-bar2/custom-tab-bar2.uvue
+12
-44
static/template/custom-tab-bar2/concave.png
static/template/custom-tab-bar2/concave.png
+0
-0
未找到文件。
pages/template/custom-tab-bar2/custom-tab-bar2.uvue
浏览文件 @
e958fde6
...
...
@@ -14,7 +14,8 @@
</text>
</view>
</view>
<view class="tab-item">
<view>
<image class="concave-image" src="/static/template/custom-tab-bar2/concave.png"></image>
<view class="btn-plus">
<text class="btn-plus-text">+</text>
</view>
...
...
@@ -56,18 +57,11 @@
init: false
} as TabItem,
] as TabItem[],
selectedIndex: -1,
$tabBarNode: null as null | Element,
$tabBarWidth: 0,
$drawContext: null as null | DrawableContext,
selectedIndex: -1
}
},
onReady() {
this.setSelectedIndex(0)
this.$tabBarNode = this.$refs['tabbar'] as Element
this.$tabBarWidth = this.$tabBarNode?.offsetWidth as number
this.$drawContext = this.$tabBarNode!.getDrawableContext()
this._renderTabbar()
},
methods: {
onTabClick(index : number) {
...
...
@@ -89,40 +83,6 @@
this.tabList[index].init = true
}
this.selectedIndex = index
},
_renderTabbar() {
const ctx = this.$drawContext!
ctx.reset()
const plus_radius = 40
const plus_offset = 8
const center = this.$tabBarWidth / 2
const plus_x1 = center - plus_radius - plus_offset
const plus_x2 = center + plus_radius + plus_offset
const center_x = center
const center_y = plus_radius
const control_o = 15
const control_x = 4.8
const control_y = 4.4
ctx.fillStyle = "dodgerblue"
ctx.beginPath()
ctx.moveTo(0, 0)
ctx.lineTo(plus_x1, 0)
ctx.bezierCurveTo(plus_x1 + control_o, 0, plus_x1 + control_x, center_y - control_y, center, center_y)
ctx.bezierCurveTo(plus_x2 - control_x, center_y - control_y, plus_x2 - control_o, 0, plus_x2, 0)
ctx.lineTo(plus_x2, 0)
ctx.lineTo(this.$tabBarWidth, 0)
ctx.lineTo(this.$tabBarWidth, 52)
ctx.lineTo(0, 52)
ctx.lineTo(0, 0)
ctx.stroke()
ctx.fill()
ctx.update()
}
}
}
...
...
@@ -163,6 +123,7 @@
.tab-item {
flex: 1;
position: relative;
background-color: #1e90ff;
overflow: visible;
}
...
...
@@ -187,7 +148,14 @@
color: #fff;
}
.concave-image {
width: 115px;
height: 56px;
}
.btn-plus {
position: absolute;
left: 23px;
width: 70px;
height: 70px;
border-radius: 50px;
...
...
@@ -205,4 +173,4 @@
color: #fff;
font-size: 32px;
}
</style>
\ No newline at end of file
</style>
static/template/custom-tab-bar2/concave.png
0 → 100644
浏览文件 @
e958fde6
1.1 KB
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录