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

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

效果图

 使用技术 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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>