当前位置:首页 » 《资源分享》 » 正文

618快到了送上自制前端小项目(html css js)

0 人参与  2022年07月01日 10:11  分类 : 《资源分享》  评论

点击全文阅读


目录

?.自定义播放器

?.图片自动消失

✨.小轮播图

?.旋转音乐盒


 前言:这些小项目全都是自创的

如果需要应用,或则转发的话请与

博主联系,感谢你们的理解,

 


1.自定义播放器

在页面中放置26个div,每个div中写一个字

母。html结构中引入8个音频结构。给每个

div绑定点击键盘事件。根据键盘的每个

keyCode的不同来动态绑定对应的音频文件。

当按下对应的键盘字母,增添css样式,

音频播放。放开时,存储点击的事件,

将对应的音频存储在一个数组中。

点击按钮,循环播放存储的音频数组


html:

 <div id="container">           <div data-key="81" class="key">            <kbd>Q</kbd>            <span class="sound">clap</span>        </div>        <div data-key="87" class="key">            <kbd>W</kbd>            <span class="sound">clap</span>        </div>        <div data-key="69" class="key">            <kbd>E</kbd>            <span class="sound">clap</span>        </div>        <div data-key="82" class="key">            <kbd>R</kbd>            <span class="sound">clap</span>        </div>        <div data-key="84" class="key">            <kbd>T</kbd>            <span class="sound">clap</span>        </div>        <div data-key="89" class="key">            <kbd>Y</kbd>            <span class="sound">clap</span>        </div>        <div data-key="85" class="key">            <kbd>U</kbd>            <span class="sound">clap</span>        </div>        <div data-key="73" class="key">            <kbd>I</kbd>            <span class="sound">clap</span>        </div>        <div data-key="79" class="key">            <kbd>O</kbd>            <span class="sound">clap</span>        </div>        <div data-key="80" class="key">            <kbd>P</kbd>            <span class="sound">clap</span>        </div>        <div data-key="65" class="key">            <kbd>A</kbd>            <span class="sound">clap</span>        </div>        <div data-key="83" class="key">            <kbd>S</kbd>            <span class="sound">clap</span>        </div>        <div data-key="68" class="key">            <kbd>D</kbd>            <span class="sound">clap</span>        </div>        <div data-key="70" class="key">            <kbd>F</kbd>            <span class="sound">clap</span>        </div>        <div data-key="71" class="key">            <kbd>G</kbd>            <span class="sound">clap</span>        </div>        <div data-key="72" class="key">            <kbd>H</kbd>            <span class="sound">clap</span>        </div>        <div data-key="74" class="key">            <kbd>J</kbd>            <span class="sound">clap</span>        </div>        <div data-key="75" class="key">            <kbd>K</kbd>            <span class="sound">clap</span>        </div>        <div data-key="76" class="key">            <kbd>L</kbd>            <span class="sound">clap</span>        </div>        <div data-key="90" class="key">            <kbd>Z</kbd>            <span class="sound">clap</span>        </div>        <div data-key="88" class="key">            <kbd>X</kbd>            <span class="sound">clap</span>        </div>        <div data-key="67" class="key">            <kbd>C</kbd>            <span class="sound">clap</span>        </div>        <div data-key="86" class="key">            <kbd>V</kbd>            <span class="sound">clap</span>        </div>        <div data-key="66" class="key">            <kbd>B</kbd>            <span class="sound">clap</span>        </div>        <div data-key="78" class="key">            <kbd>N</kbd>            <span class="sound">clap</span>        </div>        <div data-key="77" class="key">            <kbd>M</kbd>            <span class="sound">clap</span>        </div>    </div>    <div id='btn'>提交数据</div>    <audio data-key="81" src="sounds/clap.wav"></audio>  <audio data-key="87" src="sounds/hihat.wav"></audio>  <audio data-key="69" src="sounds/kick.wav"></audio>  <audio data-key="82" src="sounds/openhat.wav"></audio>  <audio data-key="84" src="sounds/boom.wav"></audio>  <audio data-key="89" src="sounds/ride.wav"></audio>  <audio data-key="85" src="sounds/snare.wav"></audio>  <audio data-key="73" src="sounds/tom.wav"></audio>  <audio data-key="79" src="sounds/tink.wav"></audio>  <audio data-key="80" src="sounds/clap.wav"></audio>  <audio data-key="83" src="sounds/hihat.wav"></audio>  <audio data-key="68" src="sounds/kick.wav"></audio>  <audio data-key="65" src="sounds/openhat.wav"></audio>  <audio data-key="71" src="sounds/boom.wav"></audio>  <audio data-key="72" src="sounds/ride.wav"></audio>  <audio data-key="74" src="sounds/snare.wav"></audio>  <audio data-key="75" src="sounds/tom.wav"></audio>  <audio data-key="76" src="sounds/tink.wav"></audio>  <audio data-key="70" src="sounds/clap.wav"></audio>  <audio data-key="90" src="sounds/hihat.wav"></audio>  <audio data-key="88" src="sounds/kick.wav"></audio>  <audio data-key="67" src="sounds/openhat.wav"></audio>  <audio data-key="86" src="sounds/openhat.wav"></audio>  <audio data-key="66" src="sounds/boom.wav"></audio>  <audio data-key="78" src="sounds/ride.wav"></audio>  <audio data-key="77" src="sounds/snare.wav"></audio>

