【微信小程序学习】js开发中常见的点击事件变换css样式(active)

例如,点击下方哪个文字,下方的红底就会跑到哪里去,刚开始时,红底在第一个文字位置。

界面WXML

<scroll-view scroll-x class="navScroll" enable-flex>
    <view class="navItem" wx:for="{{videoGroupList}}" wx:key="id">
      <view class="navContent {{navId === item.id?'active':''}}" bindtap="changeNav" id="{{item.id}}">
      {{item.name}}
      </view>
    </view>
</scroll-view>

这边注意用到了{{navId === item.id?'active':''}},  当navId等于item.id的时候,才会出现active类,否则不会出现。

  <view class="navContent {{navId === item.id?'active':''}}" bindtap="changeNav" id="{{item.id}}"

 样式WXSS

.navScroll{
  display: flex;
  white-space: nowrap;
}

.navScroll .navItem{
  padding: 0 30rpx;
  font-size: 28rpx;
  height: 60rpx;
  line-height: 60rpx;
}

.navItem .active{
  border-bottom: 1rpx solid #d43c33;
}

 JS

// pages/video/video.js
import request from '../../utils/request.js'
Page({

  /**
   * 页面的初始数据
   */
  data: {
    videoGroupList:[] ,//导航标签
    navId:'' ,//导航标识
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
   //获取导航数据
   this.getVideoGroupListData();
  },

  //获取导航数据
  async getVideoGroupListData(){
    let videoGroupListData = await request('/video/group/list');
    this.setData({
      videoGroupList:videoGroupListData.data.slice(0,14) ,
      navId:videoGroupListData.data[0].id //让第一个底边刚开始时有红框
    })
  },
  //点击切换导航的回调
  changeNav(event){
    let navId = event.currentTarget.id; //通过id向event传参的时候如果传的是number会自动转换成string
    this.setData({
      navId:navId*1
    })
  },


})

 

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
微信小程序开发常见问题和解决方法如下: 1. 页面跳转问题:在小程序进行页面跳转时,需要注意页面之间的路径和参数传递等问题,可以使用`wx.navigateTo`、`wx.redirectTo`、`wx.switchTab`等API进行页面跳转。 2. 数据绑定问题:在小程序进行数据绑定时,需要注意数据的类型和格式等问题,可以使用`{{}}`和`wx:if`等语法进行数据绑定和条件渲染等操作。 3. 异步请求问题:在小程序进行异步请求时,需要注意异步请求的回调函数和作用域等问题,可以使用`Promise`和`async/await`等语法进行异步请求和数据处理等操作。 4. 样式问题:在小程序进行样式设置时,需要注意样式的选择器和权重等问题,可以使用样式文件和`wxss`等语法进行样式设置和管理等操作。 5. 生命周期问题:在小程序进行生命周期管理时,需要注意生命周期函数的调用时机和执行顺序等问题,可以使用`onLoad`、`onShow`、`onHide`等生命周期函数进行页面和组件的生命周期管理和操作等。 6. 性能优化问题:在小程序进行性能优化时,需要注意页面和组件的渲染性能和数据绑定性能等问题,可以使用`setData`、`wx:for`、`wx:key`等语法进行性能优化和数据绑定等操作。 7. 云开发问题:在小程序进行云开发时,需要注意云函数的编写和调用、数据库的操作和数据结构等问题,可以使用云开发控制台和云开发SDK进行云开发操作和管理等。 以上是微信小程序开发常见问题和解决方法,开发者可以根据实际需求和经验,选择合适的方法和工具进行开发和管理等操作。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

翘阳啦

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

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

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

打赏作者

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

抵扣说明:

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

余额充值