当前位置:网站首页>小程序轮播图实现由远及近动画
小程序轮播图实现由远及近动画
2022-08-08 14:48:00 【richest_qi】
搭建资源服务器
- 全局安装serve:
npm install -g serve
- 在任何你想的地方新建文件夹:
resources
。resources下新建文件夹:images
,用于存放静态图片资源。 - 启动服务器:
serve resources
。
小程序项目
代码涉及的文件有:
- index.html
- index.wxss
- index.js
index.html
<view class="swiper-container">
<swiper style="height:{
{
swiperH}}" class="swiper" bindchange="handleChange" autoplay circular duration="1500" bindtransition="handleTransition" bindanimationfinish="handleAnimationFinish">
<swiper-item wx:for="{
{imgList}}" wx:key="id" class="swiper-item">
<view class="box">
<image src="{
{item.url}}" bindload="getHeight" style="height:{
{
swiperH}}" class="img {
{index===curIndex?'image-use-animate':'image-unuse-animate'}}"></image>
<view class="box-title {
{index===curIndex?'title-use-animate':'title-unuse-animate'}}">{
{item.title}}</view>
</view>
</swiper-item>
</swiper>
</view>
index.wxss
page{
height: 100%;
width: 100%;
padding: 0 10rpx;
box-sizing: border-box;
display: flex;
align-items: center;
justify-content: center;
}
.swiper-container{
width: 100%;
border-radius: 10rpx;
overflow: hidden;
}
.swiper-item .img{
width: 100%;
transform-style: preserve-3d;
transform: translateZ(0);
}
.image-use-animate{
animation: depthOfFocus 3s 1s ease-in-out both;
}
.image-unuse-animate{
animation: none;
}
.box{
width: 100%;
height: 100%;
perspective: 300rpx;
overflow: hidden;
}
.box-title{
position: absolute;
left: 0;
right: 0;
font-size: 36rpx;
text-align: center;
color: #fff;
}
.title-use-animate{
animation: bounceInUp .5s linear .5s both;
}
.title-unuse-animate{
animation: none;
}
@keyframes depthOfFocus{
100% {
transform: translateZ(60rpx);
}
}
@keyframes bounceInUp{
to{
bottom: 10rpx;
}
from{
bottom: -50rpx;
}
}
index.js
const host = "http://localhost:3000"
Page({
data:{
swiperH:0,
imgList:[
{
id:"001",url:host+'/images/1.jpg',title:"公司简介"},
{
id:"002",url:host+'/images/2.jpg',title:"愿景及使命"},
{
id:"003",url:host+'/images/3.jpg',title:"发展历程"},
{
id:"004",url:host+'/images/4.jpg',title:"业务架构"},
{
id:"005",url:host+'/images/5.jpg',title:"管理团队"}
],
curIndex:0
},
getHeight:function(e){
var winWid = wx.getSystemInfoSync().windowWidth;//获取当前屏幕的宽度
var imgh = e.detail.height;//图片高度
var imgw = e.detail.width;
var sH = winWid * imgh / imgw + "px"
this.setData({
swiperH: sH//设置高度
})
},
handleChange(event){
//轮播开始
this.setData({
curIndex:event.detail.current});
},
handleTransition(event){
//轮播过程
// console.log("enter transition",event);
},
handleAnimationFinish(event){
//轮播结束
// console.log("enter animation finish",event);
}
})
相关链接
边栏推荐
猜你喜欢
随机推荐
Make mistakes small yards artisan study room 】 【 the ladder of the progress of children
基于SCL语言的模拟量平均值滤波FB库功能介绍及创建FB库的具体方法
一打是多少个?
TCP补充
手把手教你设计一个全局异常处理器
从零开始,如何拥有自己的博客网站【华为云至简致远】
【小码匠自习室】ABC180-C: 马虎是小孩的天性吗?
华为云会议初体验【华为云至简致远】
JS-Bom-while (calculate leap year)
【小码匠自习室】朋友的朋友不是朋友
CS231n:6 训练神经网络(二)
更改默认打开应用程序设置
线程的状态简介说明
开源一夏 | 自己画一块ESP32-C3 的开发板(PCB到手)
Tensorflow and Keras for machine learning, deep learning
什么是发饰hair accessories?
浅谈 Redis 的底层数据结构
[Small Coder Study Room] [NOI Online 2020-2 Beginner Group] Finished: Abominable precision will make you burnt
医学图像数据增强-归一化
什么是幂等性