无缝滚动图片——源码

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

图片已上传,请到我的资源部去下载,不用积分,——无缝滚动图片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';
}


相关文章
|
Docker 容器
OnlyOffice社区版破解最大连接限制部署
OnlyOffice社区版破解最大连接限制部署
|
监控 测试技术 程序员
解决线程死循环问题的有效方法
作为开发者想必都清楚,多线程应用程序的开发为我们日常开发工作中提供了并发执行任务的能力,但线程死循环问题却是一个常见而令人头疼的挑战,因为线程死循环可能导致系统的不稳定性、资源浪费以及应用程序的异常运行,所以准确地定位和妥善处理线程死循环现象,并在编码阶段就避免潜在风险,成为开发人员必须面对的重要问题,线程死循环问题的解决不仅有助于提高系统的稳定性和可用性,还能优化资源利用和提升应用程序的性能,通过采取适当的预防和处理措施,开发人员能够避免线程陷入无尽的循环,并及时发现和解决潜在问题。那么本文就来分享一下关于如何处理线程死循环问题,以及如何在编码阶段规避潜在风险。
501 2
解决线程死循环问题的有效方法
|
存储 数据安全/隐私保护
STM32实战项目—密码锁
本文完整详细地介绍了一个密码锁项目的要求,设计思路,程序实现,问题总结和成果展示内容。
604 2
STM32实战项目—密码锁
|
8月前
|
JavaScript 编译器 开发工具
【02】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-项目开发实战-准备工具安装-编译器DevEco Studio安装-arkts编程语言认识-编译器devco-鸿蒙SDK安装-模拟器环境调试-hyper虚拟化开启-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
【02】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-项目开发实战-准备工具安装-编译器DevEco Studio安装-arkts编程语言认识-编译器devco-鸿蒙SDK安装-模拟器环境调试-hyper虚拟化开启-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
405 2
【02】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-项目开发实战-准备工具安装-编译器DevEco Studio安装-arkts编程语言认识-编译器devco-鸿蒙SDK安装-模拟器环境调试-hyper虚拟化开启-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
|
8月前
|
人工智能 开发框架 数据可视化
Eino:字节跳动开源基于Golang的AI应用开发框架,组件化设计助力构建AI应用
Eino 是字节跳动开源的大模型应用开发框架,帮助开发者高效构建基于大模型的 AI 应用。支持组件化设计、流式处理和可视化开发工具。
1284 27
|
10月前
|
机器学习/深度学习 人工智能 Linux
Fish Speech 1.5:Fish Audio 推出的零样本语音合成模型,支持13种语言
Fish Speech 1.5 是由 Fish Audio 推出的先进文本到语音(TTS)模型,支持13种语言,具备零样本和少样本语音合成能力,语音克隆延迟时间不到150毫秒。该模型基于深度学习技术如Transformer、VITS、VQVAE和GPT,具有高度准确性和快速合成能力,适用于多种应用场景。
971 3
Fish Speech 1.5:Fish Audio 推出的零样本语音合成模型,支持13种语言
|
10月前
|
安全 Docker 容器
docker的默认网络模式有哪些
Docker 默认网络模式包括:1) bridge:默认模式,各容器分配独立IP,可通过名称或IP通信;2) host:容器与宿主机共享网络命名空间,性能最优但有安全风险;3) none:容器隔离无网络配置,适用于仅需本地通信的场景。
447 6
|
机器学习/深度学习 人工智能 自然语言处理
【AI大模型应用开发】3.2 RAG实战 - RAG应用+UI实现加载本地文件并对话
【AI大模型应用开发】3.2 RAG实战 - RAG应用+UI实现加载本地文件并对话
479 0
|
存储 Rust 测试技术
用Python绑定调用C/C++/Rust库
Python绑定可以让Python程序调用C/C++/Rust编译的库函数,从而让我们在不重复造轮子的前提下,兼具Python和C/C++二者的优点。
547 0
用Python绑定调用C/C++/Rust库