Javascript实现图片不间断滚动的代码


Posted in Javascript onJune 22, 2016

蛮优秀的一段效果代码,可以上下左右滚动,收藏了!!

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"/>
<title>滚动测试</title>
<script type="text/javascript">
/**
    * @para obj 目标对象 如:demo,deml1,demo2 中的"demo" 可任意,只要不重复
    *
    * @para speed 滚动速度 越大越慢
    *
    * @para direction 滚动方向 包括:left,right,down,up
    *
    * @para objWidth 总可见区域宽度
    *
    * @para objHeight 总可见区域高度
    * 
    * @para filePath 存放滚动图片的路径 (如果是自动获取文件夹里的图片滚动)
    *
    * @para contentById 对某id为contentById下的内容进行滚动 此滚动与filePath不能共存请注意
    *
    * @para 用法实例 scrollObject("res",50,"up",470,200,"","resource") 对contentById(resource)下内容进行滚动
    *
    * @para 用法实例 scrollObject("res",50,"up",470,200,"d:\\images\\","") 对filePath(images)下内容自动获取并进行滚动,目前只支持ie
    */
    

    var $ =function(id){return document.getElementById(id)}
    // 滚动
function scrollObject(obj,speed,direction,objWidth,objHeight,filePath,contentById)
     
     {
        // 执行初始化
if(direction=="up"||direction=="down")
             document.write(UDStructure());
         else
             document.write(LRStructure());
            
         var demo = $(obj);
         var demo1 = $(obj+"1");
         var demo2 = $(obj+"2");
         var speed=speed;
         
         $(contentById).style.display="none"
         
         demo.style.overflow="hidden";
         demo.style.width = objWidth+"px";
         demo.style.height = objHeight+"px";
         demo.style.margin ="0 auto";
         
         if(filePath!="")
            demo1.innerHTML=file();
         
         if(contentById!="")
            demo1.innerHTML=$(contentById).innerHTML;
         
         demo2.innerHTML=demo1.innerHTML;
         

         // 左右滚动
function LRStructure()
         {
             var _html ="";
              _html+="<div id='"+obj+"' >";
              _html+="<table border='0' align='left' cellpadding='0' cellspacing='0' cellspace='0'>";
              _html+="<tr>";
              _html+="<td nowrap='nowrap' id='"+obj+"1' >";
                    // 此处是放要滚动的内容
              _html+="</td>";
              _html+="<td nowrap='nowrap' id='"+obj+"2' ></td>";
              _html+="</tr>";
              _html+="</table>";
              _html+="</div>";
            
            return _html;
         }
         
         
         // 上下滚动的结构
function UDStructure()
         {
             var _html ="";
              _html+="<div id="+obj+" >";
              _html+="<table border='0' align='left' cellpadding='0' cellspacing='0' cellspace='0'>";
              _html+="<tr>";
              _html+="<td id='"+obj+"1' >";
                  // 此处是放要滚动的内容
              _html+="</td>";
              _html+="</tr>";
              _html+="<tr>";
              _html+="<td id='"+obj+"2' ></td>";
              _html+="</tr>";
              _html+="</table>";
              _html+="</div>";
            return _html;
         }
         
         
         // 取得文件夹下的图片
function file()
         {
            var tbsource = filePath;//本地文件夹路径
            filePath = filePath.toString();
            
            if (filePath=="")
              return"";
  
            var imgList ="";
            var objFSO =new ActiveXObject('Scripting.FileSystemObject');
  
            // 文件夹是否存在
if(!objFSO.FolderExists(tbsource))
            {
                alert("<"+tbsource+">该文件夹路径不存在,或者路径不能含文件名!");
                objFSO =null;
                return;
            }
  
            var objFolder = objFSO.GetFolder(tbsource);
            var colFiles =new Enumerator(objFolder.Files);
            var re_inf1 =/\.jpg$/;  //验证文件夹文件是否jpg文件
  
             for (;!colFiles.atEnd();colFiles.moveNext()) //读取文件夹下文件
             {
                var objFile = colFiles.item();
              
                if(re_inf1.test(objFile.Name.toLowerCase()))
                {
                  imgList +="<img src="+filePath+"/"+objFile.Name+">";
                }
             }
            
            return imgList;
         }
         
         // 向左滚
function left()
         {
           if(demo2.offsetWidth-demo.scrollLeft<=0)
           {
             demo.scrollLeft-=demo1.offsetWidth;
           }
           else
           {
             demo.scrollLeft++;
           }
         }
         
         
         // 向右滚
function right()
         {
            if(demo.scrollLeft<=0)
            {
              demo.scrollLeft+=demo2.offsetWidth;
            }
            else
            {
              demo.scrollLeft--
            }
         }
         
         
         // 向下滚
function down()
         {
            if(demo1.offsetTop-demo.scrollTop>=0)
            {
              demo.scrollTop+=demo2.offsetHeight;
            }
            else
            {
              demo.scrollTop--
            }
         }
         
         // 向上滚
function up()
         {
            if(demo2.offsetTop-demo.scrollTop<=0)
            {
              demo.scrollTop-=demo1.offsetHeight;
            }
            else
            {
              demo.scrollTop++
            }
         }

         // 切换方向
function swichDirection()
         {
            switch(direction)
            {
              case"left":
                return left();
                break;
              
              case"right":
                return right();
                break;
              
              case"up":
                return up();
                break;
              
              default:
                return down();
            }
         } 

         // 重复执行
var myMarquee=setInterval(swichDirection,speed);
         
         // 鼠标悬停
         demo.onmouseover=function() {clearInterval(myMarquee);}
         
         // 重新开始滚动
         demo.onmouseout=function() { myMarquee=setInterval(swichDirection,speed);}
    }
