热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

微信小程序swiper实现句子控app首页滑动卡片

微信小程序swiper实现句子控app首页滑动卡片引言:最近看到句子控APP首页的效果很清新,可是发现他的微信小程序端没有实现这个功能,我看了一下难度不大,于是尝试着去实现。实现效
微信小程序swiper实现 句子控app首页滑动卡片

引言:最近看到句子控APP首页的效果很清新,可是发现他的微信小程序端没有实现这个功能,我看了一下难度不大,于是尝试着去实现。

实现效果如下:



1、定义一个yiyancard自定义组件,在根目录下新建一个components文件夹并在其内部新建一个yiyancard文件夹。


2、在pages文件夹下新建一个home页面


3、在home页面的json引入yiyancard组件,并在wxml中使用

index.json

{

"usingComponents": {

"s-yiyancard": "../../components/yiyancard/index"
}

}

index.wxml






4、编写yiyancard相关代码

index.js

Page({
data: {
cardCur: 0,

swiperList: [{

id: 0,

type: 'image',

url: 'https://7368-shuyuabn-9gke6t6k962d48ca-1304045188.tcb.qcloud.la/image/6.JPG?sign=39d14c3902ca802c5bbdca9487c4dfc8&t=1612537023',

yiyan: '没有无聊的人生,只有无聊的人生态度',

form: '刘瑜',

iflike: "false"

}, {

id: 1,

type: 'image',

url: 'https://7368-shuyuabn-9gke6t6k962d48ca-1304045188.tcb.qcloud.la/image/1.JPG?sign=6a578b89d06a74141a01b35b26684e04&t=1612536951',

yiyan: '没有任何一种逃避能得到赞赏,喜欢就去追,饿了就吃饭,管他是失败或是发胖',

form: '',

iflike: "false"

}, {

id: 2,

type: 'image',

url: 'https://7368-shuyuabn-9gke6t6k962d48ca-1304045188.tcb.qcloud.la/image/2.JPG?sign=42c68e97e5fcd277e42bdc476a94cdb4&t=1612536964',

yiyan: '万物皆有裂痕,那是光进来的地方',

iflike: "false"
}, {

id: 3,

type: 'image',

url: 'https://7368-shuyuabn-9gke6t6k962d48ca-1304045188.tcb.qcloud.la/image/3.JPG?sign=d607ee45937f227f8ae5fba4e9f846f4&t=1612536974',

yiyan: '不听命于自己者,就要受命于他人',
form: '尼采',

iflike: "false"

}, {

id: 4,

type: 'image',

url: 'https://7368-shuyuabn-9gke6t6k962d48ca-1304045188.tcb.qcloud.la/image/4.JPG?sign=4c986f27559352bb5d9b42a96851ab22&t=1612536983',

yiyan: '我从不曾崩溃瓦解,因为我从不曾完好无缺',
form: '安迪·沃霍尔',

iflike: "false"

}, {

id: 5,

type: 'image',

url: 'https://7368-shuyuabn-9gke6t6k962d48ca-1304045188.tcb.qcloud.la/image/5.JPG?sign=22d43fff1c66594770c1c2b10cd8403c&t=1612537004',

yiyan: '总有人找你这可小星球,了解你的温柔和璀璨,即使旁边的宇宙再浪漫',
form: '',

iflike: "false"

}, {

ifend: true

}],

},

onLoad() {

this.towerSwiper('swiperList');

// 初始化towerSwiper 传已有的数组名即可

},

DotStyle(e) {

this.setData({

DotStyle: e.detail.value

})

},

// cardSwiper

cardSwiper(e) {

this.setData({

cardCur: e.detail.current

})

},

// towerSwiper

// 初始化towerSwiper

towerSwiper(name) {

let list = this.data[name];

for (let i = 0; i
list[i].zIndex = parseInt(list.length / 2) + 1 - Math.abs(i - parseInt(list.length / 2))

list[i].mLeft = i - parseInt(list.length / 2)

}

this.setData({

swiperList: list

})

},

// towerSwiper触摸开始

towerStart(e) {

this.setData({

towerStart: e.touches[0].pageX

})

},

// towerSwiper计算方向

towerMove(e) {

this.setData({

direction: e.touches[0].pageX - this.data.towerStart > 0 ? 'right' : 'left'

})

},

// towerSwiper计算滚动

towerEnd(e) {

let direction = this.data.direction;

let list = this.data.swiperList;

if (direction == 'right') {

let mLeft = list[0].mLeft;

let zIndex = list[0].zIndex;

for (let i = 1; i
list[i - 1].mLeft = list[i].mLeft

list[i - 1].zIndex = list[i].zIndex

}

list[list.length - 1].mLeft = mLeft;

list[list.length - 1].zIndex = zIndex;

this.setData({

swiperList: list

})

} else {

let mLeft = list[list.length - 1].mLeft;

let zIndex = list[list.length - 1].zIndex;

for (let i = list.length - 1; i > 0; i--) {

list[i].mLeft = list[i - 1].mLeft

list[i].zIndex = list[i - 1].zIndex

}

list[0].mLeft = mLeft;

list[0].zIndex = zIndex;

this.setData({

swiperList: list

})

}

},
// 喜欢图标点击改变

like: function (event) {

const that = this

let likeid = event.currentTarget.dataset.likeid

var a = `swiperList[${likeid}].iflike`

var b =`that.data.swiperList[${likeid}].iflike`

console.log(a)

console.log(b)
if (that.data.swiperList[likeid].iflike=== "false") {

that.setData({

[a] : "true",

})

} else if (that.data.swiperList[likeid].iflike=== "true") {

that.setData({

[a]: "false",

})

}
console.log(that.data.swiperList[likeid].iflike)

}

})

