鼠标悬浮图片一道光闪过

     看到有些网站logo鼠标悬浮上面的时候,会出现一道光,一闪而过,刚开始以为是gif图,已审查,居然不是;现在就实现在这种效果:

先看看CSS实现的效果图:

     看到没,就是这道刺眼的白光。。。。   啊啊。。我的眼睛。。。。

代码:

<!doctype html>
<html lang="en">

    <head>
        <meta charset="UTF-8" />
        <title>Document</title>
        <style type="text/css">
            * {
                margin: 0px;
                padding: 0px;
            }
            
            #main {
                position: relative;
                margin: 50px auto;
                width: 600px;
                height: 400px;
                background: url(img/1.jpg) no-repeat;
                background-size: cover;
                overflow: hidden;
            }
            
            #main #guang {
                display: block;
                position: absolute;
                width: 300px;
                height: 100%;
                top: 0;
                left: -450px;
                overflow: hidden;
                transform: skewX(-30deg);
                transition: left 1s linear 0s;
                background: -webkit-linear-gradient(left, rgba(255, 255, 255, 0)0, rgba(255, 255, 255, .8)50%, rgba(255, 255, 255, 0)100%);
            }
            
            #main:hover #guang {
                left: 1500px;
            }
        </style>
        <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
        <!--<script type="text/javascript">
            $(function() {
                $("#main").hover(function() {
                    $("#guang").animate({
                        left: '1450'
                    }, 1000);
                }, function() {
                    $("#guang").stop(true, true).css('left', '-450px');
                })
            })
        </script>-->
    </head>

    <body>
        <div id="main">
            <div id="guang"></div>
        </div>
    </body>

</html>

     不知各位看官看出里面的问题没,就是鼠标离开的时候,一道光回回退回去,就是这个。。。

     现在js实现,打开上面的注释,加hover事件,我们用动画animate实现:

<!doctype html>
<html lang="en">

    <head>
        <meta charset="UTF-8" />
        <title>Document</title>
        <style type="text/css">
            * {
                margin: 0px;
                padding: 0px;
            }
            
            #main {
                position: relative;
                margin: 50px auto;
                width: 600px;
                height: 400px;
                background: url(img/1.jpg) no-repeat;
                background-size: cover;
                overflow: hidden;
            }
            
            #main #guang {
                display: block;
                position: absolute;
                width: 300px;
                height: 100%;
                top: 0;
                left: -450px;
                overflow: hidden;
                transform: skewX(-30deg);
                /*transition: left 1s linear 0s;*/
                background: -webkit-linear-gradient(left, rgba(255, 255, 255, 0)0, rgba(255, 255, 255, .8)50%, rgba(255, 255, 255, 0)100%);
            }
            /*#main:hover #guang {
                left: 1500px;
            }*/
        </style>
        <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
        <script type="text/javascript">
            $(function() {
                $("#main").hover(function() {
                    $("#guang").animate({
                        left: '1450'
                    }, 1000);
                }, function() {
                    $("#guang").stop(true, true).css('left', '-450px');
                })
            })
        </script>
    </head>

    <body>
        <div id="main">
            <div id="guang"></div>
        </div>
    </body>

</html>

    几天不写代码,有点生疏,各位看官,国庆玩的如何。。。。。。

    

纯CSS实现:

<!doctype html>
<html lang="en">

    <head>
        <meta charset="UTF-8" />
        <title>Document</title>
        <style type="text/css">
            .img {
                display: block;
                position: relative;
                width: 800px;
                height: 450px;
                margin: 0 auto;
            }
            
            .img:before {
                content: "";
                position: absolute;
                width: 200px;
                height: 100%;
                top: 0;
                left: -150px;
                overflow: hidden;
                background: -moz-linear-gradient(left, rgba(255, 255, 255, 0)0, rgba(255, 255, 255, .2)50%, rgba(255, 255, 255, 0)100%);
                background: -webkit-gradient(linear, left top, right top, color-stop(0%, rgba(255, 255, 255, 0)), color-stop(50%, rgba(255, 255, 255, .2)), color-stop(100%, rgba(255, 255, 255, 0)));
                background: -webkit-linear-gradient(left, rgba(255, 255, 255, 0)0, rgba(255, 255, 255, .2)50%, rgba(255, 255, 255, 0)100%);
                background: -o-linear-gradient(left, rgba(255, 255, 255, 0)0, rgba(255, 255, 255, .2)50%, rgba(255, 255, 255, 0)100%);
                -webkit-transform: skewX(-25deg);
                -moz-transform: skewX(-25deg)
            }
            
            .img:hover:before {
                left: 150%;
                transition: left 1s ease 0s;
            }
        </style>
    </head>

    <body>
        <a href="#" class="img"><img src="http://img.loveqiao.com/pic1.jpg" width="800"></a>
    </body>

</html>

   链接;http://www.loveqiao.com/archives/417

原文地址:https://www.cnblogs.com/libin-1/p/5936803.html