浪漫程序员会表白之抖音旋转立方体照片墙

本文分享了一款使用HTML、CSS3和JavaScript制作的创意表白工具,原本是一个水晶发光相册,通过代码改造,变为一个互动魔方。项目包括图片闪烁、旋转和平铺效果,最终呈现为一个三维魔方,适配了移动端,实现了图片到魔方的流畅转换。

在继上一次写了抖音上的时钟屏保,被我改造完用来表白后,有个兄弟给我评论,下一篇《淘宝上超火的水晶发光相册,被我买来用于表白》,恰好我之前写过这个小demo,于是我忙里偷闲把这个小demo的博客写了出来。

写在前面,源代码传到github上,在最下面,大家自行下载

这个小demo使用的是html + css3 + javascript实现,主要目的是锻炼我的编(撩)程(妹)技(能)术(力)!

闲言少许,书归正文,先看看效果图吧,还是因为csdn上只能上传5M的图,所以只能降帧做gif

上次写的小demo,还有兄弟希望适配一下移动端,所以我简单的使用媒体查询+JavaScript,适配了下移动端。上效果图

各位看官,如果效果图不尽人意
在这里插入图片描述
因为在移动端没用鼠标悬浮事件,所以我改成直接将立方体放大的效果。


我在写这个项目的最初目的是为了练习一下css3中的过渡、变换和动画,所以在立方体部分几乎都是由css3来完成。我建议大家在看这个项目之前,先学习一下css3的新语法。学成之后,再做这个小demo的话,你的css3过渡、变换和动画这部分就可以通神了!

我来依次解释这个小demo是如何一步一步完成的:

从上面的演示,我们可以清楚的看到,这个小demo,总共分成四个阶段:

  1. 图片平铺的初始状态
  2. 点击后,图片逐渐由小变大,再缩小(闪烁效果)
  3. 图片旋转一周后逐渐缩小消失
  4. 出现立方体,pc端鼠标悬浮时放大,移动端直接缓慢放大

在未点击时,图片是通过js生成的:

function initImg() {
   
   
    const imgBox = document.getElementsByClassName("imgBox")[0]
 	//生成图片的数量
    let index = 30
    if(document.body.clientWidth < 450){
   
   
        //适配移动端
        index = 15
    }
    for (var i = 0; i < index; i++) {
   
   
        var src = 0
        //随机生成图片的路径,大图片和小图片中随机
        if(Math.random()>0.5){
   
   
            src = Math.floor(Math.random() * 6) +1;
        }else{
   
   
            src = "0" + (Math.floor(Math.random() * 6) +1);
        }
        var img = document.createElement("img")
        img.src = `./img/${
     
     src}.png`
        imgBox.appendChild(img)
    }
}

代码中,获取了屏幕宽度,是为了适配移动端,当屏幕宽度小于450px时,只生成15张图片

注意图片的格式,因为后面需要变成立方体,且分大小,所以小图片是0开头的,大小是100 x 100像素,大图片是400 X 400像素,为了更清楚点,我还是放个图吧

在这里插入图片描述
下面就是点击时图片消失的效果了:

function bindEvent(){
   
   
    //获取按钮,设置点击事件
    const btn = document.getElementsByClassName("btn")[0]
    btn.onclick = function(e){
 
评论 16
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值