学习开发记2:flex box,script控制音乐

float,flex box,script控制音乐。学习为主:

 

 html代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>角色注册</title>
    <link rel="stylesheet" href="./demo.css"><!-- 引入外部样式表 -->
    <!-- 内部样式类选择器,用来设置css样式 -->
    <style>
        /* CSS书写顺序:盒子模型属性,文字属性,阴影圆角等 */
        /* 清楚默认样式 */
        * {margin: 0;padding: 0;box-sizing: border-box;}
        /* 去掉列表的项目符号 */ul li {list-style: none;}

        body{display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            min-height: 100vh; /* 设置最小高度为视口高度,以确保内容垂直居中 */
            margin: 0; /* 去除body的默认边距 */
            background:black url(./images/宇宙.jpg) no-repeat center top/100% fixed;
        }

        .red{color: red;}
        .size1{font-size: 18px;}
        .box-green{width: 50px;height: 200px;background-color: aquamarine;}
        #brown{color: brown;}
        h1{text-align: center;font-weight: 800;font-family: 微软雅黑;color: rgba(0, 0, 0, 1);}
        p {text-indent: 2em;font-size: 16px;line-height: 1.5;color:rgb(0, 0, 0);}
        div1{text-decoration: underline;font:italic 500 20px/1.5 楷体;color:rgb(207, 24, 24);}

        a{text-decoration: none;}
        a:visited{color:yellowgreen;} a:hover{color:red} 

        ul li:nth-child(-n+3){background-color: green;}/* 结构伪类选择器:按公式选择 */
        .search{width: 600px;height: 46px;background-color:blanchedalmond;
            padding: 10px;padding-left: 20px;/* padding写法:四值 上 右 下 左,三值 上 左右 下,二值 上下 左右*/
            border: 2px dotted #aaa;border-bottom: 2px solid #000;
            margin: 20px auto 10px;/* 三值写法,所有auto版心居中 */
            box-sizing: border-box;/* margin、padding会撑大盒子,为不手动减法,用内减模式 */
            overflow: hidden;/* 溢出文字隐藏,滚动则hidden或scroll *//* 同时father级加overflow hidden还能解决father和son级盒子塌陷问题 */
            border-radius: 20px ;/* 圆角 */
            box-shadow: 2px 5px 10px 1px blue;/*若内阴影则加inset*/
        }/* 盒子内边距、外框线、外边距 */
        .search span{line-height: 10px;}/*行高*/
        
        #img {width: 200px;height: 200px;/* border-radius: 100px; */
            border-radius: 50%;/* 最大值是50%。超过50%没有效果 */
        }

        .news .bd li h3{/* 在无序列表开头设定小标志 */
            height: 25px;
            padding-left: 25px;
            background-image: url(./images/奥特图标.png);
            background-size: 25px; /* 设置背景图片的尺寸为25像素 */
            background-repeat: no-repeat;
            background-position: 0 center;
        }

        .box {
            display: flex;
            flex-direction: row;/* 主轴方向row colum */
            flex-wrap: wrap;/* 换行 */
            justify-content: space-evenly;/* 主轴对齐方式,对单行不生效 */
            align-items: center;/* 副轴居中 */
            /* 控制单个时用align-self并单独写出 */
            width: 1180px;
            height: 200px;
            border: 1px solid #000;
            border-radius: 20px ;
            background-color: black;
        }
        .box div {
            width: 200px;
            height: 80px;
            background-color: rgb(20, 227, 241);
            background-image: url("https://th.bing.com/th/id/R.a9b7597034e5d717a4c93834a70bc339?rik=nQeIuz%2fXgXselg&riu=http%3a%2f%2f5b0988e595225.cdn.sohucs.com%2fimages%2f20191017%2f775841c8bc484969ae8cd3cd8fa09c51.jpeg&ehk=ZffNJ2wGYvNWc9FZusbDKt9PHaxls8M8zl5nfwdy0fU%3d&risl=&pid=ImgRaw&r=0"); /* 设置背景图片 */
            background-size: cover; /* 以尽可能大的尺寸填充div,并保持图片的纵横比 */
            background-position: center; /* 将背景图片在div中居中显示 */
            background-repeat: no-repeat; /* 防止背景图片平铺 */
            border-radius: 10px ;
            padding: 10px;
        }
        .box div h4{font-size: large;color: beige;}

        /* 播放器容器样式 */
        .music-player-container {display: flex;align-items: center;gap: 10px;background-color: #333;padding: 10px;border-radius: 5px;box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);}
        /* 播放按钮样式 */
        .play-button {background-color: #ff0000;color: #ffffff;padding: 10px 20px;border: none;border-radius: 5px;font-size: 16px;cursor: pointer;}
        /* 停止按钮样式 */
        .stop-button {background-color: #ff0000;color: #ffffff;padding: 10px 20px;border: none;border-radius: 5px;font-size: 16px;cursor: pointer;}
        /* 音量滑块样式 */
        .volume-slider {width: 100px;}

    </style>    
    <!-- id选择器#,配合js使用 --><!-- 同一个id在一个页面只能使用一次 --><!-- 伪选择器,任何标签名或类:hover鼠标悬停状态。link访问前,visited访问后,active激活 -->
    <!-- 选择器优先级,范围越大优先级越低,继承的权重最低:通配符<标签<类<id<行内<!important -->
</head>

<body>
    <img id="img" src="./images/奥特图标.png" alt="奥特图标"><h1>奥特曼角色注册</h1>
    <hr>
    <!-- <audio id="bgAudio" autoplay loop muted><source src="./musics/ウルトラの奇跡 (奥特奇迹) - Project DMM.mp3" type="audio/mpeg"></audio><button id="stopButton">停止音乐</button> -->
    <div class="music-player-container">
        <button class="play-button" id="playButton">播放音乐</button>
        <button class="stop-button" id="stopButton">停止音乐</button>
        <input type="range" class="volume-slider" id="volumeSlider" min="0" max="1" step="0.1" value="1">
    </div>
     
    <audio id="bgAudio" loop>
        <source src="./musics/ウルトラの奇跡 (奥特奇迹) - Project DMM.mp3" type="audio/mpeg">
        您的浏览器不支持音频播放。
    </audio>

    <div class="search"><span>搜索框啊假的哈哈哈~</span></div>
    <div class="box">
        <div><h4><img src="" alt="">奥特曼</h4></div>
        <div><h4>佐菲</h4></div>
        <div><h4>赛文</h4></div>
        <div><h4>杰克</h4></div>
        <div><h4>艾斯</h4></div>
        <div><h4>泰罗</h4></div>
        <div><h4>雷欧</h4></div>
        <div><h4>阿斯特拉</h4></div>
        <div><h4>爱迪</h4></div>
        <div><h4>梦比优斯</h4></div>
    </div>

    <h2>每个<a href="https://zhuanlan.zhihu.com/p/458733175"><strong class="box-green">奥特曼</strong> </a> 都会骑行和踢球哦!</h2>
    <p>大约137亿年前,宇宙诞生。&nbsp;<!-- 空格字符实体 -->
        大约45.5亿年前,地球诞生。&lt;<!-- 大于号字符实体 -->
        2亿年前,海底原人拉贡统治地球&gt;<!-- 小于号字符实体 -->
        1亿5千万年前,地球上古代恐龙哥莫拉龙繁盛一时。6千5百万年前,地球上绝大多数恐龙灭绝。40万年前,M78星云诞生出优秀的文明,因为没有再发生任何的犯罪事件,M78星云自此废止了警察组织,建立起真正的理想国度 “光之国”。
        30万年以前,皮克 (也就是后来的奥特之王) 出生,出身地未知。(奥特之王是奥特一族传说中的超人,是宇宙守护者,30万岁以上的年龄让他见证了光之国诞生以来的所有历史,深受光之国爱戴,是<div1>光之国</div1> 的精神领袖。)
    </p>
    <!-- Emmet缩写:p.box  .box  p#box div+p div>p;;;   div{w500+h200+bgc} -->
    <table border="1">
        <tr>
            <th class="red size1">梦比优斯</th>
            <th><img src="./images/梦比优斯.gif" alt="梦比优斯图片" title="梦比优斯" height="500"></th>
        </tr>
        <tr>
            <th id="brown" class="size1">雷欧</th>
            <th><img src="./images/雷欧.jpg" alt="雷欧图片" title="雷欧" height="500"></th>
        </tr>
    </table>


    <form action=""><!-- form表单区域:action是发送数据的地址 -->
        <!-- 增大点击范围,提升用户体验:lable -->
        <label style="color: tomato;font-size: 22px;">性别:</label><!-- 配合js引入样式表 -->
        <input type="radio" name="gender" id="male"><label for="male">英雄</label>
        <!-- <input type="radio" name="gender" id="female"><label for="female">女神</label>下行为暴力写法二者皆可 -->
        <label><input type="radio" name="gender" checked>女神</label><hr><!-- 加同样的name属性可以实现单选 -->

        <!-- 按钮:button:submit reset button -->
        <label>用户名:</label><input type="text" placeholder="一行用span,独占用div"><br>
        <label>密码:</label><input type="password"><br>
        <label>确认密码:</label><input type="password"><br>
        <label>喜欢的奥特曼:</label><input type="checkbox"> 泰罗<input type="checkbox" checked> 梦比优斯<input type="checkbox" checked> 雷欧<br>
        <label>确认你的角色</label><select><option>梦比优斯</option><option>雷欧</option></select><br>
        <input type="checkbox"><label>已阅读并同意以下协议</label>
        <ol><li><a href="#">《用户服务协议》</a></li><li><a href="#">隐私政策</a></li></ol><!-- 未确定的url填# --><br>
        <button type="submit">提交</button>
        <button type="reset">重置</button>
    </form>

    <!-- ul无序列表 -->
    <h2>奥特资讯</h2>
    <div class="news">
        <div class="bd">
            <ul>
                <li><img src="https://pic1.zhimg.com/80/v2-ba8050e3f3d7b8fe8805958dfa07df60_720w.webp" alt="奥特之王"><h3>奥特之王</h3></li>
                <li><img src="https://pic2.zhimg.com/80/v2-cb04669510bece7605d38f17fde00599_720w.webp" alt="大战怪兽"><h3>大战怪兽</h3></li>        
                <li><img src="https://k.sinaimg.cn/n/sports/transform/283/w650h433/20230722/db04-f479bcda6d71e76c20cd4e5810b8bced.jpg/w700d1q75cms.jpg?by=cms_fixed_width" alt="迈阿密首秀"><h3>迈阿密首秀</h3></li>        
                <li><img src="https://f.sinaimg.cn/sports/transform/762/w500h262/20230722/0510-gif488fe054a987b990d16101f99b5308c3.gif" alt="任意球破门"><h3>任意球破门</h3></li>        
            </ul>
        </div>
    </div>

    <div class="hero">
        <div class="left"></div>
        <div class="right">
          <ul>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
          </ul>
        </div>
      </div>

    

    <script src="demo.js"></script>
</body>
</html>

js代码

console.log("欢迎到访M7星云")//在控制台输出信息

const audio = document.getElementById('bgAudio');
const playButton = document.getElementById('playButton');
const stopButton = document.getElementById('stopButton');
const volumeSlider = document.getElementById('volumeSlider');
let isPlaying = false; // 用于标记音乐是否正在播放

// 播放音频
function playAudio() {
  audio.play();
  isPlaying = true;
}

// 暂停音频
function pauseAudio() {
  audio.pause();
  isPlaying = false;
}

// 停止音频
function stopAudio() {
  pauseAudio();
  audio.currentTime = 0;
}

// 音量控制
function setVolume() {
  audio.volume = volumeSlider.value;
}

// 播放按钮点击事件
playButton.addEventListener('click', function() {
  if (!isPlaying) {
    playAudio();
  }
});

// 停止按钮点击事件
stopButton.addEventListener('click', function() {
  stopAudio();
});

// 音量滑块事件
volumeSlider.addEventListener('input', setVolume);

// 页面加载完成后播放音频
window.addEventListener('load', playAudio);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值