react实现卡片触摸更换效果
代码语言:html
所属分类:幻灯片
代码描述:react实现卡片触摸更换效果
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<style>
@import url("https://fonts.googleapis.com/css2?family=Muli&family=Sedgwick+Ave&display=swap");
body {
margin: 0;
}
.App {
align-items: center;
background-color: #e0c5c0;
display: flex;
justify-content: center;
height: 100vh;
}
.container {
background-color: #fff;
border-radius: 16px;
height: 464px;
overflow: hidden;
position: relative;
width: 256px;
}
.title {
font-size: 20px;
margin-top: 28px;
position: absolute;
text-align: center;
width: 100%;
user-select: none;
-webkit-user-select: none;
}
.title1 {
font-family: "Sedgwick Ave";
height: 27px;
overflow: hidden;
}
.titleList {
list-style: none;
margin: 0;
padding: 0;
user-select: none;
-webkit-user-select: none;
}
.titleItem {
height: 30px;
}
.title2 {
font-family: "Muli";
}
.title3 {
color: #999;
font-family: "Muli";
font-size: 12px;
}
.blob {
position: absolute;
}
.person {
position: absolute;
transform-origin: 50% 1000px;
}
.person1 {
transform: rotate(0);
}
.person2 {
transform: rotate(20deg);
}
.person3 {
transform: rotate(40deg);
}
.text {
bottom: 40px;
font-family: "Muli";
font-size: 10px;
line-height: 20px;
padding: 24px;
position: absolute;
text-align: center;
}
.navDots {
bottom: 32px;
display: flex;
justify-content: space-between;
left: 50%;
margin: auto;
position: absolute;
transform: translateX(-50%);
width: 72px;
}
.navDot {
background: black;
border-radius: 3px;
height: 6px;
width: 6px;
}
.p1-fil5 {
fill: #2a2d40;
}
.p1-fil7 {
fill: #2e2d2d;
}
.p1-fil4 {
fill: #ee4239;
}
.p1-fil22 {
fill: #212123;
fill-rule: nonzero;
}
.p1-fil20 {
fill: #222225;
fill-rule: nonzero;
}
.p1-fil26 {
fill: #28282a;
fill-rule: nonzero;
}
.p1-fil3 {
fill: #2a2d40;
fill-rule: nonzero;
}
.p1-fil15 {
fill: #2e2f30;
fill-rule: nonzero;
}
.p1-fil13 {
fill: #303b50;
fill-rule: nonzero;
}
.p1-fil18 {
fill: #34395f;
fill-rule: nonzero;
}
.p1-fil6 {
fill: #353d65;
fill-rule: nonzero;
}
.p1-fil12 {
fill: #435361;
fill-rule: nonzero;
}
.p1-fil39 {
fill: #546eb0;
fill-rule: nonzero;
}
.p1-fil10 {
fill: #6e88a4;
fill-rule: nonzero;
}
.p1-fil37 {
fill: #7a8cc5;
fill-rule: nonzero;
}
.p1-fil11 {
fill: #807e80;
fill-rule: nonzero;
}
.p1-fil29 {
fill: #897d7d;
fill-rule: nonzero;
}
.p1-fil27 {
fill: #9a5245;
fill-rule: nonzero;
}
.p1-fil24 {
fill: #a0683d;
fill-rule: nonzero;
}
.p1-fil21 {
fill: #b8d4e3;
fill-rule: nonzero;
}
.p1-fil31 {
fill: #ba3a4b;
fill-rule: nonzero;
}
.p1-fil35 {
fill: #c13538;
fill-rule: nonzero;
}
.p1-fil25 {
fill: #c77560;
fill-rule: nonzero;
}
.p1-fil33 {
fill: #d64456;
fill-rule: nonzero;
}
.p1-fil28 {
fill: #db7f7c;
fill-rule: nonzero;
}
.p1-fil0 {
fill: #e0c5c0;
fill-rule: nonzero;
}
.p1-fil9 {
fill: #e56f68;
fill-rule: nonzero;
}
.p1-fil32 {
fill: #e65261;
fill-rule: nonzero;
}
.p1-fil19 {
fill: #e76e41;
fill-rule: nonzero;
}
.p1-fil14 {
fill: #ebadab;
fill-rule: nonzero;
}
.p1-fil23 {
fill: #ed9897;
fill-rule: nonzero;
}
.p1-fil34 {
fill: #ee4239;
fill-rule: nonzero;
}
.p1-fil16 {
fill: #ef8e8a;
fill-rule: nonzero;
}
.p1-fil38 {
fill: #f09b97;
fill-rule: nonzero;
}
.p1-fil36 {
fill: #f29d99;
fill-rule: nonzero;
}
.p1-fil17 {
fill: #f5a656;
fill-rule: nonzero;
}
.p1-fil30 {
fill: #f69773;
fill-rule: nonzero;
}
.p1-fil2 {
fill: #f7d7d8;
fill-rule: nonzero;
}
.p1-fil8 {
fill: #fdeae7;
fill-rule: nonzero;
}
.p1-fil1 {
fill: #fefefe;
fill-rule: nonzero;
}
.p2-fil5 {
fill: #2a2d40;
}
.p2-fil7 {
fill: #2e2d2d;
}
.p2-fil4 {
fill: #ee4239;
}
.p2-fil22 {
fill: #212123;
fill-rule: nonzero;
}
.p2-fil20 {
fill: #222225;
fill-rule: nonzero;
}
.p2-fil26 {
fill: #28282a;
fill-rule: nonzero;
}
.p2-fil3 {
fill: #2a2d40;
fill-rule: nonzero;
}
.p2-fil15 {
fill: #2e2f30;
fill-rule: nonzero;
}
.p2-fil13 {
fill: #303b50;
fill-rule: nonzero;
}
.p2-fil18 {
fill: #34395f;
fill-rule: nonzero;
}
.p2-fil6 {
fill: #353d65;
fill-rule: nonzero;
}
.p2-fil12 {
fill: #435361;
fill-rule: nonzero;
}
.p2-fil39 {
fill: #546eb0;
fill-rule: nonzero;
}
.p2-fil10 {
fill: #6e88a4;
fill-rule: nonzero;
}
.p2-fil37 {
fill: #7a8cc5;
fill-rule: nonzero;
}
.p2-fil11 {
fill: #807e80;
fill-rule: nonzero;
}
.p2-fil29 {
fill: #897d7d;
fill-rule: nonzero;
}
.p2-fil27 {
fill: #9a5245;
fill-rule: nonzero;
}
.p2-fil24 {
fill: #a0683d;
fill-rule: nonzero;
}
.p2-fil21 {
fill: #b8d4e3;
fill-rule: nonzero;
}
.p2-fil31 {
fill: #ba3a4b;
fill-rule: nonzero;
}
.p2-fil35 {
fill: #c13538;
fill-rule: nonzero;
}
.p2-fil25 {
fill: #c77560;
fill-rule: nonzero;
}
.p2-fil33 {
fill: #d64456;
fill-rule: nonzero;
}
.p2-fil28 {
fill: #db7f7c;
fill-rule: nonzero;
}
.p2-fil0 {
fill: #e0c5c0;
fill-rule: nonzero;
}
.p2-fil9 {
fill: #e56f68;
fill-rule: nonzero;
}
.p2-fil32 {
fill: #e65261;
fill-rule: nonzero;
}
.p2-fil19 {
fill: #e76e41;
fill-rule: nonzero;
}
.p2-fil14 {
fill: #ebadab;
fill-rule: nonzero;
}
.p2-fil23 {
fill: #ed9897;
fill-rule: nonzero;
}
.p2-fil34 {
fill: #ee4239;
fill-rule: nonzero;
}
.p2-fil16 {
fill: #ef8e8a;
fill-rule: nonzero;
}
.p2-fil38 {
fill: #f09b97;
fill-rule: nonzero;
}
.p2-fil36 {
fill: #f29d99;
fill-rule: nonzero;
}
.p2-fil17 {
fill: #f5a656;
fill-rule: nonzero;
}
.p2-fil30 {
fill: #f69773;
fill-rule: nonzero;
}
.p2-fil2 {
fill: #f7d7d8;
fill-rule: nonzero;
}
.p2-fil8 {
fill: #fdeae7;
fill-rule: nonzero;
}
.p2-fil1 {
fill: #fefefe;
fill-rule: nonzero;
}
.p3-fil5 {
fill: #2a2d40;
}
.p3-fil7 {
fill: #2e2d2d;
}
.p3-fil4 {
fill: #ee4239;
}
.p3-fil22 {
fill: #212123;
fill-rule: nonzero;
}
.p3-fil20 {
fill: #222225;
fill-rule: nonzero;
}
.p3-fil26 {
fill: #28282a;
fill-rule: nonzero;
}
.p3-fil3 {
fill: #2a2d40;
fill-rule: nonzero;
}
.p3-fil15 {
fill: #2e2f30;
fill-rule: nonzero;
}
.p3-fil13 {
fill: #303b50;
fill-rule: nonzero;
}
.p3-fil18 {
fill: #34395f;
fill-rule: nonzero;
}
.p3-fil6 {
fill: #353d65;
fill-rule: nonzero;
}
.p3-fil12 {
fill: #435361;
fill-rule: nonzero;
}
.p3-fil39 {
fill: #546eb0;
fill-rule: nonzero;
}
.p3-fil10 {
fill: #6e88a4;
fill-rule: nonzero;
}
.p3-fil37 {
fill: #7a8cc5;
fill-rule: nonzero;
}
.p3-fil11 {
fill: #807e80;
fill-rule: nonzero;
}
.p3-fil29 {
fill: #897d7d;
fill-rule: nonzero;
}
.p3-fil27 {
fill: #9a5245;
fill-rule: nonzero;
}
.p3-fil24 {
fill: #a0683d;
fill-rule: nonzero;
}
.p3-fil21 {
fill: #b8d4e3;
fill-rule: nonzero;
}
.p3-fil31 {
fill: #ba3a4b;
fill-rule: nonzero;
}
.p3-fil35 {
fill: #c13538;
fill-rule: nonzero;
}
.p3-fil25 {
fill: #c77560;
fill-rule: nonzero;
}
.p3-fil33 {
fill: #d64456;
fill-rule: nonzero;
}
.p3-fil28 {
fill: #db7f7c;
fill-rule: nonzero;
}
.p3-fil0 {
fill: #e0c5c0;
fill-rule: nonzero;
}
.p3-fil9 {
fill: #e56f68;
fill-rule: nonzero;
}
.p3-fil32 {
fill: #e65261;
fill-rule: nonzero;
}
.p3-fil19 {
fill: #e76e41;
fill-rule: nonzero;
}
.p3-fil14 {
fill: #ebadab;
fill-rule: nonzero;
}
.p3-fil23 {
fill: #ed9897;
fill-rule: nonzero;
}
.p3-fil34 {
fill: #ee4239;
fill-rule: nonzero;
}
.p3-fil16 {
fill: #ef8e8a;
fill-rule: nonzero;
}
.p3-fil38 {
fill: #f09b97;
fill-rule: nonzero;
}
.p3-fil36 {
fill: #f29d99;
fill-rule: nonzero;
}
.p3-fil17 {
fill: #f5a656;
fill-rule: nonzero;
}
.p3-fil30 {
fill: #f69773;
fill-rule: nonzero;
}
.p3-fil2 {
fill: #f7d7d8;
fill-rule: nonzero;
}
.p3-fil8 {
fill: #fdeae7;
fill-rule: nonzero;
}
.p3-fil1 {
fill: #fefefe;
fill-rule: nonzero;
}
</style>
</head>
<body translate="no">
<div id="root"></div>
<script type="text/javascript" src="http://repo.bfw.wiki/bfwrepo/js/react.dev.js"></script>
<script type="text/javascript" src="http://repo.bfw.wiki/bfwrepo/js/react-dom.dev.js"></script>
<script type="text/javascript" src="http://repo.bfw.wiki/bfwrepo/js/react-spring-web.js"></script>
<script type="text/javascript" src="http://repo.bfw.wiki/bfwrepo/js/react-use-gesture.js"></script>
<script>
function _extends() {_extends = Object.assign || function (target) {for (var i = 1; i < arguments.length; i++) {if (window.CP.shouldStopExecution(0)) break;var source = arguments[i];for (var key in source) {if (Object.prototype.hasOwnProperty.call(source, key)) {target[key] = source[key];}}}window.CP.exitedLoop(0);return target;};return _extends.apply(this, arguments);}const { useState, useEffect } = React;
const { useSpring, animated, config } = ReactSpring;
const { useDrag } = ReactUseGesture;
function P1() {
return (
React.createElement("svg", {
xmlns: "http://www.w3.org/2000/svg",
width: "256",
height: "464",
fillRule: "evenodd",
clipRule: "evenodd",
imageRendering: "optimizeQuality",
shapeRendering: "geometricPrecision",
textRendering: "geometricPrecision",
version: "1.1",
viewBox: "0 0 256 464",
xmlSpace: "preserve" },
React.createElement("defs", null,
React.createElement("clipPath", { clipRule: "nonzero" },
React.createElement("path", { d: "M1515 6513H223V5277h533v429c0 74 60 134 134 134h625z" })),
React.createElement("clipPath", { clipRule: "nonzero" },
React.createElement("path", { d: "M3334 6513h-722v-673h722z" })),
React.createElement("clipPath", { clipRule: "nonzero" },
React.createElement("path", { d: "M2612 6513H1515v-673h83v673z" })),
React.createElement("clipPath", { clipRule: "nonzero" },
React.createElement("path", { d: "M2612 6513H1598v-673h1014z" })),
React.createElement("clipPath", { clipRule: "nonzero" },
React.createElement("path", { d: "M4626 6513H3334h625v-676c8 2 18 3 27 3h640z" })),
React.createElement("clipPath", { clipRule: "nonzero" },
React.createElement("path", { d: "M3959 6513h-56v-701c16 13 35 21 56 26v676z" })),
React.createElement("clipPath", { clipRule: "nonzero" },
React.createElement("path", { d: "M3904 6513h-570v-673h10c103 0 88-65 88-188v-375h420v429c0 43 20 81 52 106z" })),
React.createElement("clipPath", { clipRule: "nonzero" },
React.createElement("path", { d: "M3344 5840h-10v-563h98v375c0 123 15 188-88 188z" })),
React.createElement("clipPath", { clipRule: "nonzero" },
React.createElement("path", { d: "M6445 6513h-722v-673h722z" })),
React.createElement("clipPath", { clipRule: "nonzero" },
React.createElement("path", { d: "M5723 6513H4626v-673h83v673z" })),
React.createElement("clipPath", { clipRule: "nonzero" },
React.createElement("path", { d: "M5723 6513H4709v-673h1014z" })),
React.createElement("clipPath", { clipRule: "nonzero" },
React.createElement("path", { d: "M7820 5277h2305v1236h56V5277h-56z" })),
React.createElement("clipPath", { clipRule: "nonzero" },
React.createElement("path", { d: "M7737 6513H6446h624V5277h750-84v1236z" })),
React.createElement("clipPath", { clipRule: "nonzero" },
React.createElement("path", { d: "M7070 6513h-56V5277h56z" })),
React.createElement("clipPath", { clipRule: "nonzero" },
React.createElement("path", { d: "M7015 6513h-570v-673c72-3 129-62 129-134v-429h441z" })),
React.createElement("clipPath", { clipRule: "nonzero" },
React.createElement("path", { d: "M6445 5840v-563h129v429c0 72-57 131-129 134z" })),
React.createElement("clipPath", { clipRule: "nonzero" },
React.createElement("path", { d: "M10126 6513H8834V5277h1292z" })),
React.createElement("clipPath", { clipRule: "nonzero" },
React.createElement("path", { d: "M8834 6513H7737V5277h83v1236z" })),
React.createElement("clipPath", { clipRule: "nonzero" },
React.createElement("path", { d: "M8834 6513H7820V5277h1014z" }))),
React.createElement("g", { display: "inline" },
React.createElement("path", {
fillRule: "evenodd",
d: "M2685 4226L2573 4035 2471 4109 2589 4293z",
className: "p1-fil9",
clipRule: "evenodd",
imageRendering: "optimizeQuality",
opacity: "1",
shapeRendering: "geometricPrecision",
textRendering: "geometricPrecision",
transform: "matrix(.096 0 0 .096 -73 -95.969)" }),
React.createElement("path", {
fillRule: "evenodd",
strokeWidth: "0.096",
d: "M174.384 313.938l-11.136 17.183c-.672 1.152-.48 2.688.48 3.648l27.648-17.663-7.392-9.408z",
className: "p1-fil0",
clipRule: "evenodd",
imageRendering: "optimizeQuality",
opacity: "1",
shapeRendering: "geometricPrecision",
textRendering: "geometricPrecision" }),
React.createElement("path", {
fillRule: "evenodd",
strokeWidth: "0.096",
d: "M150.097 203.061l5.184 40.223 32.543 55.966-26.976 14.496-26.303-52.318c-1.92-3.264-3.264-6.72-4.224-10.368l-6.047-2.........完整代码请登录后点击上方下载按钮下载查看
















网友评论0