【漫步特效】请不要在秋天里失恋
<style>#mydiv {
margin: 130px 0 30px calc(50% - 850px);
display: grid;
place-items: center;
width: 1700px;
height: 850px;
background: lightblue url('https://kkshan.com/data/attachment/forum/202511/19/184736rc3vxv3zeo4ciwce.jpg') no-repeat center/cover;
box-shadow: 3px 3px 20px #000;
user-select: none;
overflow: hidden;
position: relative;
z-index: 1;
}
#vid {
position: absolute;
width: 130%;
height: 130%;
object-fit: cover;
pointer-events: none;
mix-blend-mode: screen;
mask: linear-gradient(to top right, red 88%, transparent 0);
z-index: 6;
opacity: .45;
animation: videoPulse 8s infinite alternate;
}
.slide-base {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-size: cover;
background-position: center;
opacity: 0;
animation-duration: 80s;
animation-iteration-count: infinite;
transform-origin: center center;
}
.slide-fade { z-index: 2; animation-name: slideFade; }
.slide-skew { z-index: 3; }
.slide-rotate, .slide-push, .slide-fade-rotate, .slide-fold, .slide-shutter { z-index: 4; }
.slide-zoom-fade, .slide-flip, .slide-slide-up, .slide-pixelate, .slide-color-fade, .slide-radial { z-index: 5; }
.slide-fold { transform-origin: top center; }
.slide-color-fade { filter: grayscale(100%); }
.slide-radial { clip-path: circle(0% at center); }
@keyframes slideFade {
0%, 100% { opacity: 0; transform: scale(1.1); }
2.67%, 5.33% { opacity: 1; transform: scale(1); }
8% { opacity: 0; transform: scale(0.9); }
}
@keyframes skew1 {
8%, 100% { opacity: 0; transform: skewX(-12deg) scale(1.2); }
10.67%, 13.33% { opacity: 1; transform: skewX(0) scale(1); }
16% { opacity: 0; transform: skewX(12deg) scale(0.8); }
}
@keyframes skew2 {
16.5%, 100% { opacity: 0; transform: skewY(-8deg) scale(1.15); }
19.17%, 21.83% { opacity: 1; transform: skewY(0) scale(1); }
24.5% { opacity: 0; transform: skewY(8deg) scale(0.85); }
}
@keyframes skew3 {
25%, 100% { opacity: 0; transform: skew(-6deg, 6deg) scale(1.2); }
27.67%, 30.33% { opacity: 1; transform: skew(0, 0) scale(1); }
33% { opacity: 0; transform: skew(6deg, -6deg) scale(0.8); }
}
@keyframes skew4 {
33.5%, 100% { opacity: 0; transform: skew(10deg, -10deg) scale(1.15); }
36.17%, 38.83% { opacity: 1; transform: skew(0, 0) scale(1); }
41.5% { opacity: 0; transform: skew(-10deg, 10deg) scale(0.85); }
}
@keyframes skew5 {
42%, 100% { opacity: 0; transform: skewY(12deg) scale(1.2); }
44.67%, 47.33% { opacity: 1; transform: skewY(0) scale(1); }
50% { opacity: 0; transform: skewY(-12deg) scale(0.8); }
}
@keyframes rotateScale {
50.5%, 100% { opacity: 0; transform: rotate(-15deg) scale(0.8); }
53.17%, 55.83% { opacity: 1; transform: rotate(0) scale(1); }
58.5% { opacity: 0; transform: rotate(15deg) scale(0.8); }
}
@keyframes pushIn {
59%, 100% { opacity: 0; transform: translateX(-100%); }
61.67%, 64.33% { opacity: 1; transform: translateX(0); }
67% { opacity: 0; transform: translateX(100%); }
}
@keyframes fadeRotate {
67.5%, 100% { opacity: 0; transform: rotate(0deg) scale(1.1); }
70.17%, 72.83% { opacity: 1; transform: rotate(10deg) scale(1); }
75.5% { opacity: 0; transform: rotate(20deg) scale(0.9); }
}
@keyframes foldOpen {
76%, 100% { opacity: 0; transform: scaleY(0.1); }
78.67%, 81.33% { opacity: 1; transform: scaleY(1); }
84% { opacity: 0; transform: scaleY(0.1); }
}
@keyframes shutterOpen {
84.5%, 100% { opacity: 1; clip-path: inset(0 100% 0 0); }
87.17%, 89.83% { clip-path: inset(0 0 0 0); }
92.5% { opacity: 1; clip-path: inset(0 0 0 100%); }
}
@keyframes zoomFade {
2%, 100% { opacity: 0; transform: scale(0.3); }
4.67%, 7.33% { opacity: 1; transform: scale(1); }
10% { opacity: 0; transform: scale(1.5); }
}
@keyframes flip {
10.5%, 100% { opacity: 0; transform: rotateY(180deg) scale(0.8); }
13.17%, 15.83% { opacity: 1; transform: rotateY(0deg) scale(1); }
18.5% { opacity: 0; transform: rotateY(-180deg) scale(0.8); }
}
@keyframes slideUp {
19%, 100% { opacity: 0; transform: translateY(100%); }
21.67%, 24.33% { opacity: 1; transform: translateY(0); }
27% { opacity: 0; transform: translateY(-100%); }
}
@keyframes pixelate {
27.5%, 100% { opacity: 0; filter: blur(20px) contrast(0); }
30.17%, 32.83% { opacity: 1; filter: blur(0) contrast(1); }
35.5% { opacity: 0; filter: blur(20px) contrast(0); }
}
@keyframes colorFade {
36%, 100% { opacity: 0; filter: grayscale(100%) brightness(0.5); }
38.67%, 41.33% { opacity: 1; filter: grayscale(0%) brightness(1); }
44% { opacity: 0; filter: grayscale(100%) brightness(0.5); }
}
@keyframes radialExpand {
44.5%, 100% { opacity: 1; clip-path: circle(0% at center); }
47.17%, 49.83% { clip-path: circle(50% at center); }
52.5% { opacity: 1; clip-path: circle(100% at center); }
55% { opacity: 0; clip-path: circle(150% at center); }
}
@keyframes videoPulse {
0% { opacity: 0.4; transform: scale(1.02); }
100% { opacity: 0.5; transform: scale(1); }
}
.eagle-js {
position: absolute;
width: 100px;
height: auto;
z-index: 10;
transition: opacity 1.5s ease;
}
#overlay-img {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
object-fit: cover;
z-index: 100;
pointer-events: none;
}
</style>
</head>
<body>
<div id="mydiv">
<img id="overlay-img" src="https://kkshan.com/data/attachment/forum/202511/19/184736rj3360jpyx225zbp.png" alt="Overlay">
<img class="eagle-js" id="eagle1" src="https://webftp-bbs.hnol.net/ggkj2017/yunduanmanbu/16/6/5/ee(1).gif" alt="Eagle 1">
<img class="eagle-js" id="eagle2" src="https://webftp-bbs.hnol.net/ggkj2017/yunduanmanbu/16/6/5/ee(1).gif" alt="Eagle 2">
<!-- Slides with animations -->
<div class="slide-fade slide-base" style="background-image: url('https://kkshan.com/data/attachment/forum/202511/19/184736rc3vxv3zeo4ciwce.jpg'); animation-delay: 0s;"></div>
<div class="slide-fade slide-base" style="background-image: url('https://kkshan.com/data/attachment/forum/202511/19/184736g544kzc545vpphk4.jpg'); animation-delay: 4s;"></div>
<div class="slide-fade slide-base" style="background-image: url('https://kkshan.com/data/attachment/forum/202511/19/184737yfsdjywk8kt6l6y5.jpg'); animation-delay: 8s;"></div>
<div class="slide-fade slide-base" style="background-image: url('https://kkshan.com/data/attachment/forum/202511/19/184737c5ug8dve8uollf2d.jpg'); animation-delay: 12s;"></div>
<div class="slide-fade slide-base" style="background-image: url('https://kkshan.com/data/attachment/forum/202511/19/184737vlurr2lnnj3xruxl.jpg'); animation-delay: 16s;"></div>
<div class="slide-skew slide-base" style="background-image: url('https://kkshan.com/data/attachment/forum/202511/19/184736rc3vxv3zeo4ciwce.jpg'); animation-name: skew1; animation-delay: 20s;"></div>
<div class="slide-skew slide-base" style="background-image: url('https://kkshan.com/data/attachment/forum/202511/19/184736g544kzc545vpphk4.jpg'); animation-name: skew2; animation-delay: 24s;"></div>
<div class="slide-skew slide-base" style="background-image: url('https://kkshan.com/data/attachment/forum/202511/19/184737yfsdjywk8kt6l6y5.jpg'); animation-name: skew3; animation-delay: 28s;"></div>
<div class="slide-skew slide-base" style="background-image: url('https://kkshan.com/data/attachment/forum/202511/19/184737c5ug8dve8uollf2d.jpg'); animation-name: skew4; animation-delay: 32s;"></div>
<div class="slide-skew slide-base" style="background-image: url('https://kkshan.com/data/attachment/forum/202511/19/184737vlurr2lnnj3xruxl.jpg'); animation-name: skew5; animation-delay: 36s;"></div>
<div class="slide-rotate slide-base" style="background-image: url('https://kkshan.com/data/attachment/forum/202511/19/184736rc3vxv3zeo4ciwce.jpg'); animation-name: rotateScale; animation-delay: 40s;"></div>
<div class="slide-push slide-base" style="background-image: url('https://kkshan.com/data/attachment/forum/202511/19/184736g544kzc545vpphk4.jpg'); animation-name: pushIn; animation-delay: 44s;"></div>
<div class="slide-fade-rotate slide-base" style="background-image: url('https://kkshan.com/data/attachment/forum/202511/19/184737yfsdjywk8kt6l6y5.jpg'); animation-name: fadeRotate; animation-delay: 48s;"></div>
<div class="slide-fold slide-base" style="background-image: url('https://kkshan.com/data/attachment/forum/202511/19/184737c5ug8dve8uollf2d.jpg'); animation-name: foldOpen; animation-delay: 52s;"></div>
<div class="slide-shutter slide-base" style="background-image: url('https://kkshan.com/data/attachment/forum/202511/19/184737vlurr2lnnj3xruxl.jpg'); animation-name: shutterOpen; animation-delay: 56s;"></div>
<div class="slide-zoom-fade slide-base" style="background-image: url('https://kkshan.com/data/attachment/forum/202511/19/184736g544kzc545vpphk4.jpg'); animation-name: zoomFade; animation-delay: 2s;"></div>
<div class="slide-flip slide-base" style="background-image: url('https://kkshan.com/data/attachment/forum/202511/19/184736rc3vxv3zeo4ciwce.jpg'); animation-name: flip; animation-delay: 12s;"></div>
<div class="slide-slide-up slide-base" style="background-image: url('https://kkshan.com/data/attachment/forum/202511/19/184736g544kzc545vpphk4.jpg'); animation-name: slideUp; animation-delay: 22s;"></div>
<div class="slide-pixelate slide-base" style="background-image: url('https://kkshan.com/data/attachment/forum/202511/19/184737c5ug8dve8uollf2d.jpg'); animation-name: pixelate; animation-delay: 32s;"></div>
<div class="slide-color-fade slide-base" style="background-image: url('https://kkshan.com/data/attachment/forum/202511/19/184737vlurr2lnnj3xruxl.jpg'); animation-name: colorFade; animation-delay: 42s;"></div>
<div class="slide-radial slide-base" style="background-image: url('https://kkshan.com/data/attachment/forum/202511/19/184736rc3vxv3zeo4ciwce.jpg'); animation-name: radialExpand; animation-delay: 52s;"></div>
<audio id="aud" src="https://ting8.yymp3.com/new27/zhaonaiji/2.mp3" autoplay loop></audio>
<video id="vid" src="https://img.tukuppt.com/video_show/2629112/00/08/02/5d1500e5da309.mp4" autoplay loop muted></video>
</div>
<script>
window.addEventListener('load', () => {
const eagle1 = document.getElementById('eagle1');
const eagle2 = document.getElementById('eagle2');
const container = document.getElementById('mydiv');
const containerWidth = container.clientWidth;
const containerHeight = container.clientHeight;
const flightRange = {
minX: containerWidth * 0.15,
maxX: containerWidth * 0.85,
minY: containerHeight * 0.05,
maxY: containerHeight * 0.45
};
let eagle1State = { x: flightRange.minX + 80, y: flightRange.minY + 30, speedX: 2.3, speedY: 0, scaleX: 1, rotation: 0, opacity: 1 };
let eagle2State = { x: flightRange.maxX - 80, y: flightRange.minY + 50, speedX: -2.3, speedY: 0, scaleX: -1, rotation: 0, opacity: 1 };
function updateEagleState(state) {
state.x += state.speedX;
if (state.x > flightRange.maxX || state.x < flightRange.minX) {
state.x = Math.max(flightRange.minX, Math.min(flightRange.maxX, state.x));
state.speedX = -state.speedX;
state.scaleX = -state.scaleX;
}
state.speedY = Math.sin(state.x * 0.015) * 0.7;
state.y = Math.max(flightRange.minY, Math.min(flightRange.maxY, state.y + state.speedY));
state.rotation = state.speedY * 4.5;
return state;
}
function applyStyles(eagle, state) {
eagle.style.left = `${state.x}px`;
eagle.style.top = `${state.y}px`;
eagle.style.opacity = state.opacity;
eagle.style.transform = `scaleX(${state.scaleX}) rotate(${state.rotation}deg)`;
}
function animate() {
applyStyles(eagle1, updateEagleState(eagle1State));
applyStyles(eagle2, updateEagleState(eagle2State));
requestAnimationFrame(animate);
}
animate();
});
</script> 赞,顶帖角度十分巧妙 赞,顶帖内容精彩无限 谢谢楼主的辛苦分享 支持博主,分享超有深度啦 支持博主,分享超级出色
页:
[1]