JAVASCRIPT

10초마다 명언가져오기 + 배경화면 바꾸기 문제풀이

이미사용 2023. 4. 17. 23:18
명언
-
728x90
반응형

10초마다 json에 담긴 명언 하나를 랜덤으로 가져오기 문제풀이 보러가기

※10초마다 명언가져오기 + 배경화면 바꾸기

 

전체소스

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>p519 마무리 문제</title>
    <link href="https://webfontworld.github.io/NexonLv1Gothic/NexonLv1Gothic.css" rel="stylesheet">
    <link href="https://webfontworld.github.io/ChosunGs/ChosunGs.css" rel="stylesheet">
    <style>
        * {
            margin: 0;
            padding: 0;
            color: #fff;
        }
        body {
            /* background-image: url(img/monje519.jpg); */
            background-size: cover;
            transition: all 0.3s;
        }
        #wrap {
            width: 1000px;
            margin: 0 auto;
            display: flex;
            justify-content: center;
            align-items: center;
            min-height: 100vh;
        }
        .border {
            width: 100%;
            height: 250px;
            background-color: rgba(0, 0, 0, 0.5);
        }
        .wisesaying {
            padding: 30px;
        }
        .wisesaying h3 {
            padding: 10px 0;
        }
        .quote{
            padding: 20px 0;
            font-family: 'NexonLv1Gothic';
        }
        .author {
            padding: 20px 0;
            font-family: 'ChosunGs';
            font-weight: bold;
        }
    </style>
</head>
<body>
    <div id="wrap">
        <div class="border">
            <div class="wisesaying">
                <h3>명언 모음집</h3>
                <div class="quote">명언</div>
                <div class="author">-<span></span></div>
            </div>
        </div>
    </div>
    
</body>
    <script>
        const quote = document.querySelector(".quote");
        const author = document.querySelector(".author span");  

        const bgimg = () => {
            fetch(`https://source.unsplash.com/random/?wallpapers`)
            .then((imgs) => {
                let imgurl = imgs.url
                console.log(imgurl)
                document.body.style.backgroundImage = 'url('+imgurl+')'
            });
        }
;
        const datawisesaying = () => {
            fetch("json/dummy01.json")
            .then(res => res.json())
            .then(datas => {
                // console.log(datas.quotes[0].quote)
                let wisesaying = datas.quotes;
                let Random = Math.trunc(Math.random() * wisesaying.length);
                let wisesayingRandom = wisesaying[Random];
                
                quote.innerHTML = wisesayingRandom.quote
                author.innerHTML = wisesayingRandom.author
                // console.log(wisesayingRandom)
            });
            bgimg();
        };
        datawisesaying();
        setInterval(datawisesaying,10000);
    </script>
</html>

 

10초 마다 명언을 json파일에서 가져오는 것에서 추가로 배경화면도 바뀌게 해주었습니다.

        const bgimg = () => {
            fetch(`https://source.unsplash.com/random/?wallpapers`)
            .then((imgs) => {
                let imgurl = imgs.url
                console.log(imgurl)
                document.body.style.backgroundImage = 'url('+imgurl+')'
            });
        }

함수를 하나 더 만들어서 랜덤으로 이미지가 나오는 사이트를 가져와 필요한 정보를 가져온후 변수로 저장해줍니다.

그후 명언이 나오는 함수가 시작할때 이미지 배경이나오는 함수도 실행해 주면 명언이 바뀔때 마다 배경도 바뀝니다.