相关问题
求教 JS UI中的是否支持手势控制图片放大缩小
4312浏览 • 1回复 待解决
创建轮播(Swiper),Swiper组件在不同属性下的布局效果通过按钮的方式整合在一起
373浏览 • 1回复 待解决
崩溃问题,地图应用,在操作地图放大、旋转、缩小过程,概率性出现应用无响应(appfreeze)
315浏览 • 1回复 待解决
@ohos.web.webview的zoom接口不生效,浏览器窗口不能放大缩小 ,zoomAccess设为true也不行。
455浏览 • 1回复 待解决
【Harmony OS】【ArkUI】ets开发 请问如何实现一个轮播图,用哪个控件实现比较好,etsUI
1684浏览 • 1回复 待解决
用的JS UI框架开发的,有组件可以实现点击图片全屏展示,然后可以使用双指放大缩小功能吗?
4327浏览 • 1回复 待解决
本地收发消息实践,谁有好的方案?
235浏览 • 1回复 待解决
如何设置全屏返回的动效
569浏览 • 1回复 待解决
Swiper是否支持组件复用
355浏览 • 1回复 待解决
想找些demo学习一下,比如各种样式的轮播图,吸顶效果的tab,沉浸式状态栏,赛贝尔曲线等等。
5261浏览 • 2回复 待解决
分组列表实践(嵌套列表)
436浏览 • 1回复 待解决
隐私安全页面跳转实践
1023浏览 • 1回复 待解决
卡片点击翻转动效,有人会吗?
198浏览 • 1回复 待解决
sql 怎么对带单位字符串排序?
1001浏览 • 1回复 待解决
分组列表最佳实践,希望提供一个完善的分组列表最佳实践。
416浏览 • 1回复 待解决
swiper切换监听生命周期
448浏览 • 1回复 待解决
图形图像开发场景实践
307浏览 • 1回复 待解决
鸿蒙jsUi如何制作按钮按下动效
7189浏览 • 3回复 待解决
litewearable支持swiper吗?
1190浏览 • 1回复 待解决
Image组件如何实现双指手势放大
654浏览 • 1回复 待解决
Slider组件在Item数量等于displayCount的情况下无法轮播
508浏览 • 1回复 待解决
使用swiper组件实现viewPager效果
451浏览 • 1回复 待解决
Swiper的数量是否有限制
610浏览 • 1回复 待解决
如何使用Swiper组件实现下拉刷新
144浏览 • 1回复 待解决
如何设置swiper指示器不显示
487浏览 • 1回复 待解决
Swiper实现轮播图基本用法
通过LazyForeach加载数据源,Swiper属于滚动组件,可以设置SwiperController配合使用,能够控制Swiper组件的滚动操作。
数据源
LazyForeach加载的数据源使用IDataSource定义,可以优化子组件渲染效率,详细原理和使用说明见LazyForEach:数据懒加载。
1. 定义数据源类
2. 定义数据源变量,模拟数据
定义SwiperController
给组件绑定一个控制器,用来控制组件翻页,能满足更多业务场景需求。
初始化Swiper组件
Swiper实现轮播图常用属性设置
通过以下常用属性设置,可以实现平滑轮播图的效果
1. 设置当前在容器中显示的子组件的索引值,在Swiper滚动过程中,此值会变化,通过状态变量可以实现滚动后子视图的属性变化。
2. 对应Swiper属性设置为
3. 设置一页内元素显示个数
4. 设置当前显示子组件的前后边距,可以显示前后一项的部分视图
5. 设置滚动轮播属性:autoPlay是否自动滚动,loop是否循环滚动,duration滚动一页时间,curve滚动动画类型
通过状态变量和滚动属性对子组件缩放
1. 定义数据源对应的缩放数组
2. 定义最大,最小缩放比例
3. 与数据源对应的缩放系数存入数组(aboutToAppear)
4. 当前显示index发生变化时,修改缩放数组的对应的缩放系数
5. 定义手势触发时的offset
6. 监听手势滑动,根据滑动距离计算实时缩放系数
7. 手势结束后,继续监听滚动开始
8. 手势结束后,继续监听滚动结束,startSwiperOffset归0
子组件添加动画
为子组件添加动画效果,让缩放更加流畅丝滑
1. 设置scale属性,使用状态变量this.scaleArray中的缩放系数
2. 设置动画效果
实现效果
Swiper组件实现缩放轮播图完成
至此主要用到了Swiper组件和状态变量来刷新子组件的原理,数据和性能方面优化还有待加强。