当前位置:网站首页>小程序轮播图实现由远及近动画
小程序轮播图实现由远及近动画
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);
}
})
相关链接
边栏推荐
猜你喜欢
随机推荐
MySQL:Update高并发下变慢的案例及其涉及的特性
CS231n:6 训练神经网络(二)
UOJ#748-[UNR #6]机器人表演【dp】
【控制】动力学建模举例 --> 拉格朗日法
MySQL中UNION和UNION ALL的区别
kali换源详细步骤
Ingress:比Service更强大的服务暴露与负载均衡
机器学习+深度学习笔记(持续更新~)
从零开始,如何拥有自己的博客网站【华为云至简致远】
AT2382-[AGC015D]A or...or B Problem
看三年的CRUD程序员如何解决数据库死锁的
增效降本开源节流,2022年技术趋势前瞻(异步编程/容器技术)
PHP —— 用 ThinkPHP5.0 实现微信小程序登陆
【小码匠自习室】ABC258-A 代码写的啰嗦了
更改C盘用户目录下的用户名(亲测有效)
LeetCode 每日一题 2022/8/1-2022/8/7
token系统讲解及过期处理
JS-BOM-for,if(字符串转大小写)
无头单向非循环链表(C语言实现)
深度学习-神经网络原理1