zoukankan      html  css  js  c++  java
  • html+css+js实现照相墙+背景改变

    当鼠标移动到相册的某张相片时,背景随之改变:

    这里主要讲改变背景的关键代码:

    关键CSS代码1:

    * {
        margin: 0;
        padding: 0;
    }
    body{
    background-size:100%;
    }
    .box{
        width: 1000px;
        margin: 0px auto;
        margin-top: 100px;
    }
    .box img {
        width: 320px;
        height: 180px;
        border: 5px solid azure;
        box-shadow: -10px -10px 10px black;
        transition: all 0.3s linear;
    }
    
    img:nth-child(odd) {
        transform: rotate(20deg);
    }
    
    img:nth-child(even) {
        transform: rotate(-20deg);
    }
    
    img:hover {
        transform: scale(1.3);
        position: relative;
        z-index: 2;
    }
    View Code

    关键html代码:【重点在onmouseover="loadBg(this)",class="img"的方法还没调试修改完成

    <div class="box">
                <img src="./../../正面.jpg" onmouseover="loadBg(this)">
                <img src="./../../反面.jpg" onmouseover="loadBg(this)">
                <img src="./../../xuanjiezhimou.jpg" onmouseover="loadBg(this)">
                <img src="./../../码上说故事_690.jpeg" onmouseover="loadBg(this)">
                <img src="./../../1.jpg"  onmouseover="loadBg(this)">
                <img src="./../../反面.jpg" onmouseover="loadBg(this)">
                <img src="./../../正面.jpg" onmouseover="loadBg(this)">
                <img src="./../../沧海一声笑.PNG" onmouseover="loadBg(this)">
                <img src="./../../xuanjiezhimou.jpg" onmouseover="loadBg(this)">
    </div>
    View Code

    关键JS代码:【关于使用class来获取的省略,还没调试,重点看最简单的方法,贴出代码】

    //加载背景图片的方法【方法二,实验成功】
    function loadBg(mok){
            //获取src的值
            var val = mok.src;
            document.body.style.backgroundImage="url("+val+")";
            document.body.style.backgroundRepeat="no-repeat";
    }
    View Code

    也就是贴上面的代码即可实现,如果想要测试其他的一种方法,可以自行复制下面的代码进行修改。

    完整代码:

    <!doctype html>
    <html>
    <head>
    <meat charset="utf-8"/>
    <title>照片墙</title>
    <style type="text/css">
    * {
        margin: 0;
        padding: 0;
    }
    body{
    background-size:100%;
    }
    .box{
        width: 1000px;
        margin: 0px auto;
        margin-top: 100px;
    }
    .box img {
        width: 320px;
        height: 180px;
        border: 5px solid azure;
        box-shadow: -10px -10px 10px black;
        transition: all 0.3s linear;
    }
    
    img:nth-child(odd) {
        transform: rotate(20deg);
    }
    
    img:nth-child(even) {
        transform: rotate(-20deg);
    }
    
    img:hover {
        transform: scale(1.3);
        position: relative;
        z-index: 2;
    }
    </style>
    
    </head>
    <body>
    <div class="box" id="box">
                <img src="./../../正面.jpg" class="img" onmouseover="loadBg(this)">
                <img src="./../../反面.jpg" class="img" onmouseover="loadBg(this)">
                <img src="./../../xuanjiezhimou.jpg" class="img" onmouseover="loadBg(this)">
                <img src="./../../码上说故事_690.jpeg" class="img" onmouseover="loadBg(this)">
                <img src="./../../1.jpg" class="img" onmouseover="loadBg(this)">
                <img src="./../../反面.jpg" class="img" onmouseover="loadBg(this)">
                <img src="./../../正面.jpg" class="img" onmouseover="loadBg(this)">
                <img src="./../../沧海一声笑.PNG" class="img" onmouseover="loadBg(this)">
                <img src="./../../xuanjiezhimou.jpg" class="img" onmouseover="loadBg(this)">
    </div>
    
    </body>
    </html>
    <!-- 使用js实现当鼠标移到对应的照片上时,背景变成这张照片 -->
    <script type="text/javascript">
    //获取某元素所有子元素的方法
    function getByClass(oParent, sClass){
        var aResult=[];
        var aEle=oParent.getElementsByTagName('*');
        for(var i=0;i<aEle.length;i++){
            if(aEle[i].className==sClass)
            {
                aResult.push(aEle[i]);
            }
        }
        return aResult;
    }
    
    /** 加载背景图片的方法 onload="loag(Bg)"放在body标签【方法一,实现失败,有时间再研究研究】
    function loadBg(){
    //获取对应img的src的值
    var box=document.getElementById('box');
        var img=getByClass(box, 'img');
        for(var i=0;i<img.length;i++){
            //获取src的值
            var val = img[i].src;
            //alert(img[i].src);
            //当鼠标移动到该图片上时,触发事件
            //将src的值加入body的backgroundImage
            img[i].onmouseover = function(){
            document.body.style.backgroundImage="url("+val+")";
            console.log(val);
            
            }
            
        }
    }
    **/
    //加载背景图片的方法【方法二,实验成功】
    function loadBg(mok){
            //获取src的值
            var val = mok.src;
            document.body.style.backgroundImage="url("+val+")";
            document.body.style.backgroundRepeat="no-repeat";
    }
    </script>
  • 相关阅读:
    hdu3746 KMP的next数组应用,求项链首尾项链循环
    hdu4067 费用流(混合欧拉的宽展和延伸)
    hdu4067 费用流(混合欧拉的宽展和延伸)
    hdu1501 记忆化搜索
    hdu1501 记忆化搜索
    hdu1316 大数
    hdu1316 大数
    hdu4411 经典费用里建图
    hdu4411 经典费用里建图
    hdu4768 非常规的二分
  • 原文地址:https://www.cnblogs.com/ciscolee/p/12386651.html
Copyright © 2011-2022 走看看