无缝滚动图片——源码

简介: 无缝滚动图片——源码

图片已上传,请到我的资源部去下载,不用积分,——无缝滚动图片http://download.csdn.net/detail/qq_34137397/9665933

</head>
<body>
<div class="control">
  <label id="chk_pause"><input type="checkbox" checked="checked">间隔停顿</label>
  <select id="pause_time">
    <option value="100">短</option>
    <option value="1000" selected="selected">中</option>
    <option value="3000">长</option>
  </select>
  滚动速度:
  <select id="sel_speed">
    <option value="2">慢</option>
    <option value="5">中</option>
    <option value="10">快</option>
  </select>
</div>
<div class="roll" id="roll">
    <a href="javascript:void(0);" class="btn_left"></a>
    <a href="javascript:void(0);" class="btn_right"></a>
    <div class="wrap">
        <ul>
            <li><a href="http://www.zhinengshe.com/"><img src="images/1.jpg" /></a></li>
            <li><a href="http://www.zhinengshe.com/"><img src="images/2.jpg" /></a></li>
            <li><a href="http://www.zhinengshe.com/"><img src="images/3.jpg" /></a></li>
            <li><a href="http://www.zhinengshe.com/"><img src="images/4.jpg" /></a></li>
        </ul>
    </div>
</div>
</body>
</html>


CSS代码

