Taro中ScrollView实现轮播图

ScrollView 的scrollIntoView 实现轮播效果

1.背景:

1.1 为什么不用taro原生的Swiper轮播组件

  • 需要自定义轮播分页
  • 通过onChange事件来获取当前current再来更新底部分页,后有一定延迟,效果不佳
  • 元素选中与未选中要进行缩放

2. 具体实现

tsx 复制代码
const [targetViewId, setTargetViewId] = useState<string>()



 const testClick = () => {
    setTargetViewId('test_1')
  }

<Button onClick={testClick}>按钮</Button>
<ScrollView 
 scrollX
 scrollY={false}
 scrollWithAnimation
 onScroll={handleTouchMove}
 scrollIntoView={targetItemId}
>
{swiperList.map(()=>{

return (
    <View                   
    key={index}
    id={`test_${index}`}
></View>
)
})}

</ScrollView>

按钮的点击事件可以,让当前视图平滑的滚动到一组图片的第二张图片中,scrollWithAnimation 属性也可以在滚动中添加缓慢的动画效果。我们也可以在handleTouchMove事件中处理当前,展示的图片,以及与相应的css配合展示对应当前展示时样式和未展示时样式。

相关推荐
江公望8 分钟前
HTML5 History 模式 5分钟讲清楚
前端·html·html5
云和数据.ChenGuang15 分钟前
Zabbix Web 界面安装时**无法自动创建配置文件 `zabbix.conf.php`** 的问题
前端·zabbix·运维技术·数据库运维工程师·运维教程
码界奇点17 分钟前
Java Web学习 第15篇jQuery万字长文详解从入门到实战解锁前端交互新境界
java·前端·学习·jquery
前端老曹27 分钟前
vue3 三级路由无法缓存的终极解决方案
前端·javascript·vue.js·vue
兮动人29 分钟前
Google Chrome 142更新引发内网访问危机:原理、影响与全面解决方案
前端·chrome
PAQQ30 分钟前
ubuntu22.04 搭建 Opencv & C++ 环境
前端·webpack·node.js
这是个栗子36 分钟前
git报错:Reinitialized existing Git repository in ...
前端·git·github
ghfdgbg38 分钟前
15. Vue工程化 + ElementPlus
前端·javascript·vue.js
Onlyᝰ40 分钟前
前端使用jscpd查项目重复率
前端
pandarking1 小时前
[CTF]攻防世界:web-unfinish(sql二次注入)
前端·数据库·sql·web安全·ctf