</script>

</head>

<body>
<div id="img">
 <table width="1000" border="0" align="center" cellpadding="5" cellspacing="0">
  <tr>
   <td width="200"><img src="http://attach.e.iciba.com/attachment/200910/22/4188617_12561994098532.jpg" alt="" width="200" height="150"/></td>
   <td width="200"><img src="http://pica.nipic.com/2008-05-27/2008527145211519_2.jpg" alt="" width="200" height="150"/></td>
   <td width="200"><img src="http://pic4.nipic.com/20090823/383152_215728074589_2.jpg" alt="" width="200" height="150"/></td>
   <td width="200"><img src="http://pic8.nipic.com/20100628/4643449_170245009531_2.jpg" alt="" width="200" height="150"/></td>
   <td width="200"><img src="http://pica.nipic.com/2008-05-30/20085309524648_2.jpg" alt="" width="200" height="150"/></td>
  </tr>
 </table>
</div>
<script type="text/javascript">
scrollObject("sr",50,"right",800,160,"","img")
</script>

</body>
</html>

以上就是本文的全部内容,了解更多JavaScript的语法,大家可以查看:《JavaScript 参考教程》、《JavaScript代码风格指南》,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
iframe 自适应高度[在IE6 IE7 FF下测试通过]
Apr 13 Javascript
多个js与css文件的合并方法详细说明
Dec 26 Javascript
深入理解JQuery keyUp和keyDown的区别
Dec 12 Javascript
JavaScript 作用域链解析
Nov 13 Javascript
javascript实现淡蓝色的鼠标拖动选择框实例
May 09 Javascript
Jquery UI实现一次拖拽多个选中的元素操作
Dec 01 Javascript
jquery平滑滚动到顶部插件使用详解
May 08 jQuery
MUI实现上拉加载和下拉刷新效果
Jun 30 Javascript
vue中的非父子间的通讯问题简单的实例代码
Jul 19 Javascript
es6数据变更同步到视图层的方法
Mar 04 Javascript
js实现随机div颜色位置 类似满天星效果
Oct 24 Javascript
分享JS表单验证源码(带错误提示及密码等级)
Jan 05 Javascript
Javascript将双字节字符转换成单字节字符并计算长度
Jun 22 #Javascript
jQuery实现指定区域外单击关闭指定层的方法【经典】
Jun 22 #Javascript
Javascript 5种方法实现过滤删除前后所有空格
Jun 22 #Javascript
Json解析的方法小结
Jun 22 #Javascript
JS实现刷新父页面不弹出提示框的方法
Jun 22 #Javascript
JS实现关闭当前页而不弹出提示框的方法
Jun 22 #Javascript
JS随机打乱数组的方法小结
Jun 22 #Javascript
You might like
php中转义mysql语句的实现代码
2011/06/24 PHP
php不允许用户提交空表单(php空值判断)
2013/11/12 PHP
Laravel最佳分割路由文件(routes.php)的方式
2016/08/04 PHP
PHP生成腾讯云COS接口需要的请求签名
2018/05/20 PHP
JS的反射问题
2010/04/07 Javascript
jquery对表单操作2
2011/04/06 Javascript
jQuery中:image选择器用法实例
2015/01/03 Javascript
JavaScript中var关键字的使用详解
2015/08/14 Javascript
详解JavaScript异步编程中jQuery的promise对象的作用
2016/05/03 Javascript
浅析Javascript ES6中的原生Promise
2016/08/25 Javascript
详解JavaScript权威指南之对象
2016/09/27 Javascript
Vue单文件组件基础模板小结
2017/08/10 Javascript
AngularJs点击状态值改变背景色的实例
2017/12/18 Javascript
vue实现简单的MVVM框架
2018/08/05 Javascript
Vue.js子组件向父组件通信的方法实例代码详解
2018/12/10 Javascript
详解滑动穿透(锁body)终极探索
2019/04/16 Javascript
node将geojson转shp返回给前端的实现方法
2019/05/29 Javascript
javascript实现的字符串转换成数组操作示例
2019/06/13 Javascript
解析原来浏览器原生支持JS Base64编码解码
2019/08/12 Javascript
python获取当前时间对应unix时间戳的方法
2015/05/15 Python
从零开始学Python第八周:详解网络编程基础(socket)
2016/12/14 Python
解决python明明pip安装成功却找不到包的问题
2019/08/28 Python
详解Python绘图Turtle库
2019/10/12 Python
python tkinter控件布局项目实例
2019/11/04 Python
Python数据相关系数矩阵和热力图轻松实现教程
2020/06/16 Python
Python切片列表字符串如何实现切换
2020/08/06 Python
有影响力的人、名人和艺术家的官方商品:Represent
2019/11/26 全球购物
大专生工程监理求职信
2013/10/04 职场文书
优秀班主任事迹材料
2014/12/16 职场文书
党员个人年度总结
2015/02/14 职场文书
小鞋子观后感
2015/06/05 职场文书
工程进度款催款函
2015/06/24 职场文书
2016秋季运动会前导词
2015/11/25 职场文书
Vue3中的Refs和Ref详情
2021/11/11 Vue.js
Win11电脑显示本地时间与服务器时间不一致怎么解决?
2022/04/05 数码科技
Python中Schedule模块使用详解 周期任务神器
2022/04/19 Python