zoukankan      html  css  js  c++  java
  • JS实现鼠标移上去图片停止滚动移开恢复滚动效果

    这是在做个人站的时候展示项目成果,因为不光需要展示,还需要介绍详细内容,就在滚动展示的地方做了这个效果以便于点开想要看的项目。

    首先,要做的是一个需要滚动的区域。我前边写过一个关于图片循环滚动的示例,那个是一块块的的滚动==>实现图片的循环滚动 .

    这次我们就做滚动区域是平滑循环滚动效果。

    下边是布局的HTML代码,原理是在要展示区域的div(.ban_img)里加一个能包含所有需要展示的图的大div(.in_img),

    <div class=" ban_img">
            <div class="in_img">
                <div class="inside inside1"></div>
                <div class="inside inside2"></div>
                <div class="inside inside3"></div>
                <div class="inside inside4"></div>
                <div class="inside inside5"></div>
                <div class="inside inside6"></div>
                <div class="inside inside1"></div>
                <div class="inside inside2"></div>
                <div class="inside inside3"></div>
                <div class="inside inside4"></div>
                                
            </div>
    </div>

    下边是CSS样式,我加的是背景图,可跟实际情况选择(图片路径根据实际位置修改)

    .ban_img{
        height: 400px;
        .in_img{
            width: 3000px;
            background-color: blue;
            .inside{
                width: 300px;
                float: left;
                height: 400px;
                background-repeat: no-repeat;
                background-size: cover;
                box-sizing: border-box;
                border: 3px solid #108A77;
            }
            .inside1{
                background-image: url(../img/binzhilang.png);
            }
            .inside2{
                background-image: url(../img/zhihui.png);
            }
            .inside3{
                background-image: url(../img/jredu.png);
            }
            .inside4{
                background-image: url(../img/sanyi.png);
            }
            .inside5{
                background-image: url(../img/cimply.png);
            }
            .inside6{
                background-image: url(../img/xingbake.png);
            }
        }
    }

    实现循环滚动的JS很简单,为div(.in_img)加一个定时器就可以了,每10毫秒调整它的marginleft-1px,循环完一遍,计数器num清零

    var scroll=document.getElementsByClassName("in_img");
    var num=0;
    var time=setInterval(function(){
        num--;
        scroll[0].style.marginLeft=num+"px";
        if(num<=-1800){
                    num=0;
                }
    },10);

    这样一来,平滑连续滚动的效果就可以实现了.

    那么怎么实现标题所述效果呢?这也很简单,为div(.in_img)绑定两个事件来控制定时器就可以了。

    首先添加鼠标移上去事件,来清除定时器

    scroll[0].addEventListener("mouseover",function(){
        clearInterval(time);
    });

    然后添加鼠标移走事件,再恢复定时器

    scroll[0].addEventListener("mouseout",function(){
        time=setInterval(function(){
            num--;
            scroll[0].style.marginLeft=num+"px";
            if(num<=-1800){
                        num=0;
                    }
        },10);
    })

    这样一来,大功告成!

    功能简单,代码不难,但很实用。人工手打,辛苦给点个推荐吧^_^

  • 相关阅读:
    呼叫中心架构设计
    呼叫中心架构设计
    python数据分析工具安装集合
    QQ 聊天机器人小薇 2.0.0 发布!
    QQ 聊天机器人小薇 2.0.0 发布!
    spark编程python实例
    Intellij idea配置scala开发环境
    stm32时钟设置函数
    ESP8266 TCP传输AT指令顺序
    WIFI接入Internet配置过程
  • 原文地址:https://www.cnblogs.com/cherishli/p/6920624.html
Copyright © 2011-2022 走看看