HTML制作3D樱花漫天飞舞及浪漫信封

💕 浪漫信封


HTML 内容


<div id="jsi-cherry-container"></div> 

<section class="container" id="contact" >

        <form class="flip">

                <div class="front">

    <h2>To  Ming</h2>

                        <a id="flip2back" href="#">Flip</a>

                </div>

                <div id="content" class="back">

                        <div id="letter">

                                <div class="container">

                                        <div class="flip">                        

                        <div class="front"></div>

                                                <div class="back">

                        <p class="letter"></p> 

                        <a id="close" href="#">Close</a>								

                                                </div>                            

                                        </div>

                                </div>

                        </div>

                        <div id="top">

                                <a id="flip" href="#contact">Flip</a>

                        </div>

                        <div id="lid" class="container">

                                <div class="flip">  

                                        <div class="front">

                                                <a id="open" href="#content"><span></span></a>

                                        </div>                        

                                        <div class="back"></div>

                                </div>

                        </div>

                </div>

        </form>

</section>



<div id="footer">

        <audio id="music2" preload="auto" loop></audio>

        <a id="music_btn2" href="javascript:playPause();"></a>

</div>



部分CSS


#letter {

  background: #fafafa;

  width: 90%;

  height: 95%;

  position: absolute;

  left: 5%;

  top: 5%;

  z-index: 0;

  -webkit-transition: .5s .5s;

  -moz-transition: .5s .5s;

  -o-transition: 0s 0s;

  transition: 0s 0s; }



#content:target #letter {

  top: -40%;

  -o-transition: .5s .5s;

  transition: .5s .5s; }



#letter .container {

  position: absolute;

  width: 100%;

  /*height: 50%;*/

  -webkit-perspective: 800px;

  -moz-perspective: 800px;

  perspective: 800px;

  top: 0;

  left: 0;

  -webkit-transition: 0s 0s;

  -moz-transition: 0s 0s;

  transition: 0s 0s;

  z-index: 1; }



#letter .flip {

  width: 100%;

  height: 100%; }

  #letter .flip {

    position: absolute;

    -webkit-transform-style: preserve-3d;

    -moz-transform-style: preserve-3d;

	transform-style: preserve-3d;

	

    -webkit-transition: -webkit-transform 0.5s 0s;

    -moz-transition: -moz-transform 0.5s 0s;

	transition: -moz-transform 0.5s 0s;

	

    -webkit-transform-origin: left top;

    -moz-transform-origin: left top;

	transform-origin: left top; }

  #letter .flip > .front, #letter .flip > .back {

    position: absolute;

    width: 100%;

    height: 100%;

    -webkit-backface-visibility: hidden;

    -moz-backface-visibility: hidden;

	backface-visibility: hidden; }

  #letter .flip > .back {

    -webkit-transform: rotateX(180deg);

    -moz-transform: rotateX(180deg);

	transform: rotateX(180deg); }

  #content:target #letter .flip {

    -webkit-transform: rotateX(180deg);

    -moz-transform: rotateX(180deg);

	transform: rotateX(180deg);

	

    -webkit-transition-duration: 0.5s;

    -moz-transition-duration: 0.5s;

	transition-duration: 0.5s;

	

    -webkit-transition-delay: 1s;

    -moz-transition-delay: 1s;

	transition-delay: 1s; }



letter.js


var aparted = false;

$("#open").click(function(){

	if(!aparted)

	{

		var typed = new Typed('.letter', {

			strings: ["^1000Dear&nbsp;&nbsp;Ming", 

				"M^200ing<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;夜には^300いつも^200寒いよね、^600でも、^600手を^200繋いでいると、^600暖か^200くなるよ!<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;どんなに^300寒い夜も、^600君と^300二人でいれば、^600ちっとも^300寒くない!<br><br><p style='float:right; display:block; width:80px;'>^1000H^200ao</p>"],

			typeSpeed: 100,

			backSpeed: 50

		});	

		$('#open').find("span").eq(0).css('background-position', "0 -150px");

		aparted = true;

		var music = document.getElementById('music2');		

		if (music.paused)

		{

			music.play();

			$('#music_btn2').css("opacity", "1"); 

		}

	}	

});



function playPause() {

    var music = document.getElementById('music2');

    var music_btn = $('#music_btn2');

    if (music.paused){

        music.play();

	music_btn.css("opacity", "1"); 

    }

    else{

        music.pause();

	music_btn.css("opacity", "0.2"); 

    }	

}

window.onload = function () {	

	var currentUrl = window.location.href;

	var firstIndex = currentUrl.indexOf("#");	

	if (firstIndex <= 0) window.location.href = currentUrl + "#contact";

	$('#music2').attr('src', bgmsrc);

	document.addEventListener('touchstart',function (event) { if(event.touches.length > 1) event.preventDefault(); });

	var lastTouchEnd = 0;

	document.addEventListener('touchend',function (event) {

		var now = (new Date()).getTime();

		if(now - lastTouchEnd <= 300) event.preventDefault();

		lastTouchEnd = now;

	}, false);

	document.addEventListener('gesturestart', function (event) { event.preventDefault(); });

	$('body').css('opacity', '1');

	$('#jsi-cherry-container').css('z-index', '-99');

}



