APICloud AVM框架 实现导航栏菜单

APICLOUD底部导航切换,结合AUI 导航代码如下: 首页 未接 已结 呼出 阅读详情

AVM官方框架中有一个 frame-group的组件,在此组件的基础上,将栏目导航中view标签换成了 scroll-view标签,并设置成允许横向滚动。

1.修改了标签的样式,以满足项目需要,其他开发者可根据项目具体要求进行样式的修改。

2.计算向右滚动的距离,实现活动frame-group中滑动页面的同时,导航栏也跟着向右滑动。

要点:

每个栏目的宽度要用百分比,因为不同手机屏幕的尺寸不一致,为了计算的精确和适配,最好使用百分比。用百分比的好处是,页面栏目能显示出来的数量是可以确定的,15% 的话就是7个(最后一个5%的部分被遮挡),20%的话就是5个,不用再去计算了。

如果在样式中有margin或者padding,在计算的时候需要把这些属性设置的值考虑进去。

效果展示

 

目录结构 

代码源码 

<template>
    <view class="page">
		<safe-area></safe-area>
		<scroll-view id="navView" class="item-group" scroll-x scroll-y="false" show-scrollbar="false">
            <view class="item" onclick={this.fnSetFrameGroupIndex} data-index={index} v-for="(item,index) in menuNameList">
				<text class={this.data.selectedIndex==index?'item-title-active':'item-title'}>{item}</text>
			</view>
        </scroll-view>
		<frame-group class="framegroup" id="frameGroup" preload="0" onchange={this.onchange} scrollEnabled="true"></frame-group>
    </view>
</template>
<script>
	export default {
		name: 'index',
		apiready(){
			// console.log(api.winWidth);
			var frames = [];
			for (var i=0;i<this.data.menuList.length;i++) {
				var name = this.data.menuList[i];
				var title = this.data.menuNameList[i];
				frames.push({
					name: title,
					url: name + '.stml'
				});
			}
			var frameGroup = document.getElementById('frameGroup');
			frameGroup.load({
				frames: frames
			});
		},
		data() {
			return{
				menuList: ['page1', 'page2', 'page3', 'page4', 'page5', 'page6', 'page7', 'page8', 'page9'],
				menuNameList:['推荐', '法律', '法规', '生产', '安全', '环保', '机构', '新闻', '咨询'],
                selectedIndex: 0,
				itemWith:(api.winWidth-20)*0.15
			}
		},
		methods: {
			fnSetFrameGroupIndex(e) {
				//计算scroll-view 向右滑动的距离,来实现活动页面时 顶部的导航也跟着滑动
				var navView = document.getElementById('navView');
                var index = e.target.dataset.index;
				if(index>6){
					navView.scrollTo({
						x:(index-6)*this.data.itemWith+10
					})
				}
				else if(index==6){
					navView.scrollTo({
						x:10
					})
				}
				else{
					if(this.data.selectedIndex>index){
						navView.scrollTo({
							x:0
						})
					}
				}
                if (this.data.selectedIndex != index) {
                    this.data.selectedIndex = index;
                    var frameGroup = document.getElementById('frameGroup');
                    frameGroup.setIndex({
                        index: index,
                        scroll: true
                    });
                }
            },
            onchange(e){
				//计算scroll-view 向右滑动的距离,来实现活动页面时 顶部的导航也跟着滑动
				var navView = document.getElementById('navView');
                var index = e.detail.index;
				if(index>6){
					navView.scrollTo({
						x:(index-6)*this.data.itemWith+10
					})
				}
				else if(index==6){
					navView.scrollTo({
						x:10
					})
				}
				else{
					if(this.data.selectedIndex>index){
						navView.scrollTo({
							x:0
						})
					}
				}
				//确认跳转当前页面
                if (this.data.selectedIndex != index) {
                    this.data.selectedIndex = index;
                }
            }
		}
	}
</script>
<style>
    .page {
        height: 100%;
    }
	.item-group {
        width: 100%;
        height: 50px;
		padding: 10px;
    }
    .item {
		width: 15%;
        align-items: center;
    }
	.item-title-active{
		border-bottom: 2px solid #3c40c6;
		color: #000000;
		padding-bottom: 3px;
	}
	.item-title{
		color: #666666;
		padding-bottom: 3px;
		border-bottom: 0px solid #3c40c6;
	}
	.framegroup{
		margin: 10px;
	}
</style>

APIClound从0开始写脉脉(2)底部导航栏 参考文章:http://community.apicloud.com/bbs/forum.php?mod=viewthread&tid=415&extra=&page=1在第一讲里已经将布局做好了,所以现在就只要在footer-div里面添加代码就能够做出一个底部导航栏了。 第一步,我们需要添加如下格式:<input type="radio"/> <a> <p></p> <cent 阅读详情

相关推荐

APICloud可视化开发新手图文教程

