breakout_game--js练手demo(html和css)

博主为巩固JavaScript的dom、bom操作知识,通过写简单demo练手。介绍了找项目练手的渠道,建议从简单组件或h5游戏入手,看懂源码并写注释。还提及网页布局重要性,推荐用flex布局,强调组件和公共样式思想对CSS的好处。

前言

我最近在学习JavaScript的dom,bom操作,但是感觉就只是了解了,也没有好好运用,感觉自己记亿性不好,估计过几天可能就忘了,所以在学习过程中,写一些demo练手.
所以就出个简单demo练手,不仅我可以复盘,也可以教新手学习JavaScript.

过程

事先说明:我自身很菜,所以项目是在github上找的
就简单讲讲我是如果找项目练手的

  1. 其实项目的渠道有很多例如:B站会有视频手把手教你,知乎会告诉你高星的GitHub项目,或者直接在GitHub上撸下来
  2. 找到项目先看看,项目大致的情况,刚开始学习我觉得不适合写那种大型的项目,应该写那种简单组件或者一些h5的游戏
  3. 不要一开始就去看源码,你可以先看看别人的布局,设计,先玩玩别人的项目,有没有头绪去写.
  4. 看源码,这里就一定要看懂源码,建议html和css一起看,有一点点不懂都要去查
  5. 有自己理解的去写.一定要写注释(越来越多是最好的),可以提醒自己思路

项目

布局

在一个网页布局是比较重要的,布局好,处理js和css会相对方便一些
在这里插入图片描述
注:左边有一个按钮

这个项目布局相对会很容易看出!!
所以代码也不会特别复杂!

HTML代码

 <h1>Breakout!</h1>
        <div id="rules-btn" class="btn rules-btn" type="button">show rules</div>
        <div id="rules" class="rules">
            <h2>Rules:</h2>
            <p>
                Use your right and left keys to move the paddle to bounce the ball up and break the
                blocks.
            </p>
            <p>If you miss the ball, your score and the blocks will reset.</p>
            <button id="close_btn" class="btn">close</button>
        </div>

        <canvas id="canvas" width="800" height="600"></canvas>
        <!-- <div class="king">
          <h2>You are King!!</h2>
          <div type="button" class="btn">重新开始</div>
        </div> -->

CSS

我觉得这个没有什么好讲的!!边看代码,边讲!
在这里插入图片描述
flex是 CSS3 引入的新的布局模式。它决定了元素如何在页面上排列,使它们能在不同的屏幕尺寸和设备下可预测地展现出来。

在页面上的布局:

  • 在不同方向排列元素
  • 重新排列元素的显示顺序
  • 更改元素的对齐方式
  • 动态地将元素装入容器

以前是用float或者position,这些都有一些缺点,例如高度塌陷,在不同尺寸下就会乱,这样的.而flex刚好就避免了这些问题,它也可以解决垂直居中这个大问题.
以后用flex去布局会方便许多!
在这里插入图片描述
这几个选择器能够减少js的操作,交互性更强,如果用的好,按钮那就很好看了.(一些常用的选择器很重要)
感觉css没有什么可以介绍的了 css就是为了页面变得美观,你觉得怎样好看就怎么来!!

css代码

* {
    box-sizing: border-box;
    user-select: none;
}
/* 利用了弹性盒子去进行布局 */
body {
    background-color: rgb(0, 149, 211);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: white;
    margin: 0;
}
h1 {
    color: #fff;
    font-size: bold;
    text-align: center;
    margin: 20px 0;
    font-size: 45px;
}
/* 画布的样式 */
canvas {
    background: #f0f0f0;
    display: block;
    border-radius: 5px;
}

.btn {
    cursor: pointer;
    padding: 10px 20px;
    color: #fff;
    border-radius: 5px;
    background-color: black;
    outline: none;
    border: none;
}
.btn:focus {
    outline: none;
}
.btn:hover {
    background-color: #222;
}
.btn:active {
    transform: scale(0.99);
}

.rules-btn {
    position: absolute;
    top: 30px;
    left: 30px;
}
.rules {
    width: 400px;
    position: absolute;
    top: 0;
    left: 0;
    background-color: rgb(51, 51, 51);
    height: 100%;
    padding: 20px;
    line-height: 1.5;
    transform: translateX(-400px);
    transition: transform 1s ease-in-out;
}
.rules.show {
    transform: translateX(0px);
}
/* .king{
    width: 300px;
    height:200px;
    position: absolute;
    background: black;
    opacity: 0.7;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    text-align: center;
    border-radius: 5px;
} */

有一点忘记说了:
要有组件的思想,要用共同样式思想.当你看一些大型网站或者一些框架,你会发现他们善于提取共同点,不要看到一个标签就开始写样式,其实你可以先提前公共样式,写好公共样式,在去专门写特定的样式,
这样好处很多:

  1. 减少css代码量
  2. 方便维护
  3. 易于更改样式

以上都是我写项目的一些学习到的地方!!(如果有错的,请提醒我更改)

大家好,我是大一小菜鸡,又菜瘾还大!!!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值