HTML 5 CSS 3 & JavaScript 实现用按钮播放视频功能cid1065-网页前端设计
Warning: Undefined property: stdClass::$maxbutton id="5" in /www/wwwroot/code.5g-o.com/wp-content/plugins/kama-clic-counter/class.KCCounter.php on line 733
html and css
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Playmorph</title> <script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/1.20.4/TweenMax.min.js"></script> <style> body { display: flex; justify-content: center; align-items: center; height: 100vh; margin: 0; background-image: url(active-adult-asian-1033374.jpg); background-size:cover; overflow: hidden; } .play-button { width: 152px; height: 152px; position: relative; cursor: pointer; } .play-backdrop { width: 100%; height: 100%; position: fixed; left: 0; top: 0; background-image: url(beautiful-girl-model-157131.jpg); opacity: 0; background-size: cover; visibility: hidden; } .play-close { width: 30px; height: 30px; position: absolute; right: 0; bottom: calc(100% + 15px); border: none; outline: none; background: deepskyblue; opacity: 0; cursor: pointer; } .play-close::before, .play-close::after { content: ""; display: block; width: 100%; height: 1px; position: absolute; top: 50%; left: 0; transform: rotate(45deg); background-color: white; border-radius: 50px; } .play-close::after { transform: rotate(-45deg); color:black; } .play-circles { display: block; width: 100%; height: 100%; } .play-perspective { width: 600px; height: 400px; position: absolute; left: -230px; top: -125px; } .play-triangle { width: 600px; height: 400px; background-color:deepskyblue; cursor: pointer; } </style> </head> <body> <div class="play-backdrop"></div> <div class="play-button"> <svg class="play-circles" viewBox="0 0 152 152"> <circle class="play-circle-01" fill="none" stroke="#fff" stroke-width="3" stroke-dasharray="343" cx="76" cy="76" r="72.7"/> <circle class="play-circle-02" fill="none" stroke="#fff" stroke-width="3" stroke-dasharray="309" cx="76" cy="76" r="65.5"/> </svg> <div class="play-perspective"> <button class="play-close"></button> <div class="play-triangle"> <div class="play-video"> <iframe width="600" height="415" src="https://www.youtube.com/embed/9w2JLO7A-Os" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe> </div> </div> </div> </div> <script> TweenMax.set(".play-circle-01", { rotation: 90, transformOrigin: "center" }) TweenMax.set(".play-circle-02", { rotation: -90, transformOrigin: "center" }) TweenMax.set(".play-perspective", { xPercent: 6.5, scale: .175, transformOrigin: "center", perspective: 1 }) TweenMax.set(".play-video", { visibility: "hidden", opacity: 0, }) TweenMax.set(".play-triangle", { transformOrigin: "left center", transformStyle: "preserve-3d", rotationY: 10, scaleX: 2 }) const rotateTL = new TimelineMax({ paused: true }) .to(".play-circle-01", .7, { opacity: .1, rotation: '+=360', strokeDasharray: 456, ease: Power1.easeInOut }, 0) .to(".play-circle-02", .7, { opacity: .1, rotation: '-=360', strokeDasharray: 411, ease: Power1.easeInOut }, 0) const openTL = new TimelineMax({ paused: true }) .to(".play-backdrop", 1, { opacity: .95, visibility: "visible", ease: Power2.easeInOut }, 0) .to(".play-close", 1, { opacity: 1, ease: Power2.easeInOut }, 0) .to(".play-perspective", 1, { xPercent: 0, scale: 1, ease: Power2.easeInOut }, 0) .to(".play-triangle", 1, { scaleX: 1, ease: ExpoScaleEase.config(2, 1, Power2.easeInOut) }, 0) .to(".play-triangle", 1, { rotationY: 0, ease: ExpoScaleEase.config(10, .01, Power2.easeInOut) }, 0) .to(".play-video", 1, { visibility: "visible", opacity: 1 }, .5) const button = document.querySelector(".play-button") const backdrop = document.querySelector(".play-backdrop") const close = document.querySelector(".play-close") button.addEventListener("mouseover", () => rotateTL.play()) button.addEventListener("mouseleave", () => rotateTL.reverse()) button.addEventListener("click", () => openTL.play()) backdrop.addEventListener("click", () => openTL.reverse()) close.addEventListener("click", e => { e.stopPropagation() openTL.reverse() }) </script> </body> </html>
一键获取本网站前端代码设计的所有源码
获取资源构建和完善自己的源码库
源码可以在本地直接演示
同时研究和体验 如何将一些具体的想法的实现过程
源码可以直接嫁接到自己的网站里复用
稍作修改成为自己的作品