ETS如何实现幻灯片的浅入浅出
@Entry
@Component
struct SwiperExample {
private swiperController: SwiperController = new SwiperController()
@State auto: boolean = false
@State widthSize: number = 300 //图片宽
@State heightSize: number = 160 //图片高
@State opacity: number = 1 //清晰度
private images: string[] = ['/pages/comment/1.jpg', '/pages/comment/2.jpg', '/pages/comment/3.jpg',
'/pages/comment/4.jpg', '/pages/comment/5.jpg']
build() {
Column({ space: 5 }) {
Swiper(this.swiperController) {
ForEach(this.images, item => {
Image(item).width(this.widthSize).height(this.heightSize).opacity(this.opacity)
.animation({
duration: 4000, // 动画时长
curve: Curve.EaseOut, // 动画曲线
iterations: -1, // 播放次数
playMode: PlayMode.Normal // 动画模式
})
}, item => item)
}
.index(0)
.autoPlay(this.auto)
.interval(3000)
.indicator(false) // 默认开启指示点
.loop(true) // 默认开启循环播放
.duration(2000)
.vertical(false) // 默认横向切换
.itemSpace(0)
.margin({bottom:20})
.onChange((index: number) => {
console.info(index.toString())
})
Flex({ justifyContent: FlexAlign.SpaceAround }) {
Button('preview')
.onClick(() => {
this.opacity = 0
this.swiperController.showPrevious()
})
Button('next')
.onClick(() => {
if(this.opacity === 0) {
this.opacity = 1
}else {
this.opacity = 0
}
this.swiperController.showNext()
})
Button('Auto')
.onClick(() => {
if(!this.auto){
this.auto = !this.auto
console.info('auto play')
}else{
this.auto = !this.auto
console.info('stop')
}
})
}
}.margin({ top: 50 })
}
}
本来想直接遍历出来,然后利用透明度直接去完成,但是发现,如果代码走自动播放的话,是不触发Swiper的onChange事件的,也就是拿不到Index。有没有大佬指导一下,怎么实现这个功能
6
浏览270 发布于2022-01-17 02:59未知归属地
全部评论
最多点赞
最新发布
最早发布
写回答
新增插入模板功能
一键使用模板,快速填写内容,轻松发帖~
知道了
- 为了保障您的信息安全,请勿上传您的敏感个人信息(如您的密码等信息)和您的敏感资产信息(如关键源代码、签名私钥、调试安装包、业务日志等信息),且您需自行承担由此产生的信息泄露等安全风险。
- 如您发布的内容为转载内容,请注明内容来源。
我要发帖子
了解社区公约,与您携手共创和谐专业的开发者社区。









































苏公安网备 32011402010933号