本教程主要面向初次使用APICloud Studio3 中可视化工具的新手开发者,旨在通过简单清晰的图文描述,让新手开发者快速掌握可视化工具的使用。APICloud Studio3 可视化工具秉承低代码的设计理念,让开发者可以通过拖拽搭建积木的方式,所见即所得地快速构建生成应用静态页面,并支持同步实时生成AVM跨端代码,工具内置丰富的UI样式组件,节省开发者大量的页面构建时间,让开发者能够更加专注于应用业务逻辑的开发。1、工具下载下载最新版本的 APICloud Studio3下载地址(在PC端打开):ht

weixin_43947457的博客 2734

apiclound实现底部导航

实现效果图 在根目录下index.html中写入代码: <!doctype html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,...

xioxi 708

在线教育App和小程序模版源码功能讲解

讲解项目:教育培训(education-training) 模板项目 简介 本项目的一个教育培训服务APP。提供在线浏览机构信息、名师风采和课程预约订购等功能。 项目前端使用了 avm.js 多端开发技术 ,可同时编译为 Android & iOS App 以及微信小程序; 后端使用 APICloud 数据云3.0 云函数自定义接口。 技术要点 本项目在开发过程中,在“能拆就拆”的思想下,对项目进行细粒度的组件化拆解。 可以从中了解到组件拆分逻辑和一些操作技巧,对自定义组件进行巩固。 效果图 开发

weixin_43947457的博客 1850

apicloud aui 做底部导航

apicloud aui 做底部导航

罗承权 2380

Vue3 + Element Plus 项目里,ECharts 5 四种常用图表从安装到上手的保姆级教程

本文提供Vue3 + Element Plus项目中ECharts 5的完整集成指南,详细讲解圆环图、折线图等四种常用图表的实现方法。从环境配置到高级定制,涵盖响应式设计、动态数据更新等实战技巧,帮助开发者快速掌握数据可视化在Vue3项目中的最佳实践。

weixin_30268921的博客 689

ApiCloud 顶部导航栏+底部导航 完美代码

记住后台要添加NVNavigationBar、NVTabBar模块

APICloud AVM多端开发 | 《外卖app开发》项目源码的深度解析(下)

上周,我们分享了用APICloud AVM多端开发技术开发一款《餐饮点餐》项目源码解析上篇,现在把下篇补足,希望能帮助开发者快速体验一套代码编译Android和iOS app+小程序。 这篇主要讲解菜单点餐页双向滚动交互、菜品加购处理、购物车和付款逻辑处理,以及用户中心开发。查看这篇时,可以先复习上篇: APICloud 多端开发案例源码《点餐》模板的深度解析(上) 一 菜单点餐页面 分类和菜品的双向滚动交互 这个页面是一个左右分栏的布局。左边是菜单分类,右边的菜品。 有一组比较常见的交互: 滑动右侧菜品

weixin_43947457的博客 942

树莓派5新手必看:保姆级ibus中文输入法安装与配置全流程(含.bashrc设置避坑)

本文详细介绍了在树莓派5上安装和配置ibus中文输入法的完整流程,包括系统环境准备、ibus框架安装、图形界面配置及常见问题解决方案。通过清晰的步骤说明和避坑指南,帮助新手快速实现中文输入功能,提升开发效率。

weixin_29159441的博客 527

使用APICloud AVM多端框架开发app通讯录功能

一、效果展示 二、项目结构图 三、数据结构图 1、服务端的原始好友数据结构 2、按字母分类排序后的好友数据结构 3、字母导航数据结构 四、功能实现的思路 本项目基于APICloud AVM框架编写,因此思路要转变下比如标签的用法、CSS样式表的写法、项目的目录结构、dom的操作等都不一样了,完全是Vue、React的编程思维。 微信通讯录功能是将所有联系人根据字母首字拼音排序分类,单击右边字母滑动到相应字母分组编。本项目的核心功能是对数据按首字母进行排序,页.

ff_888888的博客 2101

WPT无线电能传输公式推导、编程计算、仿真验证全过程

主要分为5大模块,分别为无补偿,SS,SP,PP,PS,每个模块对应有公式推导,matlab编程计算相关参数以及将计算参数和仿真验证观察是否对应。采用matlab编程计算参数以及simulink仿真验证

zzhao2580的博客 7755

从AT指令到万物互联:移远EG800K-CN模块的协议栈深度解析与实践指南

本文深度解析移远EG800K-CN 4G模块的协议栈架构与AT指令体系,涵盖MQTT云端集成、多协议配置优化及工业级故障排除指南。通过实战示例展示如何利用该模块构建稳定可靠的物联网连接方案,实现从设备到云端的万物互联。

jupyter5notebook的博客 362

APICloud AVM框架封装密码输入框组件

带网格的输入框组件,可以用于输入密码、短信验证码等场景,通常与数字键盘组件配合使用。 支持自定义密码长度,支持加密和明文显示。

