HBuilderX打包web网站之wap2app设置底部菜单tabBar

news/2024/5/21 0:14:50/文章来源:https://blog.csdn.net/sinat_25884075/article/details/125634221

 上面是真实案例,首页、在看、我的就是我设置的菜单,还可以设置图标,填写图片网络地址就行。

下面是代码,可以直接用:

第一步,先下载2个文件或者复制也行,那就新建吧:

分别新建一个css文件,命名为   __wap2apptabbar.css

 .tab {position: absolute;left: 0;right: 0;bottom: 0;height: 50px;}.tab-inner {display: table;table-layout: fixed;background-color: #f7f7f7;-webkit-box-shadow: 0 0 1px rgba(0, 0, 0, .85);box-shadow: 0 0 1px rgba(0, 0, 0, .85);-webkit-backface-visibility: hidden;backface-visibility: hidden;}.tab-item {display: table-cell;width: 1%;height: 50px;overflow: hidden;color: #666;text-align: center;text-overflow: ellipsis;white-space: nowrap;vertical-align: middle;}.tab-item-icon img {width: 100%;height: 100%;}.tab-item .tab-item-icon img:nth-child(1) {display: block;}.tab-item .tab-item-icon img:nth-child(2) {display: none;}.tab-item.active .tab-item-icon img:nth-child(1) {display: none;}.tab-item.active .tab-item-icon img:nth-child(2) {display: block;}.tab-item-label {display: block;overflow: hidden;font-size: 12px;}.tab-item-icon {margin: 0 auto;width: 24px;height: 24px;}.tab-item-icon-bars{}.tab.no-label .tab-item-icon {margin: 0 auto;width: 40px;height: 40px;}.tab.no-icon .tab-item-label {font-size: 16px;}.tab-item.active {color: #FF5777;}

第个文件命名为:__wap2apptabbar.js

(function(window, document) {var TabBar = function(options) {options = options || {};this.tabClass = options.tabClass || 'tab'; //容器元素this.itemClass = options.itemClass || 'tab-item'; //选项样式名称this.selectedClass = options.selectedClass || 'active'; //选项激活样式名称this.itemIconClass = options.itemIconClass || 'tab-item-icon'; //选项图标样式名称this.itemLabelClass = options.itemLabelClass || 'tab-item-label'; //选项标题样式名称this.list = options.list || []; //选项列表this.selected = 0;if (this.list.length) {this.render();}this.tabElem = document.querySelector('.' + this.tabClass);this.itemElems = [].slice.call(document.querySelectorAll('.' + this.itemClass));this.handleOldVersion();this.initEvent();};var proto = TabBar.prototype;proto.refresh = function() {this.itemElems = [].slice.call(document.querySelectorAll('.' + this.itemClass));};proto.handleOldVersion = function() {var list = this.list;if (!list.length) {for (var i = 0; i < this.itemElems.length; i++) {list.push({url: this.itemElems[i].getAttribute('href')});}}window.__wap2app_old_tab_item_urls = [];for (var i = 0; i < list.length; i++) {__wap2app_old_tab_item_urls.push(list[i].url);}};proto.render = function() {var tabbarElem = document.createElement('nav');tabbarElem.className = this.tabClass;if (!this.list[0].iconPath) {tabbarElem.className = tabbarElem.className + ' no-icon';}if (!this.list[0].text) {tabbarElem.className = tabbarElem.className + ' no-label';}var html = [];for (var i = 0; i < this.list.length; i++) {html.push(this.renderItem(this.list[i], i));}tabbarElem.innerHTML = '<div class="' + this.tabClass + '-inner">' + html.join('') + '</div>';document.body.appendChild(tabbarElem);};proto.renderItem = function(item, index) {var isSelected = this.selected === index;var html = ['<div class="' + this.itemClass + (isSelected ? (' ' + this.selectedClass) : '') + '" href="' + item.url + '">'];if (item.iconPath) {html.push('<div class="' + this.itemIconClass + '"><img src="' + item.iconPath + '"/><img src="' + item.selectedIconPath + '"/></div>');}if (item.text) {html.push('<div class="' + this.itemLabelClass + '">' + item.text + '</div>');}html.push('</div>');return html.join('');};proto.initEvent = function() {if (!this.tabElem) {throw new Error('未找到TabBar容器');}if (!this.itemElems || !this.itemElems.length) {throw new Error('TabBar容器内无选项');}var self = this;//全局回调window.__wap2app_change_tab_callback = function(e) {self.highlight(e.index);};this.tabElem.addEventListener('click', function(e) {var target = e.target;for (; target && target !== self.tabElem; target = target.parentNode) {var index = self.itemElems.indexOf(target);if (~index) {if (index === self.selected) {return;}e.preventDefault();e.stopPropagation();var url = target.getAttribute('href');if (!url) {throw new Error('未指定选项打开的链接地址');}self.highlight(index);var id = plus.runtime.appid;wap2app.switchTab(id, id + '_' + index, url);}}});};proto.highlight = function(index) {this.itemElems[this.selected].classList.remove(this.selectedClass);var currentItemElem = this.itemElems[index]currentItemElem.classList.add(this.selectedClass);if (currentItemElem.scrollIntoView) {currentItemElem.scrollIntoView();}this.selected = index;};window.TabBar = TabBar;
})(window, document);

第三步,取消注释:

 第四步,在client_index.html设置tabBar代码:

 

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><meta name="viewport" content="viewport-fit=cover,width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" /><title></title><!--使用本地选项卡时,将如下两行代码注释取消--><link rel="stylesheet" type="text/css" href="__wap2apptabbar.css" /><script src="__wap2apptabbar.js" type="text/javascript" charset="utf-8"></script><style type="text/css">  /*自定义选项卡文字颜色示例*/  .tab-item {  color: black;//选项卡文字默认为黑色  }  .tab-item.active {  color: blue;//选项卡文字高亮时为蓝色  }  </style></head><body><script>  new TabBar({  list: [{  url: "https://huamaotianxing.com/",  text: "首页",  iconPath: 'home.png',  selectedIconPath: 'home-selected.png'  }, {  url: "https://huamaotianxing.com/open/course/explore",  text: "在看",  iconPath: 'tab1.png', //本地图标  selectedIconPath: 'tab1-selected.png'  }, {  url: "https://huamaotianxing.com/my/courses/learning",  text: "我的",  iconPath: 'http://m.exampple.com/imgs/about.png',//网络图标  selectedIconPath: 'http://m.exampple.com/imgs/about-selected.png'  }]  });  </script></body></html>

第6步,在sitemap.json文件配置一下:

 

{"global": {"webviewParameter": {"titleNView": {"autoBackButton": true,"backgroundColor": "#f7f7f7",//导航栏背景色"titleColor": "#000000",//标题颜色"titleSize": "17px"},"statusbar": {//系统状态栏样式(前景色)"style": "dark"},"appendCss": "","appendJs": ""},"easyConfig": {}},"pages": [{"webviewId": "__W2A__huamaotianxing.com",//首页"matchUrls": [{"href": "https://huamaotianxing.com"}, {"href": "https://huamaotianxing.com/"}],"webviewParameter": {"titleNView": false,"statusbar": {//状态条背景色,//首页不使用原生导航条,颜色值建议和global->webviewParameter->titleNView->backgroundColor颜色值保持一致//若首页启用了原生导航条,则建议将首页的statusbar配置为false,这样状态条可以和原生导航条背景色保持一致;"background": "#f7f7f7"},"tabBar": {//选项卡配置,仅首页支持  "height": "50px",//选项卡高度,默认为50px  "list": [  {  "url": "https://huamaotianxing.com/" //tab1页面地址  }, {  "url": "https://huamaotianxing.com/open/course/explore" //tab2页面地址  }, {  "url": "https://huamaotianxing.com/my/courses/learning"  //tab3页面地址  }  ]  }  }}]
}

第7步,运行到真机上测试了,ok了。

官方文档说明:

选项卡切换优化 - wap2app教程 - DCloud问答选项卡切换优化 - wap2app教程 - 体验差距相比原生App,M站选项卡切换体验较差,主要体现在:原生App切换选项卡时,选项卡区域不变,仅内容区view变化;但M站选项卡切换时,会将整个页面重新加载,经常出现白屏现象。 优化思路wap2app的优化方案是拆分选项卡区域和内容区,变成两...https://ask.dcloud.net.cn/article/12878

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_836991.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小说站源码(带自动采集开源小说网站源码)

小说网站源码是一套文本自动聚合搜索和展示构建系统&#xff0c;设计用于编写由许多较小的文本文档组合而成的小说网站。它使用了受Markdown启发的最小格式语法&#xff0c;并添加了用于注释、概要和交叉引用的元数据语法。它被设计成一个简单的文本编辑器&#xff0c;允许轻松…

SpringBoot+ Mybatis 开发一个读书网站

项目描述 本项目为javaweb课程设计作业&#xff0c;开发了一个类似于豆瓣读书的书友交流网站。 效果图 项目结构 mapper和pojo可以用generator自动生成&#xff0c;我们只需编写controller就可以了 贴一个userController的代码&#xff0c;其他的都大同小异 package com.te…

基于SSM甜品销售网站

关于开发环境 1. jdk1.8 2. myeclipse10 3. tomcat8 4. mysql utf-8 使用技术 1. ssh 框架 2. log使用的是log4j 3. 自定义properties 4. 字符集 utf-8 5. 中文乱码使用自定义过滤器 6. 分页使用的是pager-taglib框架 7. 后台登陆使用的是frameset框架 课题设计仅供参考学习使用…

旅游管理网站前台+后台

这个网站使用JSPServlet&#xff0c;虽说是JSPServlet但是我看了看&#xff0c;大部分的代码逻辑都是写在JSP里面的。。 这个适用于毕业设计的&#xff0c;简单改一改可以适用于很多网站&#xff0c;可以改后台下拉列表的类型&#xff0c;把这个改成门户网站也不错&#xff0c;…

java jsp在线小说网站

采用了jspservlet来写&#xff0c;前端部分用了少量的js和jQuery处理&#xff0c;数据库用了MySQL&#xff0c;开发平台是myeclipse。发布文章时直接插入数据库会没有分段&#xff0c;这里的解决办法是引入第三方工具wangEditor&#xff08;wangEditor 是一款基于JavaScript和c…

校园失物招领网站

开发环境是Eclipse none&#xff0c;Mysql5.6数据库&#xff0c;Spring MVC框架&#xff0c;jdk1.7&#xff0c;Tomcat 8.0.27,静态页面是我参照网上设计的&#xff0c;系统功能基本完善&#xff0c;目前还没有发现有需要解决的bug 下载下来后&#xff0c;解压开把jar目录里面的…

CentOS服务器搭建WordPress个人博客网站

WordPress 是世界上使用最广泛的博客系统之一&#xff0c;是一款开源的PHP软件。有丰富的插件模板资源&#xff0c;使用WordPress可以快速搭建独立的博客网站。 本教程软件环境基于CentOS 6.8 64位&#xff0c;从配置LNMP环境开始一步步搭建属于你自己的WordPress博客网站。 …

基于腾讯云服务器搭建的一个简易的网站(ubuntu)

本文系湛江市岭南师范学院物联网俱乐部原创教学文章&#xff0c;转载请保留声明。 前言 本文将会带领大家去学习如何在云服务器上面部署&#xff0c;并且搭建自己的网站&#xff0c;从而让你拥有一个真正属于你自己的网站&#xff0c;不过此网站的内容比较简陋请广大网友勿笑&…

树莓派之搭建个人博客网站

树莓派之搭建个人博客网站前言一、树莓派配置1.1 window下软件安装1.2 设置静态IP&#xff08;可不设&#xff09;二、安装NTP进行自动对时2.1 换源2.2 NTP用法三、相关软件安装3.1 安装Nginx&#xff1a;3.2 安装SQLite33.3 安装PHP&#xff08;PHP7&#xff09;3.4 配置Nginx…

锚链接点击添加class_掌握文章锚文本技巧,快速提升网站优化效果

关键词锚文本链接肯定要做&#xff0c;有些人说内链导致被K站的原因&#xff0c;肯定是过度&#xff0c;不合理的内链建设&#xff0c;导致网站被K的这种说法&#xff0c;不正确&#xff0c;最多被降权&#xff0c;被K站的原因是服务器不稳定、采集文章、经常改动网站、使用作弊…

大型网站后台架构的Web Server与缓存

1.1 Web server Web server 用来解析HTTP协议。当web服务器接收到一个HTTP请求时&#xff0c;会返回一个HTTP响应&#xff0c;例如送回一个HTML页面。为了处理一个请求&#xff0c;web服务器可以响应一个静态页面或者图片。进行页面跳转&#xff0c;或者把动态响应的产生委托给…

Wss3入门(1):一步一步使用Windows SharePoint Service 3.0搭建Blog网站

开篇 Windows SharePoint Service 3.0内建了Blog模板&#xff0c;所以有些TX看到这个标题肯定觉得比较奇怪&#xff0c;认为Wss3只要一步就可以建好Blog网站了&#xff0c;没有什么好说的。其实&#xff0c;还是有些东西要修修改改的&#xff0c;一些东西的默认设置并不是我们…

个人网站上线

网址&#xff1a; http://cross.withiter.com/ 花了2周业余时间&#xff0c;终于可以上线了。网站用的最简单的JSP Servlet MongoDB开发的。很简洁。贴几张截图吧&#xff1a;

65个精心设计的富有灵感的电子商务网站案例

电子商务网站虽然现在很多&#xff0c;但是许多是复杂混乱的&#xff0c;而且也没有比较好的用户体验。这样就不能很好的吸引顾客&#xff0c;因此电子商务网站在设计上一定要有创意和美观的界面&#xff0c;今天给大家展示65个电子商务网站案例&#xff0c;这些网站设计都非常…

asp.net 网站纯静态化设计及其实现

引言&#xff1a;为减轻服务器压力&#xff0c;较少伪静态对CPU的消耗&#xff0c;下面使用了纯静态的方式提供站点访问&#xff01; 一、流程图如下 二、逐步分析 A.捕获404&#xff0c;获取请求地址 用户访问站点地址如下&#xff08;例如&#xff1a;www.yahoo.com/news/1.h…

55个RSS网站提交入口

字号&#xff1a;大 中 小 http://oumei.zhan.cn.yahoo.com 博客导航http://allblog.zhan.cn.yahoo.com 博客做好之后&#xff0c;如何推广博客就成了你要研究的问题。博客与网站不同之处在于提供了聚合功能的RSS&#xff0c;利用我下面为您提供的55个网站提交入口&#xff0c…

大型网站架构演变和知识体系

转自&#xff1a;http://blog.csdn.net/lovejavaydj/article/details/7868505 在这篇文章中将阐述一个普通的网站发展成大型网站过程中的一种较为典型的架构演变历程和所需掌握的知识体系&#xff0c;希望能给想从事互联网行业的同学一点初步的概念。 之前也有一些介绍大型网站…

python Flask搭建网站

Flask是一个Python编写的Web 微框架&#xff0c;让我们可以使用Python语言快速实现一个网站或Web服务。本文参考自Flask官方文档&#xff0c;大部分代码引用自官方文档。 安装Flask 首先我们来安装Flask。最简单的办法就是使用pip。 pip install flask 然后在pycharm中创建f…

seo学习3

第三天关键词竞争难度分析&#xff1a; 1.搜索框搜索关键词&#xff0c;查看收录结果。 千万以上&#xff1a;难度大。 百万到千万&#xff1a;难度一般&#xff0c;可以优化。 十万到百万之间&#xff1a;基本没难度。  2.根据关键词搜索量判断。 1000以上&#xff1a;难度高…

月薪过万的文案,都在用这9个网站(速看+收藏)

相信很多文案都有同一个疑惑&#xff1a;“为啥别人文思如泉涌&#xff0c;到我这就半天憋不出一字儿&#xff1f;”殊不知很多时候&#xff0c;不是你水平不行&#xff0c;而是你积累不够。 今天&#xff0c;我就给各位文案们送福利啦&#xff0c;7个文案高手经常看的网站&am…