微信小程序swiper扩展左右滑动两边各显示一半其它的item

直接先上效果图

在开发者工具中预览效果

image.png

wxml 代码

使用next-margin和previous-margin控制露出前后的一小部分
外层li控制两个相邻的item之间的留白
里层li1控制item的显示元素

<swiper class="swiper" next-margin="140rpx" current-item-id="{{currentItemId}}" previous-margin="140rpx" bindchange="swiperChange">  
  <block wx:for="{{backClass}}" wx:key="index">
    <swiper-item item-id="{{index}}" data-item-id="{{index}}" bindtap='clickChange'>  
     <view class='li'>
      <view class='li1 {{item}} {{currentItemId == index ? "selected" : ""}}' ></view>
     </view> 
    </swiper-item>  
    </block>
</swiper> 

wxss 代码

.li{
  width: 100%;
  height: 252rpx;
}
.li1{
  width: 446rpx;
  margin: 0 auto;
  border-radius: 10rpx;
  height: 252rpx;
  transform: scale(0.9);
}
.selected{
  transform: scale(1)
}
.red{
  background: red;
}
.blue{
  background: blue;
}
.green{
  background: green;
}
.orange{
  background: orange;
}

js代码

可左右滑动切换 可点击切换
左右滑动和点击切换获取currentItemId,以控制当前选择的item及选中效果

Page({
  data: {
    backClass: ["red", "blue", "green","orange"],
    currentItemId:2
  },
  swiperChange:function(e){
    var currentItemId = e.detail.currentItemId;
    this.setData({
      currentItemId:currentItemId
    })
  },
  clickChange:function(e){
    var itemId = e.currentTarget.dataset.itemId;
    this.setData({
      currentItemId: itemId
    })
  }
})
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,211评论 3 119
  • 我们先来算一笔时间账。首先每个人拥有的时间长度是一致的,都是24小时。假设某高手除去必要的生理需要(睡觉6H,吃饭...
    HR的修炼手册阅读 748评论 0 1
  • 陪孩子玩象棋。 我需要休息,孩子正在兴头上,不让,双方僵持不下。 我一转念,改变了语言模式:“我看到你玩的很投入,...
    源本精彩_养女日记阅读 240评论 1 1
  • 遇见,是否是我青春的回忆? 最近一部很火的电视剧《夏至未至》席卷中国!但小编是一个反应弧很慢的人,或者说是习惯看打...
    北望伊人阅读 274评论 3 2
  • 魏明帝太和二年(公元228年)春,蜀汉丞相诸葛亮为了兴复汉室,还与旧都,发动了北伐中原(长安)的战争。结果被魏将张...
    慕容读史阅读 836评论 0 0

友情链接更多精彩内容