当前位置 博文首页 > leslie lee的博客(python ansys):环形动态相册

    leslie lee的博客(python ansys):环形动态相册

    作者:[db:作者] 时间:2021-06-10 15:14

    github page链接请看readme?https://github.com/leslielee619/dynamic-photo-album

    环形动态相册,一直旋转,当鼠标悬停时,停止旋转,并播放对应图片人物的歌曲,鼠标离开后,暂停播放歌曲,并继续旋转。

    因为爬虫以及QSS,所以我一直想着要学习网页,最近想到要做这个动态相册,找了很多例子,都在gitee仓库中了。
    相册中的人物:Madonna、王菲、梅艳芳、中森明菜、山口百惠、张国荣、阿拉蕾、柯南与毛利兰,是我喜欢的歌手以及动漫人物,哈哈哈。

    图片、歌曲保存在gitee上,在本地写html、js、css文件。
    第一次学习并写网页,写的很笨,尤其是js文件,我觉得可以再简单点,如果你有好的想法请告诉我!
    过程记录、代码、图片、歌曲请看gitee仓库。https://gitee.com/leslielee_619/dynamic-album-/tree/master
    目前gitee page还不能用。你可以找一个在线网站运行一下。
    如果你运行出错了,那就是你链接搞错了,js、css、图片、歌曲的链接搞错了。

    我的事件是鼠标悬停,不是点击,所以也不支持,直接把鼠标放上去出错,显示:
    仅当用户同意、网站由用户激活或媒体无声时允许自动播放。
    Uncaught (in promise) DOMException: play() failed because the user didn't interact with the document first.
    可以打开浏览器后,先用鼠标随便点击一下,就当有事件触发了,就可以了悬停播放音乐了。

    html

    <!doctype html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>Beautiful People</title>
    <link rel="stylesheet" type="text/css" href="test.css">
    <script src="test.js"></script>
    </head>
    
    <body style="background-size:cover; background-image:url(https://gitee.com/leslielee_619/dynamic-album-/raw/master/resources/images/背景.jpg)">
    		<div style="margin: 0px auto; text-align: center; width: 736px;">
    			<h1 style="font:Chinese Xingkai;color:red">我的最爱</h1>
    		</div>
    		<div id="wrap">
    			<div id="head">
    				<div id="div1"><audio id="music1" src="https://gitee.com/leslielee_619/dynamic-album-/raw/master/resources/music/cut_Madonna.mp3"></audio></div>
    				<div id="div2"><audio id="music2" src="https://gitee.com/leslielee_619/dynamic-album-/raw/master/resources/music/cut_王菲.mp3"></audio></div>
    				<div id="div3"><audio id="music3" src="https://gitee.com/leslielee_619/dynamic-album-/raw/master/resources/music/cut_梅艳芳.mp3"></audio></div>
    				<div id="div4"><audio id="music4" src="https://gitee.com/leslielee_619/dynamic-album-/raw/master/resources/music/cut_中森名菜.mp3"></audio></div>
    				<div id="div5"><audio id="music5" src="https://gitee.com/leslielee_619/dynamic-album-/raw/master/resources/music/cut_山口百惠.mp3"></audio></div>
    				<div id="div6"><audio id="music6" src="https://gitee.com/leslielee_619/dynamic-album-/raw/master/resources/music/cut_毛利兰.mp3"></audio></div>
    				<div id="div7"><audio id="music7" src="https://gitee.com/leslielee_619/dynamic-album-/raw/master/resources/music/cut_阿拉蕾.mp3"></audio></div>
    				<div id="div8"><audio id="music8" src="https://gitee.com/leslielee_619/dynamic-album-/raw/master/resources/music/cut_张国荣.mp3"></audio></div>
    			</div>
    		</div>
    		<div style="margin: 0px auto; text-align: center; width: 736px;">
    			<h1 style="font:Chinese Xingkai;color:red">Leslie's photo album</h1>
    		</div>
    </body>
    </html>

    js

    window.onload = function(){
    	var div1 = document.getElementById("div1");
    	var div2 = document.getElementById("div2");
    	var div3 = document.getElementById("div3");
    	var div4 = document.getElementById("div4");
    	var div5 = document.getElementById("div5");
    	var div6 = document.getElementById("div6");
    	var div7 = document.getElementById("div7");
    	var div8 = document.getElementById("div8");	
    	
    	div1.addEventListener("mouseover", play1, false);
    	div1.addEventListener("mouseout", pause1, false);
    	
    	div2.addEventListener("mouseover", play2, false);
    	div2.addEventListener("mouseout", pause2, false);
    	
    	div3.addEventListener("mouseover", play3, false);
    	div3.addEventListener("mouseout", pause3, false);
    	
    	div4.addEventListener("mouseover", play4, false);
    	div4.addEventListener("mouseout", pause4, false);
    	
    	div5.addEventListener("mouseover", play5, false);
    	div5.addEventListener("mouseout", pause5, false);
    	
    	div6.addEventListener("mouseover", play6, false);
    	div6.addEventListener("mouseout", pause6, false);
    
    	div7.addEventListener("mouseover", play7, false);
    	div7.addEventListener("mouseout", pause7, false);
    	
    	div8.addEventListener("mouseover", play8, false);
    	div8.addEventListener("mouseout", pause8, false);
    	
    	function play1(){
    		img = div1.firstChild
    		img.play()
    	}
    	function pause1(){
    		img = div1.firstChild
    		img.pause()
    	}
    	
    	function play2(){
    		img = div2.firstChild
    		img.play()
    	}
    	function pause2(){
    		img = div2.firstChild
    		img.pause()
    	}
    
    	function play3(){
    		img = div3.firstChild
    		img.play()
    	}
    	function pause3(){
    		img = div3.firstChild
    		img.pause()
    	}
    	
    	function play4(){
    		img = div4.firstChild
    		img.play()
    	}
    	function pause4(){
    		img = div4.firstChild
    		img.pause()
    	}
    	
    	function play5(){
    		img = div5.firstChild
    		img.play()
    	}
    	function pause5(){
    		img = div5.firstChild
    		img.pause()
    	}
    	
    	function play6(){
    		img = div6.firstChild
    		img.play()
    	}
    	function pause6(){
    		img = div6.firstChild
    		img.pause()
    	}
    	
    	function play7(){
    		img = div7.firstChild
    		img.play()
    	}
    	function pause7(){
    		img = div7.firstChild
    		img.pause()
    	}
    
    	function play8(){
    		img = div8.firstChild
    		img.play()
    	}
    	function pause8(){
    		img = div8.firstChild
    		img.pause()
    	}
    }

    css

    body{
    	margin: 0;
    	background:gray;
    }
    #wrap{
    	width: 300px;
    	height: 400px;
    	position: relative;
    	margin:100px auto;
    	/*Define the distance of the 3D element from the view*/
    	-webkit-perspective:3000px;
    	-moz-perspective: 3000px;
    	-ms-transform:perspective(3000px);
    	-ms-perspective:3000px;
    }
    #head{
    	width: 100%;
    	height: 100%;
    	position: absolute;
    	-webkit-transform-style: preserve-3d;
    	-webkit-animation: donghua 20s linear infinite;
    }
    #head div{
    	position: absolute;
    	top:0;
    	left:0;
    	width: 300px;
    	height: 350px;
    	text-align: center;
    	line-height: 100px;
    }
    
    #head:hover{
    	animation:donghua 20s linear infinite paused;
    }
    
    #head div:hover{
    	width: 105%;
    	height: 105%;
    }
    
    #head div:nth-child(1){
    	-webkit-transform: rotateY(0deg) translateZ(400px);
    	-moz-transform: rotateY(0deg) translateZ(400px);
    	-ms-transform: rotateY(0deg) translateZ(400px);
    	background: url("https://gitee.com/leslielee_619/dynamic-album-/raw/master/resources/images/Madonna.jpg");
    	background-size: 100% 100%;
    	border-radius: 8px;
    	box-shadow: 0px 0px 10px #fff;
    }
    #head div:nth-child(2) {
    	-webkit-transform: rotateY(45deg) translateZ(500px);
    	-moz-transform: rotateY(45deg) translateZ(500px);
    	-ms-transform: rotateY(45deg) translateZ(500px);
    	background: url("https://gitee.com/leslielee_619/dynamic-album-/raw/master/resources/images/王菲.jpg");
    	background-size: 100% 100%;
    	border-radius: 8px;
    	box-shadow: 0px 0px 10px #fff;
    }
    #head div:nth-child(3) {
    -webkit-transform: rotateY(90deg) translateZ(400px);
    -moz-transform: rotateY(90deg) translateZ(400px);
    -ms-transform: rotateY(90deg) translateZ(400px);
    background: url("https://gitee.com/leslielee_619/dynamic-album-/raw/master/resources/images/梅艳芳.jpg");
    background-size: 100% 100%;
    border-radius: 8px;
    box-shadow: 0px 0px 10px #fff;
    }
    
    #head div:nth-child(4) {
    -webkit-transform: rotateY(135deg) translateZ(500px);
    -moz-transform: rotateY(135deg) translateZ(500px);
    -ms-transform: rotateY(135deg) translateZ(500px);
    background: url("https://gitee.com/leslielee_619/dynamic-album-/raw/master/resources/images/中森名菜.jpg");
    background-size: 100% 100%;
    border-radius: 8px;
    box-shadow: 0px 0px 10px #fff;
    }
    
    #head div:nth-child(5) {
    -webkit-transform: rotateY(180deg) translateZ(400px);
    -moz-transform: rotateY(180deg) translateZ(400px);
    -ms-transform: rotateY(180deg) translateZ(400px);
    background: url("https://gitee.com/leslielee_619/dynamic-album-/raw/master/resources/images/山口百惠.jpg");
    background-size: 100% 100%;
    border-radius: 8px;
    box-shadow: 0px 0px 10px #fff;
    }
    #head div:nth-child(6) {
    -webkit-transform: rotateY(225deg) translateZ(500px);
    -moz-transform: rotateY(225deg) translateZ(500px);
    -ms-transform: rotateY(225deg) translateZ(500px);
    background: url("https://gitee.com/leslielee_619/dynamic-album-/raw/master/resources/images/毛利兰.jpg");
    background-size: 100% 100%;
    border-radius: 8px;
    box-shadow: 0px 0px 10px #fff;
    }
    
    #head div:nth-child(7) {
    -webkit-transform: rotateY(270deg) translateZ(400px);
    -moz-transform: rotateY(270deg) translateZ(400px);
    -ms-transform: rotateY(270deg) translateZ(400px);
    background: url("https://gitee.com/leslielee_619/dynamic-album-/raw/master/resources/images/阿拉蕾.jpg");
    background-size: 100% 100%;
    border-radius: 8px;
    box-shadow: 0px 0px 10px #fff;
    }
    
    #head div:nth-child(8) {
    -webkit-transform: rotateY(315deg) translateZ(500px);
    -moz-transform: rotateY(315deg) translateZ(500px);
    -ms-transform: rotateY(315deg) translateZ(500px);
    background: url("https://gitee.com/leslielee_619/dynamic-album-/raw/master/resources/images/张国荣.jpg");
    background-size: 100% 100%;
    border-radius: 8px;
    box-shadow: 0px 0px 10px #fff;
    }
    
    @-webkit-keyframes donghua {
    0% {
    transform: rotateX(5deg) rotateY(360deg);
    }
    
    50% {
    transform: rotateX(-5deg) rotateY(180deg);
    }
    
    100% {
    transform: rotateX(5deg) rotateY(0deg);
    }
    }
    @-moz-keyframes donghua {
    0% {
    transform: rotateY(10deg) rotateY(0deg);
    }
    
    50% {
    transform: rotateY(-10deg) rotateY(180deg);
    }
    
    100% {
    transform: rotateY(10deg) rotateY(360deg);
    }
    }
    
    @-ms-keyframes donghua {
    0% {
    transform: rotateY(10deg) rotateY(0deg);
    }
    
    50% {
    transform: rotateY(-10deg) rotateY(180deg);
    }
    
    100% {
    transform: rotateY(10deg) rotateY(360deg);
    }
    }

    将js与cs都放到html中?

    <!doctype html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>Beautiful People</title>
    
    <style type="text/css">
    body{
    	margin: 0;
    	background:gray;
    }
    #wrap{
    	width: 300px;
    	height: 400px;
    	position: relative;
    	margin:100px auto;
    	/*Define the distance of the 3D element from the view*/
    	-webkit-perspective:3000px;
    	-moz-perspective: 3000px;
    	-ms-transform:perspective(3000px);
    	-ms-perspective:3000px;
    }
    #head{
    	width: 100%;
    	height: 100%;
    	position: absolute;
    	-webkit-transform-style: preserve-3d;
    	-webkit-animation: donghua 20s linear infinite;
    }
    #head div{
    	position: absolute;
    	top:0;
    	left:0;
    	width: 300px;
    	height: 350px;
    	text-align: center;
    	line-height: 100px;
    }
    
    #head:hover{
    	animation:donghua 20s linear infinite paused;
    }
    
    #head div:hover{
    	width: 105%;
    	height: 105%;
    }
    
    #head div:nth-child(1){
    	-webkit-transform: rotateY(0deg) translateZ(400px);
    	-moz-transform: rotateY(0deg) translateZ(400px);
    	-ms-transform: rotateY(0deg) translateZ(400px);
    	background: url("https://gitee.com/leslielee_619/dynamic-album-/raw/master/resources/images/Madonna.jpg");
    	background-size: 100% 100%;
    	border-radius: 8px;
    	box-shadow: 0px 0px 10px #fff;
    }
    #head div:nth-child(2) {
    	-webkit-transform: rotateY(45deg) translateZ(500px);
    	-moz-transform: rotateY(45deg) translateZ(500px);
    	-ms-transform: rotateY(45deg) translateZ(500px);
    	background: url("https://gitee.com/leslielee_619/dynamic-album-/raw/master/resources/images/王菲.jpg");
    	background-size: 100% 100%;
    	border-radius: 8px;
    	box-shadow: 0px 0px 10px #fff;
    }
    #head div:nth-child(3) {
    -webkit-transform: rotateY(90deg) translateZ(400px);
    -moz-transform: rotateY(90deg) translateZ(400px);
    -ms-transform: rotateY(90deg) translateZ(400px);
    background: url("https://gitee.com/leslielee_619/dynamic-album-/raw/master/resources/images/梅艳芳.jpg");
    background-size: 100% 100%;
    border-radius: 8px;
    box-shadow: 0px 0px 10px #fff;
    }
    
    #head div:nth-child(4) {
    -webkit-transform: rotateY(135deg) translateZ(500px);
    -moz-transform: rotateY(135deg) translateZ(500px);
    -ms-transform: rotateY(135deg) translateZ(500px);
    background: url("https://gitee.com/leslielee_619/dynamic-album-/raw/master/resources/images/中森名菜.jpg");
    background-size: 100% 100%;
    border-radius: 8px;
    box-shadow: 0px 0px 10px #fff;
    }
    
    #head div:nth-child(5) {
    -webkit-transform: rotateY(180deg) translateZ(400px);
    -moz-transform: rotateY(180deg) translateZ(400px);
    -ms-transform: rotateY(180deg) translateZ(400px);
    background: url("https://gitee.com/leslielee_619/dynamic-album-/raw/master/resources/images/山口百惠.jpg");
    background-size: 100% 100%;
    border-radius: 8px;
    box-shadow: 0px 0px 10px #fff;
    }
    #head div:nth-child(6) {
    -webkit-transform: rotateY(225deg) translateZ(500px);
    -moz-transform: rotateY(225deg) translateZ(500px);
    -ms-transform: rotateY(225deg) translateZ(500px);
    background: url("https://gitee.com/leslielee_619/dynamic-album-/raw/master/resources/images/毛利兰.jpg");
    background-size: 100% 100%;
    border-radius: 8px;
    box-shadow: 0px 0px 10px #fff;
    }
    
    #head div:nth-child(7) {
    -webkit-transform: rotateY(270deg) translateZ(400px);
    -moz-transform: rotateY(270deg) translateZ(400px);
    -ms-transform: rotateY(270deg) translateZ(400px);
    background: url("https://gitee.com/leslielee_619/dynamic-album-/raw/master/resources/images/阿拉蕾.jpg");
    background-size: 100% 100%;
    border-radius: 8px;
    box-shadow: 0px 0px 10px #fff;
    }
    
    #head div:nth-child(8) {
    -webkit-transform: rotateY(315deg) translateZ(500px);
    -moz-transform: rotateY(315deg) translateZ(500px);
    -ms-transform: rotateY(315deg) translateZ(500px);
    background: url("https://gitee.com/leslielee_619/dynamic-album-/raw/master/resources/images/张国荣.jpg");
    background-size: 100% 100%;
    border-radius: 8px;
    box-shadow: 0px 0px 10px #fff;
    }
    
    @-webkit-keyframes donghua {
    0% {
    transform: rotateX(5deg) rotateY(360deg);
    }
    
    50% {
    transform: rotateX(-5deg) rotateY(180deg);
    }
    
    100% {
    transform: rotateX(5deg) rotateY(0deg);
    }
    }
    @-moz-keyframes donghua {
    0% {
    transform: rotateY(10deg) rotateY(0deg);
    }
    
    50% {
    transform: rotateY(-10deg) rotateY(180deg);
    }
    
    100% {
    transform: rotateY(10deg) rotateY(360deg);
    }
    }
    
    @-ms-keyframes donghua {
    0% {
    transform: rotateY(10deg) rotateY(0deg);
    }
    
    50% {
    transform: rotateY(-10deg) rotateY(180deg);
    }
    
    100% {
    transform: rotateY(10deg) rotateY(360deg);
    }
    }
    </style>
    
    <script>
    window.onload = function(){
    	var div1 = document.getElementById("div1");
    	var div2 = document.getElementById("div2");
    	var div3 = document.getElementById("div3");
    	var div4 = document.getElementById("div4");
    	var div5 = document.getElementById("div5");
    	var div6 = document.getElementById("div6");
    	var div7 = document.getElementById("div7");
    	var div8 = document.getElementById("div8");	
    	
    	div1.addEventListener("mouseover", play1, false);
    	div1.addEventListener("mouseout", pause1, false);
    	
    	div2.addEventListener("mouseover", play2, false);
    	div2.addEventListener("mouseout", pause2, false);
    	
    	div3.addEventListener("mouseover", play3, false);
    	div3.addEventListener("mouseout", pause3, false);
    	
    	div4.addEventListener("mouseover", play4, false);
    	div4.addEventListener("mouseout", pause4, false);
    	
    	div5.addEventListener("mouseover", play5, false);
    	div5.addEventListener("mouseout", pause5, false);
    	
    	div6.addEventListener("mouseover", play6, false);
    	div6.addEventListener("mouseout", pause6, false);
    
    	div7.addEventListener("mouseover", play7, false);
    	div7.addEventListener("mouseout", pause7, false);
    	
    	div8.addEventListener("mouseover", play8, false);
    	div8.addEventListener("mouseout", pause8, false);
    	
    	function play1(){
    		img = div1.firstChild
    		img.play()
    	}
    	function pause1(){
    		img = div1.firstChild
    		img.pause()
    	}
    	
    	function play2(){
    		img = div2.firstChild
    		img.play()
    	}
    	function pause2(){
    		img = div2.firstChild
    		img.pause()
    	}
    
    	function play3(){
    		img = div3.firstChild
    		img.play()
    	}
    	function pause3(){
    		img = div3.firstChild
    		img.pause()
    	}
    	
    	function play4(){
    		img = div4.firstChild
    		img.play()
    	}
    	function pause4(){
    		img = div4.firstChild
    		img.pause()
    	}
    	
    	function play5(){
    		img = div5.firstChild
    		img.play()
    	}
    	function pause5(){
    		img = div5.firstChild
    		img.pause()
    	}
    	
    	function play6(){
    		img = div6.firstChild
    		img.play()
    	}
    	function pause6(){
    		img = div6.firstChild
    		img.pause()
    	}
    	
    	function play7(){
    		img = div7.firstChild
    		img.play()
    	}
    	function pause7(){
    		img = div7.firstChild
    		img.pause()
    	}
    
    	function play8(){
    		img = div8.firstChild
    		img.play()
    	}
    	function pause8(){
    		img = div8.firstChild
    		img.pause()
    	}
    }
    </script>
    </head>
    
    <body style="background-size:cover; background-image:url(https://gitee.com/leslielee_619/dynamic-album-/raw/master/resources/images/背景.jpg)">
    		<div style="margin: 0px auto; text-align: center; width: 736px;">
    			<h1 style="font:Chinese Xingkai;color:red">我的最爱</h1>
    		</div>
    		<div id="wrap">
    			<div id="head">
    				<div id="div1"><audio id="music1" src="https://gitee.com/leslielee_619/dynamic-album-/raw/master/resources/music/cut_Madonna.mp3"></audio></div>
    				<div id="div2"><audio id="music2" src="https://gitee.com/leslielee_619/dynamic-album-/raw/master/resources/music/cut_王菲.mp3"></audio></div>
    				<div id="div3"><audio id="music3" src="https://gitee.com/leslielee_619/dynamic-album-/raw/master/resources/music/cut_梅艳芳.mp3"></audio></div>
    				<div id="div4"><audio id="music4" src="https://gitee.com/leslielee_619/dynamic-album-/raw/master/resources/music/cut_中森名菜.mp3"></audio></div>
    				<div id="div5"><audio id="music5" src="https://gitee.com/leslielee_619/dynamic-album-/raw/master/resources/music/cut_山口百惠.mp3"></audio></div>
    				<div id="div6"><audio id="music6" src="https://gitee.com/leslielee_619/dynamic-album-/raw/master/resources/music/cut_毛利兰.mp3"></audio></div>
    				<div id="div7"><audio id="music7" src="https://gitee.com/leslielee_619/dynamic-album-/raw/master/resources/music/cut_阿拉蕾.mp3"></audio></div>
    				<div id="div8"><audio id="music8" src="https://gitee.com/leslielee_619/dynamic-album-/raw/master/resources/music/cut_张国荣.mp3"></audio></div>
    			</div>
    		</div>
    		<div style="margin: 0px auto; text-align: center; width: 736px;">
    			<h1 style="font:Chinese Xingkai;color:red">Leslie's photo album</h1>
    		</div>
    </body>
    </html>

    ?