演示图片

💕浪漫信封在线演示地址:http://haiyong.site/demo/eluvletter

在这里插入图片描述

在这里插入图片描述

💌 3D樱花漫天飞舞


HTML 内容


<canvas id="sakura"></canvas>

<div class="btnbg">

</div>

<footer class="page-footer">

<span>made by </span>

<a href="http://haiyong.site/moyu" target="_blank">

<img class="touxiang"  src="http://haiyong.site/wp-content/uploads/2021/07/cropped-59255587-1-192x192.jpg" alt="George Martsoukos logo">

</a>

</footer>



CSS 内容


body {

    padding:0;

    margin:0;

    overflow:hidden;

	height: 600px;

}

canvas {

    padding:0;

    margin:0;

}

div.btnbg {

    position:fixed;

    left:0;

    top:0;

}

.page-footer {

  position: fixed;

  right: 0;

  bottom: 20px;

  display: flex;

  align-items: center;

  padding: 5px;

  color: black;

  background: rgba(255, 255, 255, 0.65);

}



.page-footer a {

  display: flex;

  margin-left: 4px;

}

.touxiang{

	width:24px;

	height:24px;

}



部分 JS 内容


<script id="sakura_point_vsh" type="x-shader/x_vertex">
 **自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**

**深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**

**因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**

![img](https://img-blog.csdnimg.cn/img_convert/b1a192c9e095e00f46a44969039c3cde.png)

![img](https://img-blog.csdnimg.cn/img_convert/6eacecf052242a2c9bd1b7e06a389107.png)

![img](https://img-blog.csdnimg.cn/img_convert/13611270094c9867c4fc50d0631b5492.png)

![img](https://img-blog.csdnimg.cn/img_convert/2f2ec3f7c0bad0e2126fae8bc98f002a.png)

![img](https://img-blog.csdnimg.cn/img_convert/6c361282296f86381401c05e862fe4e9.png)

![img](https://img-blog.csdnimg.cn/img_convert/9f49b566129f47b8a67243c1008edf79.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!**

**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**

**如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)**

1-1713582026960)]

[外链图片转存中...(img-opZfwhlb-1713582026961)]

[外链图片转存中...(img-GSyKxB4a-1713582026961)]

[外链图片转存中...(img-1yejAAoj-1713582026962)]

![img](https://img-blog.csdnimg.cn/img_convert/6c361282296f86381401c05e862fe4e9.png)

![img](https://img-blog.csdnimg.cn/img_convert/9f49b566129f47b8a67243c1008edf79.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!**

**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**

**如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)**

![](https://img-blog.csdnimg.cn/img_convert/aa48cf3079e50b15521fde17643a507b.jpeg)
  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用HTML制作3D樱花多形态相册,需要结合HTML、CSS和一些JavaScript库来实现。下面是一个简单的代码示例: 首先,需要一个相册容器的HTML结构,在HTML文档中添加一个div元素作为容器: ```html <div id="album"> <!-- 在这里添加相片 --> </div> ``` 然后,通过CSS来设置相册容器的样式,例如设置宽度和高度、背景颜色等: ```css #album { width: 500px; height: 500px; background-color: #fff; perspective: 1000px; overflow: hidden; } ``` 接下来,使用JavaScript库(例如Three.js)创建樱花3D模型。在代码中引入Three.js库,并创建一个场景、摄像机和一个几何体(例如立方体)作为樱花模型: ```html <!-- 在head标签中添加以下代码 --> <script src="https://cdn.jsdelivr.net/npm/three@0.135.0/build/three.js"></script> <!-- 在body标签的底部添加以下代码 --> <script> const scene = new THREE.Scene(); const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000); const geometry = new THREE.BoxGeometry(1, 1, 1); const material = new THREE.MeshBasicMaterial({ color: 0x00ff00 }); const cube = new THREE.Mesh(geometry, material); scene.add(cube); camera.position.z = 5; </script> ``` 最后,使用JavaScript将相册容器与摄像机和樱花模型关联,并渲染场景: ```html <script> const renderer = new THREE.WebGLRenderer(); renderer.setSize(window.innerWidth, window.innerHeight); document.getElementById("album").appendChild(renderer.domElement); function animate() { requestAnimationFrame(animate); cube.rotation.x += 0.01; cube.rotation.y += 0.01; renderer.render(scene, camera); } animate(); </script> ``` 这是一个简单的示例,你可以根据实际需要进行扩展和修改。通过在相册容器中添加更多的樱花模型和设置其样式,你可以创建一个多形态的樱花相册。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值