css:

*{    margin:0;    padding:0;}.top{    width:100%;    height:100px;}.top i{    font-size: 24px;}.top-left{    width:20%;    height:100%;    float:left;    text-align: center;    line-height: 100px;    position: relative;}.top-left .cls5{    position: absolute;    left:40px;}.top-middle{    width:50%;    height:100%;    float:left;    text-align: center;    line-height: 100px;    position:relative;}.top-middle .cls1{    position: absolute;    left:30px;}.top-middle .cls2{    position: absolute;    left:60px;}.top-middle .cls3{    position: absolute;    right:500px;}.top-middle .container{    width:300px;    height:40px;    border:1px solid whitesmoke;    border-radius: 10px;   position:absolute;   left:100px;   top:30px;   text-align: center;   line-height: 40px;}.top-middle .container .cls4{    position: absolute;    left:20px;}.top-right{    width:30%;    height:100%;    float:right;}.top-right ul{    list-style: none;    text-align: center;    height:100px;    line-height:100px ;}.top-right ul li{    float:right;    margin:0 20px 0 20px;}.bottom{    width:100%;    height:100px;    margin-top:710px;}.bottom i{    font-size: 24px;}.bottom-left{    width:20%;    height:100px;    line-height: 100px;    float:left;    text-align: center;}.bottom-left ul{    list-style: none;}.bottom-left ul li{    float:left;    margin:0 30px 0 30px;}.bottom-mid{    width:50%;    height:100px;    line-height: 100px;    float:left;}.bottom-mid ul{    list-style: none;}.bottom-mid ul li{    float:left;    margin: auto 50px;}.bot-mid-top{    width:100%;    height:60px;    text-align: center;    line-height: 50px;}.bot-mid-top .clf1{    margin-left:250px;}.bot-mid-bot{    width:100%;    height:40px;    line-height: 40px;}.bot-mid-bot .item{    width:80%;    border:1px solid #333;    border-radius: 3px;    height:9px;        margin-top:12px;    margin-left:100px;}.bottom-right{    width:30%;    height:100px;    line-height: 100px;    float:left;}.bottom-right ul{    list-style: none;}.bottom-right ul li{    float:left;    margin:0 30px 0 30px;}.bottom-right ul .clf2{    margin-left:200px;}

js:

let audioArr = []function removeClass(e) {    let  key = document.querySelector(`div[data-key="${e.keyCode}`)    let audio = document.querySelector(`audio[data-key="${e.keyCode}"]`)    key.classList.remove('playing')    audioArr.push(audio)}function playAudio(e) {    let  key = document.querySelector(`div[data-key="${e.keyCode}`)   let audio = document.querySelector(`audio[data-key="${e.keyCode}"]`)    key.classList.add('playing')    //audio.currentTime = 0; // 每次播放之后都使音频播放进度归零    if (!audio) return;    audio.play()}window.addEventListener('keydown', e => playAudio(e))window.addEventListener('keyup', e => removeClass(e))const btn = document.getElementById('btn') function Play() {  const self=this  const item1=setInterval(function(){    self.i++    console.log(self.i)    audioArr[self.i-2].play()    if(self.i>audioArr.length){      clearInterval(item1)    }  }, 200);}let obj={   i:1}function bind(){  Play.call(obj)}btn.addEventListener("click",bind)

2.图片自动消失

一张图片,在其右上角放置一个div

,分别得到那个元素,在div中插入数字

开启一个定时器,每隔一段时间减一。

直到为0.图片消失

<style>.ad{width:400px;height:400px;background-image: url(img/1.jpg);position:relative;margin:200px auto;}#sj{display:block;width:40px;height:40px;line-height:30px;border-radius:50%;border:1px solid red;position:absolute;top:20px;right:20px;text-decoration: none;text-align: center;line-height: 40px;font-size: 20px;}</style></head><body><div id="gg" class="ad"><a href="" > <span id="sj">5</span></a></div><script>var gg=document.getElementById("gg");var sj=document.getElementById("sj")var time=setInterval(function(){sj.innerHTML-=1;if(sj.innerHTML==0){gg.style.display="none";clearInterval(time);}},1000);</script></body>

yy3.小轮播图

放置三张图片,移动到那个图片,

改变他的偏移量。

*{padding:0;margin:0;}body,html{width:100%; overflow:hidden;}#wrap1{width:100%;position:absolute;bottom:0;left:0;text-align: center;}#wrap1>img{width:64px;}</style></head><body><div id="wrap1"><img src="img/1.png" /><img src="img/2.png" /><img src="img/3.png" /><img src="img/4.png" /><img src="img/5.png" /></div><script type="text/javascript">window.onload=function(){var r=320var imgNodes=document.querySelectorAll("#wrap1>img")document.onmousemove=function(ev){ev=ev||eventfor(var i=0;i<imgNodes.length;i++){var a= imgNodes[i].getBoundingClientRect().top+imgNodes[i].offsetHeight/2-ev.clientYvar b= imgNodes[i].getBoundingClientRect().right+ imgNodes[i].offsetWidth/2-ev.clientXvar c=Math.sqrt(a*a+b*b)if(c>=r){c=r} imgNodes[i].style.width=128-c*0.2+'px'}}}</script>

4.旋转音乐盒

旋转音乐盒

放置六张图片,将他们绝对定位。

根据所学css来对每一张图片进行定位

然后就是当点击哪一个图片时,播放

对应的音频音乐。

css:

*{padding:0;margin:0;}.cube{width:200px;height:200px;position: relative;margin:200px auto;   //使效果呈现3d效果transform-style: preserve-3d;animation: rotate 30s infinite linear;}@keyframes rotate{from{       transform:rotateX(0deg) rotateY(0deg);        }    to{       transform: rotateX(360deg) rotateY(360deg);        }}html{   //屏幕与我们的视距perspective: 10000px;}.cube>div{width:200px;height:200px;position:absolute;opacity: 0.7;}img{width:200px;height:200px;}.box1{transform: rotateX(90deg) translateZ(100px);}.box2{transform: rotateX(-90deg) translateZ(100px);}.box3{transform:  rotateY(0deg) translateZ(100px);}.box4{transform:  rotateY(180deg) translateZ(100px);}.box5 {transform: rotateY(90deg) translateZ(100px);}.box6  {transform: rotateY(-90deg) translateZ(100px);}.change{transform:  translateZ(50px);}</style>

html:

<div class="cube"><div class="box1" data-key="1"><img src="./img/imgs/1.jpg"></div><div class="box2" data-key="2"><img src="./img/imgs/2.jpg"></div><div class="box3" data-key="3"><img src="./img/imgs/3.jpg"></div><div class="box4" data-key="4"><img src="./img/imgs/4.jpg"></div><div class="box5" data-key="5"><img src="./img/imgs/5.jpg"></div><div class="box6" data-key="6"><img src="./img/imgs/6.jpg"></div></div><audio src="./img/audio/1.mp3" data-key="1"></audio><audio src="./img/audio/2.mp3" data-key="2"></audio><audio src="./img/audio/3.mp3" data-key="3"></audio><audio src="./img/audio/4.mp3" data-key="4"></audio><audio src="./img/audio/5.mp3" data-key="5"></audio>

js:

let divs=document.querySelectorAll('.cube>div')let audios=document.querySelectorAll('audio')    for(let i=0;i<divs.length;i++){for(let j=0;j<audios.length;j++){if(divs[i].dataset.key===audios[j].dataset.key){divs[i].onclick=function(){audios[j].play()}}}}

✍在最后,如果觉得博主写的还行

,期待?点赞  ?评论 ?收藏


点击全文阅读


本文链接:http://zhangshiyu.com/post/42299.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1