首页 > 技术文章 > 页面换肤效果js代码实现

Abbynameswld 2021-07-06 10:22 原文

页面换肤效果

一、要求:点击相应图片,将页面背景设置为相应图片

考察知识点:

①利用for循环注册事件

②利用js修改样式属性

二、效果展示:

三、代码实现:

1、html结构:

<body>
    <div class="box">
        <ul>
            <li><img src="images/1.jpg" alt=""></li>
            <li><img src="images/2.jpg" alt=""></li>
            <li><img src="images/3.jpg" alt=""></li>
            <li><img src="images/4.jpg" alt=""></li>
        </ul>
    </div>
</body>

2、样式文件:

<style>
    * {
        margin: 0;
        padding: 0;
    }
    
    body {
        background: url(images/1.jpg) no-repeat;
        background-size: cover;
    }
    
    .box {
        width: 1000px;
        height: 100px;
        margin: 20px auto;
        border: 2px solid slategray;
        border-radius: 5px;
    }
    
    .box ul li {
        float: left;
        width: 25%;
        height: 100px;
        list-style: none;
    }
    
    img {
        width: 100%;
        height: 100%;
    }
</style>

3、js文件

<script>
    //1、获取元素
    var imgs = document.querySelector('.box').querySelectorAll('img');
    var body = document.querySelector('body');
    //2、循环添加点击事件
    for (var i = 0; i < imgs.length; i++) {
        imgs[i].onclick = function() {
            // this.src就是我们点击图片的路径,把这个路径给body即可
            // console.log(this.src);
            body.style.background = 'url(' + this.src + ')';
            body.style.backgroundSize = 'cover'; /* 将背景图片等比缩放填满整个容器*/
        }
    }
</script>

 

推荐阅读