javascript无缝滚动示例

效果

图片大小均为200*200;

默认向左循环滚动;

鼠标悬浮暂停,鼠标移走继续滚动;

可以在此基础进行扩展。

 

下面是代码:

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>无缝滚动</title>
    <style>
        *{
            padding:0px;
            margin:0px;
        }
        #main{
            width:800px;
            margin:100px auto;
            text-align:center;
        }
        #box{
            width:800px;
            height:200px;
            margin:20px auto;
            position:relative;/*相对于起点*/
            /*background:red;*/
            overflow:hidden;
        }
        ul{
            position:absolute;
            left:0px;
            top:0px;
        }
        ul li{
            list-style:none;
            width:200px;
            height:200px;
            float:left;
            margin:0px 1px;
        }
        #main button{
            padding:10px;
            margin:0px 10px;
            border:0px;
            background:#ddd;
        }
        #main button:hover{
            background:#E9AF16;
            cursor:pointer;
        }
    </style>
</head>
<body>
    <div id="main">
        <h2>无缝滚动</h2>
        <div id="box">
            <ul>
                <li><img src="images/p1.jpg" alt="p1"></li>
                <li><img src="images/p2.jpg" alt="p2"></li>
                <li><img src="images/p3.jpg" alt="p3"></li>
                <li><img src="images/p4.jpg" alt="p4"></li>
            </ul>
        </div>
        <button>向左</button><button>向右</button>
    </div>

    <script>
        var oBox=document.getElementById("box");
        var aUl=oBox.getElementsByTagName("ul")[0];
        var aLi=oBox.getElementsByTagName("li");
        var speed=2;

        aUl.innerHTML=aUl.innerHTML+aUl.innerHTML;//使li增加一倍
        aUl.style.width=aLi[0].offsetWidth*aLi.length+"px";//修改aUl框的宽度,注意单位

        function move(){
            //向左移动aUl.offsetLeft是负的,我们需要把aUl的一半宽度放置在div右侧
            if(aUl.offsetLeft<-aUl.offsetWidth/2){
                aUl.style.left=0+"px";//将ul放回原位
            }
            //向右移动aUl.offsetLeft是大于0的,我们需要把aUl的一半宽度放置在div左侧
            if(aUl.offsetLeft>0){
                aUl.style.left=-aUl.offsetWidth/2+"px";//放置在div左侧,left为负值
            }
            aUl.style.left=aUl.offsetLeft-speed+"px";//整体移动ul,右
        }

        timer=setInterval(move,30);

        aUl.onmouseover=function(){
            clearInterval(timer);
        }

        aUl.onmouseout=function(){
            timer=setInterval(move,30);
        }

        var aBtn=document.getElementsByTagName("button");
        aBtn[0].onmouseover=function(){
            speed=2;
        }
        aBtn[1].onmouseover=function(){
            speed=-2;
        }
    </script>
</body>
</html>
时间: 2024-09-22 08:38:31

javascript无缝滚动示例的相关文章

可自定义速度的js图片无缝滚动示例分享

 这篇文章主要介绍了非常平滑的JS图片滚动特效代码,无缝循环,速度可自定义,大家参考使用吧 思路:   一组图片 控制它的滚动条进行滚动 且此时对这组图片进行复制并添加进原图片组中,现在就有两组图片了.你可以想象一下,现在滚动条继续滚动,原来那组图片最后一张图片已经滚至顶端且消失,复制的那组图片的第一张跟在原图最后一张图片后出现,此时你就能感觉到无缝滚动了. 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//E

可自定义速度的js图片无缝滚动示例分享_javascript技巧

思路: 一组图片 控制它的滚动条进行滚动 且此时对这组图片进行复制并添加进原图片组中,现在就有两组图片了.你可以想象一下,现在滚动条继续滚动,原来那组图片最后一张图片已经滚至顶端且消失,复制的那组图片的第一张跟在原图最后一张图片后出现,此时你就能感觉到无缝滚动了. 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/D

原生javascript无缝滚动效果

原生javascript效果:无缝滚动 www.111cn.net无缝滚动演示001 www.111cn.net无缝滚动演示002 www.111cn.net无缝滚动演示003 www.111cn.net无缝滚动演示004 << 向左 向右 >>

JavaScript中实现无缝滚动、分享到侧边栏实例代码_javascript技巧

废话不多说,直接给大家贴代码了,代码解决一起问题! 下面一段代码给大家介绍js无缝滚动实例代码: 代码如下所示: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml&

纯javascript实现四方向文本无缝滚动效果_javascript技巧

实现一个文本无缝滚动的效果: <!DOCTYPE html> <!--[if lt IE 7 ]> <html lang="zh-CN" class="ie6"> <![endif]--> <!--[if IE 7 ]> <html lang="zh-CN" class="ie7"> <![endif]--> <!--[if IE 8 ]

javascript实现的左右无缝滚动效果_javascript技巧

本文实例讲述了javascript实现的左右无缝滚动效果.分享给大家供大家参考,具体如下: 前面介绍过图片左右滚动,不过图片是间歇性的一张一张滚动,今天介绍的是几张图片一起进行无缝滚动,这是一个常用的 js 效果. <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8"> <title>无缝滚动--左右</title> &

javascript实现的上下无缝滚动效果_javascript技巧

本文实例讲述了javascript实现的上下无缝滚动效果.分享给大家供大家参考,具体如下: 前面介绍了JS左右无缝滚动效果,现在做下无缝滚动--上下的效果.其他代码和左右的差不多,只是改变的是 offsetTop 的值,并且不需要计算 ul 整体的宽度了. <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8"> <title>无缝滚

JavaScript实现垂直向上无缝滚动特效代码_javascript技巧

一.循环向上滚动的文字,如上面的滚动效果 二.实现的思路 1.建立三个层dome.dome1.dome2 2.垂直滚动的文字在dome1上 3.通过层的滚动来实现文字滚动 三.源代码 <html> <head> <title>循环向上滚动的文字</title> <link href="css/scrollTop.css" rel="stylesheet" type="text/css" /&g

基于javascript实现文字无缝滚动效果_javascript技巧

本文实例为大家分享了javascript实现文字无缝滚动的全部代码,供大家参考,具体内容如下 效果图: 实现代码: <!DOCTYPE html> <html> <head> <meta charset="gb2312"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title></title> &