马黑PHP整站系统

单图背景无缝滚动模板二:伪元素背景移动

位置: 首页 > 代码集锦[ 发布时间: 2024.4.7  作者: 马黑  阅读: 128 ]

约定:帖子元素宽高尺寸等于图片实际宽高尺寸。以下代码为实例代码,内含(一个)视频与音频同步控制:

<style> #mydiv {     margin: 20px 0 20px calc(50% - 641px);     width: 1280px;     height: 800px;     background: lightblue;     box-shadow: 4px 4px 8px #000;     overflow: hidden;     z-index: 1;     position: relative;     --begin1: 0px;     --begin2: -1280px; } #mydiv::before , #mydiv::after {     position: absolute;     content: '';     inset: 0;     background: url('https://638183.freep.cn/638183/t24/1/prologue.jpg') no-repeat;     z-index: -2; } #mydiv::before {     background-position: var(--begin1) 0; } #mydiv::after {     transform: scale(-1, 1);     background-position: var(--begin2) 0; } #play {     position: absolute;     left: calc(50% - 50px);     top: 20px;     width: 100px;     cursor: pointer;     animation: rotating 5s linear infinite var(--state); } #vid {     position: absolute;     right: 0;     width: 40%;     height: 30%;     object-fit: cover;     mix-blend-mode: screen;     transform: rotate(-15deg);     pointer-events: none; } @keyframes rotating { to { transform: rotate(360deg); } } </style>   <div id="mydiv">     <audio id="aud" src="https://music.163.com/song/media/outer/url?id=2923186" autoplay></audio>     <video id="vid" src="https://img.tukuppt.com/video_show/7165162/00/19/81/5f154503b457d.mp4" muted loop></video>     <img id="play" src="https://638183.freep.cn/638183/small/4yc.png" alt="" /> </div>   <script> var ww = mydiv.offsetWidth; var step = 0.5, begin1 = 0, raf = null; aud.loo = false; play.onclick = () => aud.paused ? aud.play() : aud.pause(); aud.onpause = aud.onplaying = () => mState(); aud.onended = () => { aud.play(); cancelAnimationFrame(raf); } aud.onseeked = () => cancelAnimationFrame(raf); var moving = () => {     //自左向右     begin1 += step;     if(begin1 >= ww) begin1 = -ww;
    /* 自右向左     begin1 -= step;     if(begin1 <= -ww) begin1 = ww;     */
    begin2 = begin1 >= 0 ? -1 * (begin1 - ww + 1) : begin2 = -1 * (begin1 + ww - 1);     mydiv.style.setProperty('--begin1', begin1 + 'px');     mydiv.style.setProperty('--begin2', begin2 + 'px');     aud.paused ? cancelAnimationFrame(raf) : raf = requestAnimationFrame(moving); }; var mState = () => {     aud.paused         ? (mydiv.style.setProperty('--state', 'paused'), cancelAnimationFrame(raf), vid.pause())         : (mydiv.style.setProperty('--state', 'running'), raf = requestAnimationFrame(moving), vid.play()); }; </script>

前一篇: canvas画布圆形进度条播放器
下一篇: 单图背景无缝滚动模板一:伪元素移动

发表评论:

       

评论列表 [1条]

#1 | 飞飞 于 2024-4-7 12:50 发布: 这个是我看到的levels.htm网页贴子的背景移动的代码。老师为了同上贴区分换成这个同背景代码的贴子了吧。。两个都有加上视频及控制,十分好用。。

Copyright © 2023 All Right Reserved 马黑PHP文章管理整站系统v1.8
联系我们: gxblk@163.com