cuicuiniu521的博客 136

Springboot项目中使用邮箱验证码注册登录的代码实现

本文介绍了在Spring Boot应用中实现邮箱验证码注册和登录功能的完整方案。文章首先概述了三种用户认证方式(邮箱验证码注册/登录和传统密码登录),然后详细说明了实现所需的技术栈(Spring Boot、Spring Security、JWT等)。重点阐述了邮件服务配置、验证码生成与存储的核心实现,包括QQ邮箱授权码获取、Thymeleaf邮件模板处理以及验证码缓存管理。最后展示了发送验证码和用户注册的API实现,为开发者提供了完整的参考方案。该方案兼顾安全性和用户体验,适合现代Web应用的用户认证需求。

BXCQ_xuan的技术专栏 | 实战干货·实践教程·学习笔记 1340

使用APICloud AVM框架开发预约应用

前段时间跟朋友一起搞了一个预约的项目,前端用的APICloud的AVM框架做的,后端用的php开发的,用的tp5框架,没几天就搞出来了。简单跟大家分享一下开发中的一些功能点的实现吧。也欢迎大家一起探讨。 一、整理项目脑图 二、项目原型图 原型是用的码前做的,大家可以通过​​www.devbefore.com/protomobile/47942983009476608​​查看 三、项目前端 本项目中前端采用APICloud AVM多端开发技术进行开发,要点包括 swiper 轮播图、网络请求封装等。使用 A

qq_31307319的博客 691

深度剖析:Spring AI 与 LangChain4j,谁才是 Java 程序员的 AI 开发利器?

首先介绍 AI 时代 Java 开发框架选择背景,接着对比两者功能特性(Spring AI 的生态集成与标准化设计、LangChain4j 的多模型适配与提示工程)、应用场景(企业级系统改造与创新产品开发)、开发体验(学习成本与调试工具)、生态扩展(Spring 商业支持与 LangChain4j 开源社区)、性能安全(企业级优化与自主安全实现)及成本趋势(短期投入、长期回报与技术演进),最后给出选型建议与混合架构方案。

博客 5445

APICloud AVM框架 封装数据表格组件

用以展示基础表格数据的组件。组件的核心功能点是在数据展示的时候,用到了2个v-for循环,第一层循环是数据对象的循环,然后嵌套列名的对象,通过列名中的key值在数据对象中查询对应的数据,这样就保证了在数据对象与列名对象顺序打乱的情况下也可以把数据对应起来,并能够在列名没有对应的数据的时候进行特殊处理。.........

白鱼赤乌的博客 414

深度学习论文: AnomalyDINO: Boosting Patch-based Few-shot Anomaly Detection with DINOv2

通过将DINOv2模型适应到一次性和少量异常检测中,并专注于工业应用少量异常检测。实验表明,这种方法不仅与现有技术相匹敌,甚至可以在许多设置中超越它们。我们提出的仅视觉方法AnomalyDINO基于补丁相似性,能够实现图像级别的异常预测和像素级别的异常分割。该方法在方法论上很简单,无需训练,因此不需要任何额外的数据进行微调或元学习。

mingo_敏 1904

APICloud AVM框架 封装身份证号码虚拟输入键盘组件

身份证号码虚拟输入键盘,可用以身份证号码输入时使用,可对输入的身份证号码进行验证,支持15位和18位。

白鱼赤乌的博客 709

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

ionic之app.js中的路由配置关系和导航居底部的解决方案

工作中遇到一个问题,用谷歌浏览器的手机端调试界面时,导航是位于底部的,用自己的手机调试时,导航却在顶部标题下面,并没有居于底部,在调页面的时候带了很多麻烦。路由之间的配置关系,详情待补充......       var profile = angular.module('profile',[]); var cbill = angular.module('cbill',[]);

小红红的博客 1598

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Apicloud 底部导航实现

&lt;!doctype html&gt; &lt;html&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initi

qq_26282869的博客 2673

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

APICloud 弹动与滚轴冲突的解决模拟

APICloud 弹动与滚轴冲突的解决

zhayabusay的专栏 659

apicloud 底部导航

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33968104的博客 566

实例|APICloud AVM框架封装滑动单元格组件

滑动单元格组件原理是主题部分把按钮进行遮挡,按钮通过绝对定位,定位在最右边,通过监听触摸事件(touch),判断滑动的方向和计算滑动的距离以此来判定显示和隐藏按钮。显示和隐藏按钮是通过对主体部分进行css 的transform属性对主体元素进行移动,以达到显示和隐藏按钮的效果。今天介绍APICloud AVM框架封装滑动单元格组件的实例。组件文件easy-swipe-cell.stml...

cuicuiniu521的博客 194
上一篇: APICloud AVM框架 开发企业OA办公项目
下一篇: APICloud AVM框架开发消防检查助手APP
白鱼赤乌
博客等级 码龄10年 7粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白鱼赤乌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值