美文网首页
GitHub前端50天50个项目,第5个 模糊加载

GitHub前端50天50个项目,第5个 模糊加载

作者: 小杨同学97 | 来源:发表于2022-08-18 10:11 被阅读0次

演示地址

Blurry Loading (50projects50days.com)

代码

html结构

<!DOCTYPE html>
<html lang="zh-CN">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>模糊加载</title>
    <link rel="stylesheet" href="style.css">
</head>

<body>
    <section class="bg"></section>
    <div class="loading-text">100%</div>
    <script src="./script.js"></script>
</body>

</html>

css样式

** {
    padding: 0;
    margin: 0;
    box-sizing: border-box;
}

body {
    /* 弹性布局,垂直居中 */
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100vh;
}

.bg {
    position: absolute;
    top: 0;
    left: 0;
    height: 100vh;
    width: 100vw;
    background: url("./th.jpg") no-repeat center;
    z-index: -1;
}

.loading-text {
    color: white;
    font-size: 64px;
}

js行为

const loadText = document.querySelector(".loading-text")
const bg = document.querySelector('.bg')

let load = 0

let init = setInterval(bluring, 25)

function bluring() {
    load++
    if (load > 99) {
        clearInterval(init)
    }
    loadText.innerHTML = `${load}%`
    loadText.style.opacity = scale(load, 0, 100, 1, 0)
    b
    bg.style.filter = `blur(${scale(load, 0, 100, 30, 0)}px)`
}


const scale = (num, inMin, inMax, outMin, outMax) => {
    return ((num - inMin) * (outMax - outMin)) / (inMax - inMin) + outMin
}

参考资料:50 Projects 50 Days | Traversy Media
50 unique mini-projects to sharpen your HTML, CSS & JavaScript skills

相关文章

网友评论

      本文标题:GitHub前端50天50个项目,第5个 模糊加载

      本文链接:https://www.haomeiwen.com/subject/jncsgrtx.html