写的时候发现网上没有好用的,要么过于复杂,要么不太实用,我就自己整了个简单的
直接上代码部分
//wxml部分
<swiper indicator-dots="true" indicator-color="green" indicator-active-color="red" autoplay="true" interval="5000" duration="1000" circular="true" vertical="true">
<swiper-item wx:for="{{images}}">
<image src="{{item}}" mode="scaleToFill"></image>
</swiper-item>
</swiper>
下面是js部分,大部分都是自动生成的函数,只要在data里面存放图片地址就行,其他的可以不用管
// pages/template/template.js
Page({
/**
* 页面的初始数据
*/
data: {
images: ["/pages/template/images/1.png","/pages/template/images/2.png","/pages/template/images/3.png","/pages/template/images/4.png"]
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})
效果图
iphone5表现效果
在这里插入图片描述
iphone 12/13 Pro Max表现效果
在这里插入图片描述
本人前端一般般,可能会有问题,仅供参考
先前看到网上不少大神写的demo,其菜单栏主要以 A,B,C,D等字母为主,即A,B,C,D等字母为对应该项携带的 id(id不能为汉字或纯数字)。而笔者现在写的项目菜单栏为汉字,所以需要改变数据格式,进而需要改变 wxml 中的循环嵌套和获取。以下为成型后效果,希望对读者有帮助。
实现该功能的思路:通过点击左侧滑栏的某一项,获取到该元素携带的 id ,然后动态传给右侧滑栏的 scroll-into-view ,从而实现右侧滑栏对应的该元素运动置顶。
以下为完整数据
数据格式:
/* pages/listers/listers.wxss /
/ pages/list-1/list-1.wxss */
/ 总体主盒子 /
.container {
position: relative
width: 100%
height: 1220rpx
background-color: #f0f4f7
color: #939393
}
/ 左侧栏主盒子 /
.nav_left{
/ 设置行内块级元素(没使用定位) /
display: inline-block
width: 100%
height: 100%
/ 主盒子设置背景色为灰色 /
background: #fff
text-align: center
/* position: fixed /
left: 0
top: 0
border-top: 1rpx solid #dedede
}
/ 左侧栏list的item /
.nav_left .nav_left_items{
background: #fff
/ 每个高30px /
height: 80rpx
/ 垂直居中 /
line-height: 80rpx
/ 再设上下padding增加高度,总高42px /
padding: 15rpx 0
/ 只设下边线 /
border-bottom: 1px solid #dedede
/ 文字14px /
font-size: 29rpx
color: #101010
font-weight:
}
/ 左侧栏list的item被选中时 /
.nav_left .nav_left_items.active{
/ 背景色变成白色*/
background: #f0f4f7
color: #ed1000
}
/ 右侧栏主盒子 /
.scroll_right{
/ 右侧盒子使用了绝对定位 /
position: fixed
top: 0
right: 0
overflow: auto
flex: 1
/ 宽度75%,高度占满,并使用百分比布局 /
width: 75%
height: 100%
padding: 20rpx
box-sizing: border-box
background-color: #f0f4f7
border-top: 1rpx solid #dedede
}
.mink::after{
display:blockcontent:''clear:both
}
.jiul,.jiul image{
width: 100%
height: 170rpx
}
.minl{
font-size: 29rpx
color: #777
text-align: left
line-height: 60rpx
float: left
background: #f0f4f7
width: 100%
/* height: 50rpx /
}
.mink{
width: 100%
background: #fff
height: 100%
}
/ 右侧栏list的item /
.nav_right_items{
/ 浮动向左 /
float: left
/ 每个item设置宽度是33.33% /
width: 50%
/ height: 160rpx /
text-align: center
color: #4a4a4a
background: #fff
}
.nav_right_items image{
/ 被图片设置宽高 /
width: 60px
height: 50px
margin-top: 15rpx
}
.nav_right_items text{
/ 给text设成块级元素 /
display: block
margin-top: 5rpx
margin-bottom: 10rpx
font-size: 26rpx
/ 设置文字溢出部分为... /
overflow: hidden
white-space: nowrap
text-overflow: ellipsis
}
/ * 自定义其他点击态样式类 **/
.other-navigator-hover{
background:#fff
}
.scroll_left{
width:25%
height:100%
background:#fff
text-align:center
position: fixed
left: 0top: 0
}
页面中view设置width:100%之后,页面右边会多出一块白区域,并且可以左右滑动,解决方法是给这个view加一个box-sizing:border-box2.
直接给最外层的view设置一个overflow-x:hidden//裁剪 div 元素中内容的左/右边缘 - 如果溢出元素的内容区域的话进行隐藏
3.
在json文件里面加 "disableScroll": true
4.
给page一个d性盒子 page { width:100%display: flex} 然后将page下面的根元素盒子宽度设为100%,overflow:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)