* { padding: 0; margin: 0;
li { list-style: none; }
img { border: 0; }
.roll { width: 880px; height: 108px; margin: 50px auto 0; position: relative; }
.btn_left { display: block; width: 68px; height: 68px; background: url(images/btn.jpg) no-repeat -70px -69px; position: absolute; top: 20px; left: 1px; z-index: 1; }
.btn_left:hover { background: url(images/btn.jpg) no-repeat -70px 0; }
.btn_right { display: block; width: 68px; height: 68px; background: url(images/btn.jpg) no-repeat 1px -69px; position: absolute; top: 20px; right: 0; z-index: 1; }
.btn_right:hover { background: url(images/btn.jpg) no-repeat 1px 0; }
.roll .wrap { width: 728px; height: 108px; margin: 0 auto; position: relative; overflow: hidden; }
.roll ul { position: absolute; top: 0; left: 0; }
.roll li { float: left; width: 182px; height: 108px; text-align: center; }
.roll li a:hover { position: relative; top: 2px; }
.control { border-bottom: 1px solid #ccc; background: #eee; text-align: center; padding: 20px 0; }


js代码

var g_bMoveLeft=true;
var g_oTimer=null;
var g_oTimerOut=null;
var g_bPause=true;
var g_iPauseTime=1000;
var g_iSpeed=2;
window.οnlοad=function ()
{
  var oDiv=document.getElementById('roll');
  var oUl=oDiv.getElementsByTagName('ul')[0];
  var aLi=oUl.getElementsByTagName('li');
  var aA=oDiv.getElementsByTagName('a');
  var oChk=document.getElementById('chk_pause');
  var oPauseTime=document.getElementById('pause_time');
  var oSpeed=document.getElementById('sel_speed');
  var i=0;
  var str=oUl.innerHTML+oUl.innerHTML;
  oUl.innerHTML=str;
  oUl.style.width=aLi[0].offsetWidth*aLi.length+'px';
  for(i=0;i<aLi.length;i++)
  {
    aLi[i].οnmοuseοver=function ()
    {
      stopMove();
    };
    aLi[i].οnmοuseοut=function ()
    {
      startMove(g_bMoveLeft);
    };
  }
  aA[0].οnmοuseοver=function ()
  {
    startMove(true);
  };
  aA[1].οnmοuseοver=function ()
  {
    startMove(false);
  };
  startMove(true);
  oChk.οnclick=function ()
  {
    g_bPause=oChk.getElementsByTagName('input')[0].checked;
  };
  oSpeed.οnchange=function ()
  {
    g_iSpeed=parseInt(this.value);
  };
  oPauseTime.οnchange=function ()
  {
    g_iPauseTime=parseInt(this.value);
  };
};
function startMove(bLeft)
{
  g_bMoveLeft=bLeft;
  if(g_oTimer)
  {
    clearInterval(g_oTimer);
  }
  g_oTimer=setInterval(doMove, 30);
}
function stopMove()
{
  clearInterval(g_oTimer);
  g_oTimer=null;
}
function doMove()
{
  var oDiv=document.getElementById('roll');
  var oUl=oDiv.getElementsByTagName('ul')[0];
  var aLi=oUl.getElementsByTagName('li');
  var l=oUl.offsetLeft;
  if(g_bMoveLeft)
  {
    l-=g_iSpeed;
    if(l<=-oUl.offsetWidth/2)
    {
      l+=oUl.offsetWidth/2;
    }
  }
  else
  {
    l+=g_iSpeed;
    if(l>=0)
    {
      l-=oUl.offsetWidth/2;
    }
  }
  if(g_bPause)
  {
    if(Math.abs(l-Math.round(l/aLi[0].offsetWidth)*aLi[0].offsetWidth)<Math.ceil(g_iSpeed/2))
    {
      stopMove();
      g_oTimerOut=setTimeout
      (
        function ()
        {
          startMove(g_bMoveLeft);
        }, g_iPauseTime
      );
      l=Math.round(l/aLi[0].offsetWidth)*aLi[0].offsetWidth;
    }
  }
  oUl.style.left=l+'px';
}



相关文章
|
存储 前端开发 异构计算
使用WebGL绘制热力图
使用WebGL绘制热力图
379 0
|
运维 Linux
Linux系统调优详解(二)——CPU负载查看相关命令
Linux系统调优详解(二)——CPU负载查看相关命令
264 10
|
存储 人工智能 算法
【冲击蓝桥篇】动态规划(上):真题实战+思路解析
【冲击蓝桥篇】动态规划(上):真题实战+思路解析
|
存储 人工智能 C语言
C语言程序设计核心详解 第六章 数组_一维数组_二维数组_字符数组详解
本章介绍了C语言中的数组概念及应用。数组是一种存储同一类型数据的线性结构,通过下标访问元素。一维数组定义需指定长度,如`int a[10]`,并遵循命名规则。数组元素初始化可使用 `{}`,多余初值补0,少则随机。二维数组扩展了维度,定义形式为`int a[3][4]`,按行优先顺序存储。字符数组用于存储字符串,初始化时需添加结束符`\0`。此外,介绍了字符串处理函数,如`strcat()`、`strcpy()`、`strcmp()` 和 `strlen()`,用于拼接、复制、比较和计算字符串长度。
425 4
|
资源调度 Ubuntu 前端开发
使用verdaccio+docker搭建 npm 私有仓库以及使用
公司内部前端组件或库的共享等,搭建一个`npm`私有库就很方便,现在中大型公司也基本都有自己的`npm`私有库,这篇文章,和大家一起共同搭建一个`npm`私有库,共同学习
910 0
|
前端开发 数据可视化
漏刻有时数据可视化Echarts组件开发(1):报警状态组件CSS代码及封装函数
漏刻有时数据可视化Echarts组件开发(1):报警状态组件CSS代码及封装函数
185 0
|
存储 缓存 安全
并发编程原理扫盲笔记
垃圾回收,顾名思义,便是将已经分配出去的,但却不再使用的内存回收回来,以便能够再次分配。在 Java 虚拟机的语境下,垃圾指的是死亡的对象所占据的堆空间。
192 0
java202303java学习笔记第四十天综合练习(多线程版的服务器)
java202303java学习笔记第四十天综合练习(多线程版的服务器)
163 0
|
Linux 区块链
[转载]Hyperledger超级账本推出认证服务供应商计划,以提高企業区块链部署速度和效率
Hyperledger超级账本推出认证服务供应商计划,以提高企業区块链部署速度和效率 。首批超级账本认证服务供应商包括埃森哲,蚂蚁金服,北京众享比特 ,Chainyard和IBM。
1989 0
|
前端开发 C# 容器
WPF应用程序顶级标签一定是Window吗?
原文:WPF应用程序顶级标签一定是Window吗? WPF应用程序顶级标签一定是Window吗? 很多人误以为是。可是,答案却是否定的。
851 0