zoukankan      html  css  js  c++  java
  • js实现图片无缝连接

    效果图

    1.首先先看看html和css代码

    <style>
        *{padding:0;margin:0;}
         #div1{margin:100px auto;background:red;width:712px;height:108px;position:relative;overflow:hidden;}
        #div1 ul{position:absolute;left:0;top:0;}
        #div1 ul li{list-style:none;float:left;width:178px;height:108px;}
        #a1{display:block;width:66px;height:66px;background:url(btn.jpg) 66px 68px;
            position: absolute;left:250px;top:120px; }
        #a2{
            display:block;width:66px;height:66px;background:url(btn.jpg) 135px 68px;position: absolute;left:1050px;top:120px; }
    </style>
    <body>
    <a href="javascript:" id="a1"></a>
    <a href="javascript:" id="a2"></a>
    <div id="div1">
        <ul>
            <li><img src="1.jpg"  /></li>
            <li><img src="2.jpg"  /></li>
            <li><img src="3.jpg"  /></li>
            <li><img src="4.jpg"  /></li>
        </ul>
    </div>   
    </body>

    js代码如下,都带有注释,大家可以自己实现再看代码

    <script>
        window.onload=function()
        {
            var oDiv =document.getElementById("div1");
            var oUl =oDiv.getElementsByTagName("ul")[0];
            var aLi=oUl.getElementsByTagName("li");
            oUl.innerHTML=oUl.innerHTML+oUl.innerHTML;  //增加重复的四张图片
            // console.log(oUl.innerHTML);    //调试用的
            oUl.style.width=aLi.length * aLi[0].offsetWidth +"px";  //因为上面加了一半的图片,现在有8张图片。
            // console.log(aLi.length);
            var speed=2;
            function overside()
                {
                    if (oUl.offsetLeft<-oUl.offsetWidth/2)   //当ul的一般向左运动,当ul将要进入div时
                    {
                        oUl.style.left='0';
                    }
                    if(oUl.offsetLeft>0)  //当ul等于0,即向右运动馆将要出div的时候
                    {
                        oUl.style.left=-oUl.offsetWidth/2+'px';
                    }
    
                   oUl.style.left=oUl.offsetLeft+speed+'px'; 
                }
    
            var timer=setInterval(overside,30 ) ;
            oDiv.onmouseover=function()
            {
                clearInterval(timer);
            };
            oDiv.onmouseout=function()
            {
                timer=setInterval(overside,30 ) ;
            }
    
            var oA=document.getElementsByTagName("a");
               oA[0].onclick=function()
            {
                 speed=-2;
            }
            oA[1].onclick=function()
            {
                speed=2;
            }
    
        };
    </script>

    这有点难度,希望不懂得方法和属性可以百度

  • 相关阅读:
    K8S之traefik高级特性
    docker nginx-php容器镜像瘦身优化
    Dubbo-服务消费者初始化
    ThreadLocal 源码分析
    JVM 对象分配规则
    JVM GC 机制
    LockSupport
    自旋锁
    CAS
    Synchronized 监视器锁
  • 原文地址:https://www.cnblogs.com/biyongyao/p/5854799.html
Copyright © 2011-2022 走看看