制作一款情人节一款带音乐播放的情人节网页背景素材。随着音乐旋转如钻石般的大爱心和满屏大小颜色不一的小爱心浪漫又梦幻,是情人节不可多得的网页素材哦。

演示地址:点我查看演示

代码实现

html

<!DOCTYPE html>
<html lang="en" >
<head><meta charset="UTF-8"><title>With Love</title><meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://use.typekit.net/trt3ngp.css"><link rel="stylesheet" href="./style.css"></head>
<body>
<!-- partial:index.partial.html -->
<canvas class="webgl"></canvas>
<h1>With Love
</h1>
<button id="play-music" type="button" aria-label="Play music"><svg fill="currentColor" viewBox="0 0 512 512" width="100" title="music"><path d="M470.38 1.51L150.41 96A32 32 0 0 0 128 126.51v261.41A139 139 0 0 0 96 384c-53 0-96 28.66-96 64s43 64 96 64 96-28.66 96-64V214.32l256-75v184.61a138.4 138.4 0 0 0-32-3.93c-53 0-96 28.66-96 64s43 64 96 64 96-28.65 96-64V32a32 32 0 0 0-41.62-30.49z" /></svg></button>
<script type="x-shader/x-vertex" id="vertexShader">#define M_PI 3.1415926535897932384626433832795
uniform float uTime;
uniform float uSize;
attribute float aScale;
attribute vec3 aColor;
attribute float random;
attribute float random1;
attribute float aSpeed;
varying vec3 vColor;
varying vec2 vUv;void main() {float sign = 2.0* (step(random, 0.5) -.5);float t = sign*mod(-uTime *  aSpeed* 0.005  + 10.0*aSpeed*aSpeed, M_PI);float a = pow(t, 2.1) * pow((t - sign * M_PI), 2.3);float radius = 0.14;vec3 myOffset =vec3(t,  t, 0.0);myOffset = vec3(radius *16.0 * pow(sin(t), 2.0) * sin(t), radius *                                           (13.0 * cos(t) - 5.0 * cos(2.0 * t) - 2.0 * cos(3.0 * t) - cos(4.0 * t)), .15*(a*(random1 - .5))*sin(abs(10.0*(sin(.2*uTime + .2*random)))*t));vec3 displacedPosition = myOffset;vec4 modelPosition = modelMatrix * vec4(displacedPosition.xyz, 1.0);vec4 viewPosition = viewMatrix * modelPosition;viewPosition.xyz += position * aScale * uSize * pow(a, .5) * .5;gl_Position = projectionMatrix * viewPosition;vColor = aColor;vUv = uv;
}
</script><script type="x-shader/x-fragment" id="fragmentShader">varying vec3 vColor;
varying vec2 vUv;void main() {vec2 uv = vUv;vec3 color = vColor;float strength = distance(uv, vec2(0.5));strength *= 2.0;strength = 1.0 - strength;gl_FragColor = vec4(strength * color, 1.0);
}
</script>
<script type="x-shader/x-vertex" id="vertexShader1">#define M_PI 3.1415926535897932384626433832795uniform float uTime;
uniform float uSize;
attribute float aScale;
attribute vec3 aColor;
attribute float phi;
attribute float random;
attribute float random1;
varying vec3 vColor;
varying vec2 vUv;void main() {float t = 0.01 * uTime + 12.0;float angle = phi;t = mod((-uTime + 100.0) * 0.06* random1 + random *2.0 * M_PI , 2.0 * M_PI);vec3 myOffset = vec3(5.85*cos(angle * (t )), 2.0*(t - M_PI), 3.0*sin(angle * (t )/t));
vec4 modelPosition = modelMatrix * vec4(myOffset, 1.0);vec4 viewPosition = viewMatrix * modelPosition;viewPosition.xyz += position * aScale * uSize;gl_Position = projectionMatrix * viewPosition;vColor = aColor;vUv = uv;
}
</script><script type="x-shader/x-fragment" id="fragmentShader1">uniform sampler2D uTex;
varying vec3 vColor;
varying vec2 vUv;void main() {vec2 uv = vUv;vec3 color = vColor;float strength = distance(uv, vec2(0.5, .65));strength *= 2.0;strength = 1.0 - strength;vec3 texture = texture2D(uTex, uv).rgb;gl_FragColor = vec4(texture * color * (strength + .3), 1.);
}
</script>
<!-- partial --><script type="module" src="./script.js"></script></body>
</html>

css

* {margin: 0;padding: 0;box-sizing: border-box;
}html,
body {overflow: hidden;background: #16000a;
}
body {-webkit-font-smoothing: antialiased;color: #ffdada;
}
.webgl {position: fixed;width: 100vw;height: 100vh;top: 0;left: 0;outline: none;
}body::before {content: "";position: absolute;border: 8px solid;inset: 1rem;z-index: 100;pointer-events: none;
}h1 {position: absolute;top: 10vh;left: 2.5rem;right: 1rem;text-align: center;font-family: ador-hairline, sans-serif;font-weight: 900;font-size: max(1rem, 3vh);
}button {position: absolute;left: 0;top: 0;bottom: 0;height: 12vh;width: 12vh;transform: translateY(2vh);right: 0;margin: auto;-webkit-appearance: none;background: transparent;color: inherit;border: none;cursor: pointer;
}svg {width: 3.5vh;
}

