話,javascript在學(xué)習(xí)過程中會很枯燥,并不是你剛學(xué)就可以做出很多華麗的特效,好玩的游戲,和漂亮的代碼,更多的時候都是無聊的,有的人說我對javascript很有興趣,人性本是好逸惡勞,最喜歡吃喝玩樂,學(xué)什么javascript都是被生活壓力所迫,與興趣無關(guān)。所以堅(jiān)持吧,這很重要。
效果圖如下:
有很多人學(xué)習(xí)前端,都不是因?yàn)榕d趣,許多人連前端開發(fā)是什么都不知道,他哪來的興趣?然后簡歷里寫:“對前端有濃厚的興趣"前端并不是一個很容易學(xué)好的科目,所以還是那句話,多寫多練多問。
今天的這個案例就寫完了,希望大家能夠?qū)W習(xí)到東西把這個游戲做出來,源碼和素材下面第三條建議會告訴大家。
再說幾點(diǎn)建議:
前端怎么學(xué)習(xí),很簡單網(wǎng)上教程很多,你照著寫,寫一遍不會,寫十遍呢?你會懷疑,萬一我寫十遍還不會呢?但是你寫十遍了嗎?無它,唯手熟而
多年開發(fā)老碼農(nóng)福利贈送:網(wǎng)頁制作,網(wǎng)站開發(fā),web前端開發(fā),從最零基礎(chǔ)開始的的HTML+CSS+JavaScript。jQuery,Ajax,node,angular框架等到移動端小程序項(xiàng)目實(shí)戰(zhàn)【視頻+工具+電子書+系統(tǒng)路線圖】都有整理,需要的伙伴可以私信我,發(fā)送“前端”等3秒后就可以獲取領(lǐng)取地址,送給每一位對編程感興趣的小伙伴
這個案例就算做完了,想要完整代碼自己練習(xí)的小伙伴進(jìn)我的QUN自助領(lǐng)取,已經(jīng)上傳到群文件里了,歡迎學(xué)習(xí)交流的小伙伴過來一起學(xué)習(xí)交流。
這里分享一個我平時常用的水波特效步驟,加在按鈕上特好使。
首先,是直接創(chuàng)建一個div盒子,不需要在里面添加其他內(nèi)容,我們直接對盒子本身添加css就能形成水波效果。
html部分,我們div添加白色的波紋,所以在這里設(shè)置html背景為藍(lán)色。
<body style="background-color: cadetblue ;">
<div class="video"></div>
</body>
css部分,先設(shè)置好div的基本屬性
.video {
/* 基本屬性 */
width: 100px;
height: 100px;
border-radius: 50px;
/* 給背景顏色添加不透明度 */
/* 不透明度還可以通過添加opacity屬性修改 */
background-color: rgb(255, 255, 255, 0.6);
}
然后就是在video中添加這個特效中重中之重的內(nèi)容,在css中設(shè)置animation。
Animation 是由三部分組成。
.video {
/* 添加ripple動畫效果 */
/* -webkit-animation適配-webkit內(nèi)核的瀏覽器*/
-webkit-animation: ripple 1s linear infinite;
animation: ripple 1s linear infinite;
}
/* 定義ripple動畫效果 */
@-webkit-keyframes ripple {
/* 關(guān)鍵幀播放到0%時的狀態(tài) */
0% {
/* 在box四周添加三層白色陰影 */
box-shadow: 0 0 0 0 rgb(255 255 255 / 25%),
0 0 0 10px rgb(255 255 255 / 25%),
0 0 0 20px rgb(255 255 255 / 25%);
}
/* 關(guān)鍵幀播放到100%時的狀態(tài) */
100% {
/* 分別改變?nèi)龑雨幱暗木嚯x
形成兩幀的動畫,然后在transition的過渡下形成動畫 */
box-shadow: 0 0 0 10px rgb(255 255 255 / 25%),
0 0 0 20px rgb(255 255 255 / 25%),
0 0 0 40px rgba(50, 100, 245, 0);
}
}
/* 多種瀏覽器兼容性設(shè)置 */
@keyframes ripple {
0% {
box-shadow: 0 0 0 0 rgb(255 255 255 / 25%),
0 0 0 10px rgb(255 255 255 / 25%),
0 0 0 20px rgb(255 255 255 / 25%);
}
100% {
box-shadow: 0 0 0 10px rgb(255 255 255 / 25%),
0 0 0 20px rgb(255 255 255 / 25%),
0 0 0 40px rgba(50, 100, 245, 0);
}
}
其中,linear是表示動畫的timing-function,其總共大致有以下幾種效果。
圖源水印
為了實(shí)現(xiàn)按鈕的響應(yīng)式操作,我們可以給div再加上一個hover選擇器
/* 鼠標(biāo)懸浮時的狀態(tài) */
.video:hover {
/* 背景顏色不透明度變化 */
background-color: #FFFFFF;
/* 將對象放大1.2倍 */
transform: scale(1.2);
}
再給div添加一個transition屬性,讓div在鼠標(biāo)移動的時候能自然過渡,其原理跟animation類似。
.video {
/* 添加動畫的過渡效果 */
transition: all 0.3s ease-in-out;
}
然后就能得到我們的結(jié)果,整體的代碼如下
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style>
.video {
width: 100px;
height: 100px;
border-radius: 50px;
background-color: rgb(255, 255, 255, 0.6);
transition: all 0.3s ease-in-out;
-webkit-animation適配-webkit內(nèi)核的瀏覽器*/
-webkit-animation: ripple 1s linear infinite;
animation: ripple 1s linear infinite;
}
.video:hover {
background-color: #FFFFFF;
transform: scale(1.2);
}
@-webkit-keyframes ripple {
0% {
/* 在box四周添加三層白色陰影 */
box-shadow: 0 0 0 0 rgb(255 255 255 / 25%),
0 0 0 10px rgb(255 255 255 / 25%),
0 0 0 20px rgb(255 255 255 / 25%);
}
100% {
/* 分別改變?nèi)龑雨幱暗木嚯x
形成兩幀的動畫,然后在transition的過渡下形成動畫 */
box-shadow: 0 0 0 10px rgb(255 255 255 / 25%),
0 0 0 20px rgb(255 255 255 / 25%),
0 0 0 40px rgba(50, 100, 245, 0);
}
}
@keyframes ripple {
0% {
box-shadow: 0 0 0 0 rgb(255 255 255 / 25%),
0 0 0 10px rgb(255 255 255 / 25%),
0 0 0 20px rgb(255 255 255 / 25%);
}
100% {
box-shadow: 0 0 0 10px rgb(255 255 255 / 25%),
0 0 0 20px rgb(255 255 255 / 25%),
0 0 0 40px rgba(50, 100, 245, 0);
}
}
</style>
</head>
<body style="background-color: cadetblue ;">
<div class="video"></div>
</body>
</html>
效果圖
下是使用HTML、CSS和JavaScript實(shí)現(xiàn)"櫻花飄落"和"雪花飄落"特效的簡單示例:
1. 櫻花飄落特效:
HTML:
```html
<div class="sakura-container">
<img src="sakura.png" class="sakura" alt="sakura">
</div>
```
CSS:
```css
.sakura-container {
position: relative;
height: 100vh;
overflow: hidden;
}
.sakura {
position: absolute;
top: -50px;
animation: sakura-fall 10s linear infinite;
}
@keyframes sakura-fall {
0% {
transform: translateY(0);
}
100% {
transform: translateY(100vh);
}
}
```
2. 雪花飄落特效:
HTML:
```html
<div class="snow-container">
<span class="snowflake"></span>
</div>
```
CSS:
```css
.snow-container {
position: relative;
height: 100vh;
overflow: hidden;
background-color: #000;
}
.snowflake {
position: absolute;
top: -10px;
width: 10px;
height: 10px;
background-color: #fff;
border-radius: 50%;
animation: snow-fall 5s linear infinite;
}
@keyframes snow-fall {
0% {
transform: translateY(0) rotate(0deg);
}
100% {
transform: translateY(100vh) rotate(360deg);
}
}
```
JavaScript:
```javascript
function createSnowflakes() {
const snowContainer = document.querySelector('.snow-container');
const numFlakes = 50;
for (let i = 0; i < numFlakes; i++) {
const snowflake = document.createElement('span');
snowflake.classList.add('snowflake');
snowflake.style.left = `${Math.random() * 100}%`;
snowflake.style.animationDelay = `${Math.random() * 5}s`;
snowContainer.appendChild(snowflake);
}
}
createSnowflakes();
```
將上述代碼保存為HTML文件,并在相應(yīng)的位置放置櫻花或雪花圖像,即可實(shí)現(xiàn)對應(yīng)特效。注意,需要在CSS中調(diào)整圖像和容器的樣式以適應(yīng)實(shí)際需求。這只是一個簡單示例,您可以根據(jù)自己的喜好和需求進(jìn)行定制和擴(kuò)展。
*請認(rèn)真填寫需求信息,我們會在24小時內(nèi)與您取得聯(lián)系。