index.json

{

"component": true,

"usingComponents": {}

}











{{item.yiyan}}

- {{item.form}} -











36

























每日十句精选投稿



感谢支持,每天都有不同的收获。如果意犹未尽,可以点击底部按钮查看更多推荐



去发现页查看更多推荐






index.css

/* ==================

轮播

==================== */
.swiper-img {

height: 35% !important;
}
.swiper-item image,

.swiper-item video {

width: 100%;

display: block;

height: 100%;

margin: 0;

pointer-events: none;

}
.card-swiper {
height: 85vh !important;

}
.card-swiper swiper-item {

width: 610rpx !important;

left: 70rpx;

box-sizing: border-box;

padding: 40rpx 0rpx 70rpx;

overflow: initial;

}
.card-swiper swiper-item .swiper-item {

width: 100%;

display: block;

height: 100%;

border-radius: 10rpx;

transform: scale(0.9);

transition: all 0.2s ease-in 0s;

overflow: hidden;

}
.card-swiper swiper-item.cur .swiper-item {

transform: none;

transition: all 0.2s ease-in 0s;

}
swiper {

margin-top: 15rpx !important;

}
.other {

position: relative;
background-color: #ffffff;

display: flex;

/*flex布局方法*/

flex-direction: column;

/*垂直布局*/

align-items: center;

/*水平方向居中*/
box-shadow: 0 6rpx 24rpx rgba(0, 0, 0, 0.08);

position: relative;
}
/* 内容 */

.yiyan-body {

line-height: 46rpx;

letter-spacing: 5rpx;

margin-top: 38rpx;

font-size: 30rpx;

width: 90%;

height: 35%;

margin-left: 5%;

color: #3e3e3e;

}
.yiyan-form {

position: absolute;

bottom: 55px;

display: flex;

flex-direction: column;

align-items: center;

font-size: 25rpx;

color: #999999;

width: 50%;

margin-top: 20%;

margin-left: 25%;
}
/* 底部 */

.bottom-box {

position: absolute;

bottom: 0px;

width: 100%;

height: 80rpx;

display: flex;

flex-direction: row;

}
.juzhong {

display: flex;

justify-content: center;

align-items: center;
}
.icon-img {

width: 30rpx !important;

height: 30rpx !important;

}
.icon-img2 {

width: 30rpx !important;

height: 30rpx !important;

/* margin-top: 5rpx !important; */

}
.like {

display: flex;

justify-content: center;

align-items: center;

width: 27%;

}
.num {

font-size: smaller;

margin-top: 3rpx;

margin-left: 6rpx;

color: #b4b4b4;

}
.liuyan {

width: 27%;

display: flex;

justify-content: center;
align-items: center;

}
.biaoqian {

width: 23%;

display: flex;

justify-content: center;
align-items: center;

}
.zhuanfa {

width: 23%;

display: flex;

justify-content: center;
align-items: center;

}

/* 最后一页 */

.end-title{

width: 60%;

margin-left: 20%;

font-size: 30rpx;

display: flex;

justify-content: center;

align-items: center;

margin-top: 100rpx;

margin-bottom: 100rpx;

}