HTML+CSS制作一款情人节一款带音乐播放的情人节网页背景素材相关推荐

  1. 推荐5款好用的Linux音乐播放器

    适用于 Linux 的音乐播放器可说数不胜数,不同的用户也有各自的喜好.知名且应用广泛的有 Cantata 和 Exaile,不太知名的工具有 Clementine.Nightingale 和 Quo ...

  2. div css sprites精灵-CSS图像拼合 CSS贴图定位网页背景素材图片拼合定位布局技术教程

    div css sprites精灵-CSS图像拼合 CSS贴图定位网页背景素材图片拼合定位布局技术教程篇与css sprites实例篇 css sprites拼合背景图片素材实现布局效果截图 一.什么 ...

  3. imac html5播放器,超给力的五款Mac最佳高清音乐播放器

    大多数Mac用户喜欢使用iTunes或一些流媒体服务来管理和收听他们的音乐.当然,如果您是喜欢高分辨率音频的发烧友,那么有iTunes就够了.如果您是高保真格式音乐发烧友,则iTunes可能不能满足您 ...

  4. 推荐5 款好用的 Linux 音乐播放器

    导读 目前 Linux 上有几十个音乐播放器,这使得找到一个最好用的变成很困难.之前我们已经回顾了其中的一些播放器,如 Cantata,Exaile,甚至不那么出名的 Clementine,Night ...

  5. android做一个音乐播放器,制作一个简单的Android版的音乐播放器

    音乐播放器是一个非常常见的应用,这篇博客就是介绍如何制作一个简单的音乐播放器,这款音乐播放器具有以下的功能:播放歌曲.暂停播放歌曲..显示歌曲的总时长.显示歌曲的当前播放时长.调节滑块可以将歌曲调节到 ...

  6. 制作一个简单的Android版的音乐播放器

    音乐播放器是一个非常常见的应用,这篇博客就是介绍如何制作一个简单的音乐播放器,这款音乐播放器具有以下的功能:播放歌曲.暂停播放歌曲..显示歌曲的总时长.显示歌曲的当前播放时长.调节滑块可以将歌曲调节到 ...

  7. 【AIMP3】推荐一款Windows下的优质音乐播放器

    这么多年来我一直用酷我,酷狗,QQ音乐过来的,刚开始的时候感觉还不错,界面,皮肤,功能都很好,但是后来就发现广告很多,各种弹窗,而且还有音质的限制.当已经习惯开机打开音乐库听歌的时候,不仅启动慢,有时 ...

  8. 原创: 做一款属于自己风格的音乐播放器 (HTML5的Audio新特性)

    灵感的由来是前些天看到了博: http://www.cnblogs.com/li-cheng 的首页有一个很漂亮的播放器,感觉很不错,是用Flex做的Flash播放器. 于是我也便想到了,自己也来来弄 ...

  9. 一款简约好看的html5音乐播放器,HTML5 之美:推荐9款优秀的 HTML5 音乐播放器

    过去,在网页上播放音频都是通过第三方插件来播放的,如 Flash.QuickTime 和 Silverlight 等,没有统一的音频播放标准.HTML5 通过 audio 元素来提供在网页中嵌入音频的 ...

最新文章

  1. happy 99 (转载)
  2. js笔记(8)之数组篇
  3. Spring IoC反转控制的快速入门
  4. Green Plum测试报告
  5. [原]C++头文件的包含顺序研究
  6. C++控制台输出中文时乱码的解决方案
  7. 记录一次cordova升级react native安装失败版本过低的趟坑之旅
  8. 免费的分区软件MiniTool Partition Wizard Free
  9. hackerrank答案
  10. Kali linux 学习笔记(十三)主动信息收集——端口扫描(UDP扫描、TCP扫描) 2020.2.22
  11. urllib库(三)parse模块:quote()/quote_plus(),unquote()/unquote_plus(),quote_from_bytes()
  12. 榜样的力量——2019 IDC中国数字化转型年度盛典启示录
  13. 文档写作利器:Markdown
  14. html超链接本地文件为什么打不开,为什么word文件的本地超链接打不开呢
  15. 使用httpclient调用url出现错误Illegal character in scheme name at index 0解决方案
  16. 虚拟机安装专用游戏多开win7系统教程简单易懂
  17. 摩登兄弟:参加《歌手》压力很大,在准备下一期歌曲
  18. 瓦伦达心态——再谈工作中的专注和心态
  19. 前端程序员拿到新电脑第一天,该做些什么?
  20. 苹果11蓝牙配对不成功怎么办_苹果手机蓝牙怎么连不上的解决步骤

热门文章

  1. 开启nginx的状态查询
  2. Mendix入门教程第一篇-demo实例
  3. ApiCloud 查看文件(通过第三方应用打开)
  4. 视频去水印哪个好用-视频去水印怎么去除
  5. matlab如何画一个圆柱,matlab下在空间任意位置绘制圆柱
  6. 【无2021年标准员-通用基础(标准员)考试内容及标准员-通用基础(标准员)复审模拟考试
  7. 打包发布自己的app
  8. 漫谈黑客,IT人的禁区?!
  9. 第二课作业(刘萌150206318)
  10. HTML5期末大作业 漫画网站设计——A+海贼王(8页) HTML5网页设计成品_学生DW静态网页设计代做_web课程设计网页制作