圣诞节用女神照片做了一个旋转木马

Posted 海海呐

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了圣诞节用女神照片做了一个旋转木马相关的知识,希望对你有一定的参考价值。

圣诞节到了 看见朋友圈都是送各种礼物的  作为一个程序员 肯定是要给女朋友准备一份不一样的礼物啦。看见在网上看见各种旋转圣诞树的,就想到了这个旋转木马 赶紧学起来发给女朋友看看!

效果图

 使用技术 html css3 jq 

使用旋转实现

基本样式

<body>
  <div id="header">
    <p class="enclosed"></p>
    <button id="startButton">点击 查收<span style='color: red'>❤</span></button>
  </div>
  <div id="Obscuration">
      <ul>
        <li><img src="./image/01.jpg" alt=""></li>
        <li><img src="./image/02.jpeg" alt=""></li>
        <li><img src="./image/03.jpeg" alt=""></li>
        <li><img src="./image/04.jpg" alt=""></li>
        <li><img src="./image/05.jpg" alt=""></li>
        <li><img src="./image/06.jpg" alt=""></li>
    </ul>
  </div>
  <audio src="./christmas.mp3" controls id="music">
  </audio>
</body>

css样式

<style>
  .enclosed 
      padding: 5px 30px;
      text-align: center;
    
  #music
    display: none;
  
  #Obscuration 
    position: absolute;
  	width: 100%;
  	height: 100%;
  	display: none;
      perspective: 1000px;
      z-index: 99;
      /* background-color: #fff; */
      background: url(./image/chbja1.jpg) no-repeat;
	    background-size: 100% 100%;
      
  
  #header
      background: url(./image/chbja.jpg) no-repeat;
	    background-size: 100% 100%;
  
  
ul 
	position: relative;
	margin: 300px auto;
	width: 150px;
	height: 150px;
	/* border: 4px solid #1a1; */
	animation: xuanzhuan 10s linear infinite;
	transform-style: preserve-3d;


li 
	list-style: none;
	position: absolute;

img
	width: 250px;
	height: 300px;


li:nth-child(1) 
	transform: translateZ(300px);


li:nth-child(2) 
	transform: rotateY(60deg) translateZ(300px);


li:nth-child(3) 
	transform: rotateY(120deg) translateZ(300px);


li:nth-child(4) 
	transform: rotateY(180deg) translateZ(300px);


li:nth-child(5) 
	transform: rotateY(240deg) translateZ(300px);


li:nth-child(6) 
	transform: rotateY(300deg) translateZ(300px);


@keyframes xuanzhuan 
	to 
		transform: rotateY(360deg);
	


ul:hover 
	animation-play-state: paused;

</style>

引入插件

<script src="./jquery-2.1.4.min.js"></script>

<script src="./typeit.js"></script>

<script src="./index.js"></script>

js逻辑

首先定义好数据

const startButton = document.getElementById('startButton')

const Obscuration = document.getElementById('Obscuration')

const music = document.getElementById('music')

startButton.addEventListener('click', start)

封装调用逻辑

function play() 
  if(music.paused) 
    music.paused = false
    music.play()
  


function initRenderer() 
  width = window.innerWidth
  height = window.innerHeight
  renderer = new THREE.WebGLRenderer(
    antialias: true
  )
  // 如果设置开启,允许在场景中使用阴影贴图
  // renderer.shadowMap.enabled = true
  // 定义阴影贴图类型 (未过滤, 关闭部分过滤, 关闭部分双线性过滤)
  // renderer.shadowMap.type = THREE.BasicShadowMap

  renderer.setSize(width, height)
  document.body.appendChild(renderer.domElement)
  renderer.setClearColor(0x000089, 1.0)


function initScene() 
  scene = new THREE.Scene()


function initCamera() 
  camera = new THREE.PerspectiveCamera(45, width/height, 1, 1000)
  camera.position.set(6, 2, -12)

 用户点击查收触发 

function start() 
  startButton.innerhtml = '加载中...'
  Obscuration.style.display = 'block'
  play()
  initRenderer()
  initScene()
  initCamera()
  setTimeout(()=>
    // Obscuration.style.display = 'none'
    startButton.style.display = 'none'
  ,3000)

 到这里就可以实现啦 

实现的地址

tschristmas.haihaina.cn

完整代码我都已经放在码云上面了 

海海/christmas

感兴趣的可以自己克隆

有什么不明白的可以提问哦

http://print.haihaina.cn/qr.jpg

以上是关于圣诞节用女神照片做了一个旋转木马的主要内容,如果未能解决你的问题,请参考以下文章

2022圣诞节用canvas实现流星雨

2022圣诞节用canvas实现流星雨

旋转木马的小效果!

旋转木马的小效果!

旋转木马的小效果!

旋转木马的小效果!