.end-body{

width: 80%;

margin-left: 10%;

font-size: 27rpx;

color: #a7a7a7;

display: flex;

justify-content: center;

align-items: center;

margin-bottom: 40rpx;

}

.end-bottom{

position: absolute;

width: 70%;

left: 15%;

bottom: 60rpx;

display: flex;

justify-content: center;

align-items: center;

margin-bottom: 40rpx;

color: #7b9fcb;

font-size: 28rpx;

}

编写完以上代码,相关功能就实现了。

注意:为了方便以上data中的数据是直接在js中自定义好的。


微信小程序swiper实现 句子控app首页滑动卡片的相关教程结束。



推荐阅读
  • 微信小程序开发指南:创建动态电影选座界面
    本文详细介绍如何在微信小程序中实现一个动态且可视化的电影选座组件,提高用户体验。通过合理的布局和交互设计,使用户能够轻松选择心仪的座位。 ... [详细]
  • 本文详细介绍了PHP中的几种超全局变量,包括$GLOBAL、$_SERVER、$_POST、$_GET等,并探讨了AJAX的工作原理及其优缺点。通过具体示例,帮助读者更好地理解和应用这些技术。 ... [详细]
  • 现在的新手程序猿,动不动就是框架,就连外面培训的也是框架,我就问一句,没了框架是不是就啥也不会了 ... [详细]
  • This article explores the process of integrating Promises into Ext Ajax calls for a more functional programming approach, along with detailed steps on testing these asynchronous operations. ... [详细]
  • java datarow_DataSet  DataTable DataRow 深入浅出
    本篇文章适合有一定的基础的人去查看,最好学习过一定net编程基础在来查看此文章。1.概念DataSet是ADO.NET的中心概念。可以把DataSet当成内存中的数据 ... [详细]
  • 探索CNN的可视化技术
    神经网络的可视化在理论学习与实践应用中扮演着至关重要的角色。本文深入探讨了三种有效的CNN(卷积神经网络)可视化方法,旨在帮助读者更好地理解和优化模型。 ... [详细]
  • STM32代码编写STM32端不需要写关于连接MQTT服务器的代码,连接的工作交给ESP8266来做,STM32只需要通过串口接收和发送数据,间接的与服务器交互。串口三配置串口一已 ... [详细]
  • 如何高效学习鸿蒙操作系统:开发者指南
    本文探讨了开发者如何更有效地学习鸿蒙操作系统,提供了来自行业专家的建议,包括系统化学习方法、职业规划建议以及具体的开发技巧。 ... [详细]
  • egg实现登录鉴权(七):权限管理
    权限管理包含三部分:访问页面的权限,操作功能的权限和获取数据权限。页面权限:登录用户所属角色的可访问页面的权限功能权限:登录用户所属角色的可访问页面的操作权限数据权限:登录用户所属 ... [详细]
  • ArcBlock 发布 ABT 节点 1.0.31 版本更新
    2020年11月9日,ArcBlock 区块链基础平台发布了 ABT 节点开发平台的1.0.31版本更新,此次更新带来了多项功能增强与性能优化。 ... [详细]
  • D17:C#设计模式之十六观察者模式(Observer Pattern)【行为型】
    一、引言今天是2017年11月份的最后一天,也就是2017年11月30日,利用今天再写一个模式,争取下个月(也就是12月份& ... [详细]
  • 调试利器SSH隧道
    在开发微信公众号或小程序的时候,由于微信平台规则的限制,部分接口需要通过线上域名才能正常访问。但我们一般都会在本地开发,因为这能快速的看到 ... [详细]
  • 利用Python在DragonBoard 410c上解析GPS数据获取位置信息
    本文介绍了如何在DragonBoard 410c开发板上使用Python脚本来解析GPS报文,从而获取精确的位置信息。DragonBoard 410c集成了GPS、Wi-Fi和高性能GPU,非常适合用于各种物联网项目。 ... [详细]
  • IIS6批量添加主机头,修改IIS数据库
    首先,找到IIS的数据库。默认是在C:\WINDOWS\system32\inetsrv下的MetaBase.xml文件。如果找不到,请右键右键站点-》所有服务-》将配置保存到一个 ... [详细]
  • 垂直泊车路径设计
    本文探讨了垂直泊车路径的设计原理与实现方法。垂直泊车是指汽车从特定位置出发,经过一系列横向和纵向移动,最终达到与车位垂直停放的状态。路径设计旨在确保泊车过程既高效又安全。 ... [详细]
author-avatar
南塘所有的经筒
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有