`
coder_hero
  • 浏览: 11117 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
社区版块
存档分类
最新评论

兼容IE,Firefox 遵循W3C标准写法的图片无缝滚动代码(支持左移/右移功能)(本示例为上下两行图片进行双行滚动)

阅读更多
<script type="text/javascript">
  /*
  **兼容IE,Firefox 遵循W3C标准写法的图片无缝滚动代码(支持左移/右移功能)(本示例为上下两行图片进行双行滚动)
  **
  **实现思路:一个设定宽度并且隐藏超出它宽度的内容的容器demo,里面放demo1和demo2,demo1是滚动内容,demo2为demo1的直接克隆,
  **通过不断改变demo1的scrollTop或者scrollLeft达到滚动的目的,当滚动至demo1与demo2的交界处时直接跳回初始位置,
  **因为demo1与demo2一样,所以分不出跳动的瞬间,从而达到“无缝”滚动的目的。
  */
  var speed1=0 //图片左移的速度
  var MyMar1 //setInterverval方法返回的间隔ID,些ID为全局的调用次数(用于第一行图片)
  var MyMar2 //setInterverval方法返回的间隔ID,些ID为全局的调用次数(用于第二行图片)
  var lefthit=0  //记录左移按钮点击次数
  var righthit=0 ////记录右移按钮点击次数 
  //调用右移方法前,先让左移停止(clearInterval清除setInterval对方法的调用)
  function clearleft(){
   clearInterval(MyMar1)
   clearInterval(MyMar2)
  }
  //图片左移的方法
  function toleft(){
     //判断是否是第一次按下左移按钮(图片往左开始移动的时候,不会在调用此方法。只有当按了右移按钮时,才会把lefthit重设为0)
   if(lefthit==0){
    speed1=30;//图片左移速度时间毫秒
    //让的内容demo2与demo1内容一样
    document.getElementById("demo2").innerHTML=document.getElementById("demo1").innerHTML
    //上行图片移动的方法
    function Marquee1(){
       //当demo滚动至demo2的交界处。与就是与demo2重合时。offsetWidth与scrollLeft刚好相等
     if(document.getElementById("demo2").offsetWidth-document.getElementById("demo").scrollLeft<=0){
      //demo跳回初始位置
      document.getElementById("demo").scrollLeft-=document.getElementById("demo1").offsetWidth
     }
     else{
      //demo开始重新移动
      document.getElementById("demo").scrollLeft++
     }
    }
    //setInterval让Marquee1方法每隔多少秒执行一次,并把返回的调用次数ID
    MyMar1=setInterval(Marquee1,speed1)
    //当鼠标移动demo上面时。调用clearInterval清除MyMar1.这样图片便不会在移动了。移到图片时,第一行和第二行的图片都会停止
    document.getElementById("demo").onmouseover=function()
    {clearInterval(MyMar1);clearInterval(MyMar2)}
    //当鼠标移除demo时,重新setInterval让方法执行,这样图片会继续移动
    document.getElementById("demo").onmouseout=function()
    {MyMar1=setInterval(Marquee1,speed1);clearInterval(MyMar2);MyMar2=setInterval(Marquee2,speed1)}
      //下面的方法与上面的方法一样,用于第二行的图片向左移动
      document.getElementById("demo_c").innerHTML=document.getElementById("demo_b").innerHTML
    function Marquee2(){
     if(document.getElementById("demo_c").offsetWidth-document.getElementById("demo_a").scrollLeft<=0){
      document.getElementById("demo_a").scrollLeft-=document.getElementById("demo_b").offsetWidth}
     else{
      document.getElementById("demo_a").scrollLeft++
     }
    }
    MyMar2=setInterval(Marquee2,speed1)
    document.getElementById("demo_a").onmouseover=function()
    {clearInterval(MyMar2);clearInterval(MyMar1)}
    document.getElementById("demo_a").onmouseout=function()
    {MyMar2=setInterval(Marquee2,speed1); document.getElementById("demo").onmouseout()}
    lefthit=1  //设置左移按钮,当按了一次左移后(不管按多少次),在没按右移按钮之前,toleft方法里的的代码不会再被执行
    righthit=0 //把右移按钮设为0,这样当下次点了右移按钮的时候,以便toright方法被调用
   }
  }
 
 
  var MyMar3 //setInterverval方法返回的间隔ID,些ID为全局的调用次数(用于第一行图片)
  var MyMar4 //setInterverval方法返回的间隔ID,些ID为全局的调用次数(用于第二行图片)
  var speed2=0 //图片右移的速度
  //调用移左方法前,先让右移停止(clearInterval清除setInterval对方法的调用)
  function clearright(){
   clearInterval(MyMar3)
   clearInterval(MyMar4)
  }
 
 
  //图片右移方法(与图片左移方法思路一样)
  function toright(){
      //判断是否是第一次按下右移按钮(图片往右开始移动的时候,不会在调用此方法。只有当按了左移按钮时,才会把righthit重设为0)
   if(righthit==0){
    speed2=30;
    document.getElementById("demo2").innerHTML=document.getElementById("demo1").innerHTML
    function Marquee_a(){
     if(document.getElementById("demo").scrollLeft<=0){
      document.getElementById("demo").scrollLeft=document.getElementById("demo2").offsetWidth
     }
     else{
      document.getElementById("demo").scrollLeft--
     }
    }
    MyMar3=setInterval(Marquee_a,speed2)
    document.getElementById("demo").onmouseover=function()
    {clearInterval(MyMar3);document.getElementById("demo_a").onmouseover()}
    document.getElementById("demo").onmouseout=function()
    {MyMar3=setInterval(Marquee_a,speed2);clearInterval(MyMar4);MyMar4=setInterval(Marquee_b,speed2)}
  
   
    document.getElementById("demo_c").innerHTML=document.getElementById("demo_b").innerHTML
    function Marquee_b(){
     if(document.getElementById("demo_a").scrollLeft<=0){
      document.getElementById("demo_a").scrollLeft=document.getElementById("demo_c").offsetWidth
     }
     else{
      document.getElementById("demo_a").scrollLeft--
     }
    }
    MyMar4=setInterval(Marquee_b,speed2)
    document.getElementById("demo_a").onmouseover=function()
    {clearInterval(MyMar4);clearInterval(MyMar3)}
    document.getElementById("demo_a").onmouseout=function()
    {MyMar4=setInterval(Marquee_b,speed2);document.getElementById("demo").onmouseout()}
    righthit=1 //设置右移按钮,当按了一次右移按钮后(不管按多少次),在没按左移按钮之前,toright方法里的的代码不会再被执行
    lefthit=0 //把左移按钮设为0,这样当下次点了左移按钮的时候,以便toleft方法被调用
   }
  }
</script> 
  • 描述: 移动效果示图
  • 大小: 32.8 KB
  • demo.rar (764.6 KB)
  • 描述: 演示Demo
  • 下载次数: 1389
分享到:
评论
2 楼 coder_hero 2007-09-13  
谢谢fins的指教,你说的很对,还有好多地方是要改正的。
1 楼 fins 2007-09-12  
实现的功能不错
但是离为w3c标准差很多啊 呵呵
没有head 没有body 没有必要的meta
使用&nbsp; ....
很多问题的 其实

不过 没有head 没有body script乱放 这事最不能容忍了.
为了验证是否符合 你可以去 http://validator.w3.org
或者弄个软件

相关推荐

    兼容IE与火狐的js图片无缝滚动代码.zip

    标题中的“兼容IE与火狐的js图片无缝滚动代码”是指一种JavaScript编程技术,用于创建在不同浏览器(尤其是Internet Explorer和Firefox)上都能正常工作的图片滚动效果。这种效果通常是通过让图片在用户看不到的地方...

    JS图片左右无缝隙滚动的实现(兼容IE,Firefox 遵循W3C标准)

    本示例提供了一种兼容IE和Firefox浏览器,并遵循W3C标准的方法来实现这一功能,同时也支持左移和右移的操作。 首先,我们来看实现这种效果的基本思路: 1. 创建一个固定宽度且设置`overflow: hidden`的容器`demo`...

    向上下左右不间断无缝滚动图片的效果(兼容火狐和IE)

    本文将详细探讨如何实现一个“向上下左右不间断无缝滚动图片的效果”,并确保该效果在火狐(Firefox)和IE(Internet Explorer)浏览器上兼容。 首先,我们需要了解无缝滚动的核心原理。这种效果通常通过JavaScript...

    图片左右无缝滚动JS代码

    【描述】中提到,这个JS代码是开发者结合网络上的资源自行编写的,兼容了IE7、IE8以及Firefox和Chrome等现代浏览器。这意味着它不仅考虑到了老版本的Internet Explorer浏览器,还确保在主流的现代浏览器中运行良好,...

    IE6、IE7、Firefox之间的兼容写法

    ### IE6、IE7、Firefox之间的兼容写法详解 #### 一、引言 随着Web技术的不断发展,浏览器兼容性问题一直是前端开发人员面临的重要挑战之一。尤其在早期的Web开发过程中,不同版本的Internet Explorer(简称IE)...

    符合标准的间隙间歇滚动代码(兼容IE和FireFox

    符合标准的间隙间歇滚动代码(兼容IE和FireFox).htm 符合标准的间隙间歇滚动代码(兼容IE和FireFox).htm

    IE6、IE7、IE8、Firefox兼容性CSS HACK代码+示例

    尤其是在处理旧版Internet Explorer(如IE6、IE7、IE8)与现代浏览器(如Firefox、Chrome等)之间的样式差异时,CSS Hack技巧成为了必不可少的工具。本文将深入探讨不同浏览器兼容性的CSS Hack代码及其实例,帮助...

    兼容IE6,IE7,IE8和Firefox的图片上传预览效果

    由于早期的Internet Explorer(IE6, IE7, IE8)对现代Web标准的支持不足,而Firefox则采用了不同的实现方式,因此创建一个在这些浏览器上都能正常工作的图片上传预览功能并非易事。 图片上传预览功能是让用户在上传...

    30多种上下左右滚动代码兼容各种浏览器

    本文将详细讲解30多种上下左右滚动代码,这些代码经过优化,能够兼容各种主流浏览器,包括IE、Firefox、Chrome、Safari和Opera等。 一、连续滚动 连续滚动是最基础的滚动效果,它可以让文字或图片持续不断地从一侧...

    不间断无缝滚动图片

    在实际开发中,我们还需要考虑不同浏览器的兼容性问题,确保代码能在主流浏览器如Chrome、Firefox、Safari、Edge和旧版IE上正常运行。可以借助一些成熟的库,如jQuery或Modernizr,来处理兼容性问题。 最后,考虑到...

    兼容firefox火狐、IE6IE7IE8加入收藏,设为首页代码

    针对不同的浏览器,特别是老版本的浏览器如Firefox火狐和Internet Explorer (IE6、IE7、IE8),需要编写特定的代码来实现特定的功能,例如“加入收藏”和“设为首页”。下面将详细解释如何实现这些功能。 首先,我们...

    PNG图片透明兼容IE6和火狐示例

    PNG图片透明兼容性问题在早期的网页设计中是一个常见的挑战,特别是对于Internet Explorer 6 (IE6) 和Firefox等浏览器。PNG(Portable Network Graphics)格式支持24位颜色以及一个额外的透明通道,使得图像可以实现...

    网页漂浮代码,兼容IE ,firefox

    例如,IE浏览器对某些CSS3属性支持不全,而Firefox则更倾向于遵循W3C标准。为了解决这个问题,开发者会采用条件注释、特性检测或使用如jQuery这样的库来编写兼容性良好的代码。 在"漂浮代码.htm"文件中,我们可以...

    图片浏览直接显示[兼容IE,FireFox]

    "图片浏览直接显示[兼容IE, FireFox]"这个标题暗示了我们要讨论的是如何在两种主流浏览器——Internet Explorer(IE)和Firefox中实现图片的无缝浏览体验。尽管IE浏览器已经不再更新,但在某些环境下仍被使用,因此...

    js实现图片滚动(ie火狐下都兼容)

    "js实现图片滚动(ie火狐下都兼容)"这个标题表明我们要探讨的是一个使用JavaScript编写的图片滚动脚本,该脚本能够在Internet Explorer和Firefox这两个主要的浏览器上正常工作,实现了跨浏览器兼容性。 首先,我们...

    JavaScript在IE和Firefox(火狐)的不兼容问题解决

    这表明文章旨在探讨并提供解决方案来处理在不同浏览器环境下的JavaScript兼容性问题,尤其是在Internet Explorer(IE)和Mozilla Firefox(火狐)这两个浏览器上。下面将深入解析文件中的部分代码示例,以及给出的一...

    左右无缝滚动图片

    【描述】"无缝滚动 jquery 左右滚动 滚动图片 兼容所有主浏览器 请放心使用"表明这个技术是基于jQuery库实现的,并且支持主流的浏览器,包括Chrome、Firefox、Safari、Edge和Internet Explorer等。这意味着开发者...

    兼容IE、FireFox、Safari多浏览器的图片不间断滚动

    在本文中,我们将深入探讨如何针对IE8、Firefox、Safari等多浏览器环境创建一个无缝、流畅的图片滚动效果。 首先,我们需要理解不同浏览器对JavaScript和CSS的支持程度。IE8相对较老,不支持某些现代的JavaScript ...

Global site tag (gtag.js) - Google Analytics