平台兼容性
特别说明
组件在微信小程序开发工具、ios微信小程序编译预览均显示正常。其他使用环境未作测试支持。
组件名称:
glance 顶吸滑动导航组件
glance-SlideNavTabBar
组件功能:
- 可选的顶吸定义:启用后到达距离指定位置时自动固定位置实现顶吸效果
- 可选的顶吸距离定义:设置组件距离窗口顶部距离多少时启用顶吸效果
- 可选的组件标签属性定义:位置颜色、大小;下划线颜色、高、宽;点击栏位时文字颜色
- 组件默认效果:默认属性;默认点击导航栏位时文字放大1.1倍效果
- 交互方法:组件栏位点击后触发clickitem方法,传递给父组件点击的组件栏位索引位内容;可用于父组件操作业务数据展示
说明:
组件使用
HBuilderX
并基于uniapp组件scroll-view
开发
版本
版本号 | 更新内容 | 待处理 | 备注 | v 1.1 | * 模板样式微调 * 修复微信小程序内无顶吸效果的问题;添加-web-sticky属性值 * 点击项目时,添加滚动到过渡:使用scroll-into-view * 添加备注 | 样式规范与精简 |
组件属性:
属性 | 值类型 | 值示例 | 默认值 | 备注 |
bgcolor | String: hex颜色值 | #ffffff | #ffffff | 导航栏底色 |
topfixed | Boolean:true or false | true | false | 默认false 关闭顶吸;此属性需要与topfixedval配合使用 |
topfixedval | String:'0px' | '0' | '0' | 设置距离顶部距离时顶吸 此属性需要与topfixed配合使用 |
fontsize | String:'15px' | '13px' | '13px' | 导航栏文字大小 |
textcolor | String:hex颜色值 | #999999 | #999999 | 导航栏文字颜色 |
activetextcolor | String:hex颜色值 | #000000 | #000000 | 活动的导航栏文字颜色 |
underlinecolor | String:hex颜色值 | #6495ED | #6495ED | 下滑线颜色 |
underlineheight | String:'10px' | '10rpx' | '10rpx' | 下滑线高度 可百分比 |
underlinewidth | String:'10px' | '10rpx' | '35%' | 下滑线高度 可百分比 |
clickitem | 事件: 点击导航栏时触发;传递参数为当前活动的导航栏索引位 index和栏位文本内容value;其中value值可用作刷新展示数据的key | 父组件接收事件处理:clickitem(idx,val){ uni.showToast({ title: '点击了:' + val }) } |
使用步骤:
1、在vue页面内引入组件(组件放在项目目录下的components目录下),位置<script>
:
import glanceSlideNavTabBar from '@/components/glance-SlideNavTabBar.vue';
2、组件引用;位置<export default>
:
components: { glanceSlideNavTabBar},
3、在模板中需要使用组件的位置,添加组件;位置<template>
:
<!-- glance 滑动导航栏组件 -->
<glanceSlideNavTabBar
topfixedval='0px'
:topfixed=true
@clickitem="clickitem"
:data = "[{textcontent:'爆款爆款'},
{textcontent:'包邮'},
{textcontent:'3折'},
{textcontent:'2人团'}]">
</glanceSlideNavTabBar>
4、与父组件间的通信: 组件主要完成把在点击栏位时传递导航栏位的索引值(业务中可能代表一个筛选字段)给父组件,父组件中定义方法刷新展示数据;伪代码:
clickitem(idx,val){
//
<!-- 这里处理刷新导航的内容 -->
//
uni.showToast({
title: '点击了:' + val //val 指点击的导航栏位值
})
}
使用代码示例
<template>
<view>
<!-- 模板中使用组件 -->
<glanceSlideNavTabBar fontsize="14px" topfixedval="0px" :topfixed=true
@clickitem="clickitem"
:data = "[{textcontent:'爆款爆款'},{textcontent:'包邮'},{textcontent:'3折'},{textcontent:'2人团'},
{textcontent:'2人团'},{textcontent:'2人团'},{textcontent:'包邮'},{textcontent:'3折'},
{textcontent:'2人团'}]">
</glanceSlideNavTabBar>
</view>
</template>
<script>
// 导入组件文件
import glanceSlideNavTabBar from '@/components/glance-SlideNavTabBar.vue';
export default {
// 注入组件
components: { glanceSlideNavTabBar},
data() {
return {
};
},
methods: {
// 实现点击事件
clickitem(idx,val){
uni.showToast({
title: '点击了:' + val
})
}
}
};
</script>
特别说明
对于size\height\width 属性的定义使用
px
或rpx
本人水平有限 努力提升中... :blush:
如有问题,请留言;代码有了,想要的效果可以改到自己满意的为止~