微信小程序|icon列表跳转不同界面

效果:

包含图片、文字,分列布局,点击对应图标跳转到相应界面

WXML:

<!-- 三个主要功能:文书服务,在线咨询,律师匹配
    跳转到对应页面,可以返回
    注意php后台和数据库搭建
  -->
  <view class="task_cate">
    <navigator
          class='cate_text {{index == cateActive ? "cate_text_active" : ""}}'
		  url="./{{item.path}}/{{item.path}}?title=redirect"
          hover-class="other-navigator-hover"
          open-type="redirect" 	
          wx:for="{{cateArr}}" 

		  class="cate_item" 
		  wx:key="cate" 
		  bindtap="clickCate" 
		  data-index="{{index}}"			 
		> <view class="cate_icon"> 
			    <image src="../../images/index/{{item.icon}}.png"></image> 
		  </view>

	<view class='cate_text {{index == cateActive ? "cate_text_active" : ""}}'>{{item.text}}</view>
   </navigator>  
</view>
  

WXSS:

/* 图标样式 */
.task_text{
  height: 120rpx;
  margin: 40rpx auto;
  text-align: center;
}
.task_text .task_title{
  font-size: 35rpx;
  height: 70rpx;
  line-height: 70rpx;
}
.task_text .task_desc{
  font-size: 30rpx;
  height: 50rpx;
  line-height: 50rpx;
  color: #999999;
}
.task_cate{
  width: 660rpx;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  margin-top: 40rpx;
}
.task_cate .cate_item{
  width: 220rpx;
  height: 150rpx;
  text-align: center;
  margin-bottom: 50rpx;

}
.task_cate .cate_item .cate_icon{
  height: 130rpx;
}
.task_cate .cate_item .cate_icon image{
  width: 120rpx;
  height: 110rpx;
}
.task_cate .cate_item .cate_text{
  height: 60rpx;
  line-height: 30rpx;
  font-size: 30rpx;
  color:#555858;
}
.task_cate .cate_item .cate_text_active{
  color: #ffb5b5;
}

JavaScript:

// pages/index/index.js
Page({
  data: {
    
    cateArr:[
      {
        icon: 'icon1_paper',
        text: '文书服务',
        path:'p1_paperwork'
      },
      {
        icon: 'icon2_insult',
        text: '在线咨询',
        path:'p2_onlineinquiry'
      },
      {
        icon: 'icon3_lawyer',
        text: '律师匹配',
        path:'p3_lawyermatch'
      }
    ]
  },

})

待修改之处:若要修改大小需要手动计算,应优化为根据rpx的规则,输入列数,自动导入icon、text、path的组件

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是微信小程序登录注册并跳转到主页界面的代码详细实现: 1. 在 app.json 文件中配置主页路径和页面列表 ```json { "pages": [ "pages/index/index", "pages/login/login", "pages/register/register" ], "window": { "navigationBarTitleText": "微信小程序登录注册示例" }, "tabBar": { "list": [ { "pagePath": "pages/index/index", "text": "首页" } ] } } ``` 2. 在登录界面 login.js 中实现登录逻辑 ```javascript Page({ data: { username: '', password: '' }, handleUsernameInput(e) { this.setData({ username: e.detail.value }) }, handlePasswordInput(e) { this.setData({ password: e.detail.value }) }, handleLogin() { // 判断用户名和密码是否为空 if (this.data.username.trim() === '' || this.data.password.trim() === '') { wx.showToast({ title: '用户名和密码不能为空', icon: 'none' }) return } // 发送登录请求 wx.request({ url: 'http://localhost:3000/login', method: 'POST', data: { username: this.data.username, password: this.data.password }, success: res => { // 登录成功,保存用户信息到本地存储 wx.setStorageSync('userInfo', res.data) // 跳转到主页 wx.switchTab({ url: '/pages/index/index' }) }, fail: err => { wx.showToast({ title: '登录失败,请检查用户名和密码', icon: 'none' }) } }) } }) ``` 3. 在注册界面 register.js 中实现注册逻辑 ```javascript Page({ data: { username: '', password: '', confirmPassword: '' }, handleUsernameInput(e) { this.setData({ username: e.detail.value }) }, handlePasswordInput(e) { this.setData({ password: e.detail.value }) }, handleConfirmPasswordInput(e) { this.setData({ confirmPassword: e.detail.value }) }, handleRegister() { // 判断用户名和密码是否为空 if (this.data.username.trim() === '' || this.data.password.trim() === '') { wx.showToast({ title: '用户名和密码不能为空', icon: 'none' }) return } // 判断两次输入的密码是否一致 if (this.data.password !== this.data.confirmPassword) { wx.showToast({ title: '两次输入的密码不一致', icon: 'none' }) return } // 发送注册请求 wx.request({ url: 'http://localhost:3000/register', method: 'POST', data: { username: this.data.username, password: this.data.password }, success: res => { // 注册成功,保存用户信息到本地存储 wx.setStorageSync('userInfo', res.data) // 跳转到主页 wx.switchTab({ url: '/pages/index/index' }) }, fail: err => { wx.showToast({ title: '注册失败,请检查用户名和密码', icon: 'none' }) } }) } }) ``` 4. 在主页界面 index.js 中实现获取用户信息和退出登录逻辑 ```javascript Page({ data: { userInfo: null }, onLoad() { // 获取用户信息 const userInfo = wx.getStorageSync('userInfo') if (userInfo) { this.setData({ userInfo }) } }, handleLogout() { // 清空本地存储的用户信息 wx.clearStorageSync('userInfo') // 跳转到登录界面 wx.redirectTo({ url: '/pages/login/login' }) } }) ``` 5. 在主页界面 index.wxml 中实现展示用户信息和退出登录按钮 ```html <view class="container"> <view wx:if="{{userInfo}}" class="user-info"> <image src="{{userInfo.avatarUrl}}" class="avatar"></image> <view class="nickname">{{userInfo.nickName}}</view> </view> <view wx:else class="login-tip">请先登录</view> <button wx:if="{{userInfo}}" class="logout-btn" bindtap="handleLogout">退出登录</button> </view> ``` 6. 在 app.js 中配置全局请求头和登录态检查 ```javascript App({ onLaunch() { // 设置全局请求头 wx.request.defaults.header = { 'Content-Type': 'application/json' } // 检查登录态 const userInfo = wx.getStorageSync('userInfo') if (!userInfo) { wx.redirectTo({ url: '/pages/login/login' }) } } }) ``` 通过以上步骤,我们就实现了微信小程序登录注册并跳转到主页界面的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值