JS图片无缝滚动(简单利于使用)


Posted in Javascript onJune 17, 2013

原样复制后,几乎不需要改动就能用了!有问题大家讨论

 <!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>滚动代码</title>
<style>
*{ margin:0; padding:0;}
ul,li{ list-style:none;}
.left_1{ width:500px; height:100px; margin:0 auto;}
.left_1 ul{}
.left_1 li{ float:left; width:120px; height:100px; line-height:100px; text-align:center;}
.left_1 p{ width:50px; he
 100px; line-height:100px;}
.left_1_i div{ width:100px; height:100px; line-height:100px; border:1px solid #e5e5e5; margin-left:10px; padding-left:10px;}
</style>
<script language="javascript">
function scrollSZ(con_id,speed,direct){
 var con,items,heightHalf,heightAll;
 var timer;
 speed = parseInt(speed);//获取设置的速度参数
 con = document.getElementById(con_id);
 con.style.overflow = "hidden";
 if(direct == "top"){
  direct = "top";
 }else if(direct == "bottom"){
  direct = "bottom";
 }else{
  direct = "top";
 } con.innerHTML +=con.innerHTML;
 con.innerHTML +=con.innerHTML;
 items = getChildNodes(con);
 if(items.length < 1){
  return;
 }
 heightAll = 0;
 for(var i=0;i<items.length;i++){
  var numTop,numBottom;
  if (!!window.ActiveXObject){
   numTop = items[i].currentStyle["marginTop"];
   numBottom = items[i].currentStyle["marginBottom"];
  }else{
   numTop = document.defaultView.getComputedStyle(items[i],null)["marginTop"];
   numBottom = document.defaultView.getComputedStyle(items[i],null)["marginBottom"];
  }
  numTop = parseInt(numTop);
  numBottom = parseInt(numBottom);
  numTop += numBottom;
  if(numTop >0){
   heightAll += numTop;
  }
  heightAll += items[i].offsetHeight;
 }
 heightHalf = heightAll/2;
 if(direct == "bottom"){
  con.scrollTop = heightHalf;
  timer = setInterval(_scrollBottom,speed); 
 }else if(direct == "top"){
  timer = setInterval(_scrollTop,speed);
 }
 con.onmouseover = function(){
  if(timer){
   clearInterval(timer);
   timer = null;
  }
 };
 con.onmouseout = function(){
  if(!timer){
   if(direct == "top"){
    timer = setInterval(_scrollTop,speed);
   }else if(direct == "bottom"){
    timer = setInterval(_scrollBottom,speed);
   }
  }
 };
 function _scrollTop(){
  if(con.scrollTop < heightHalf){
   con.scrollTop += 2;
  }else{
   con.scrollTop = 0;
  }
 }
 function _scrollBottom(){
  if(con.scrollTop > 0){
   con.scrollTop -= 2;
  }else{
   con.scrollTop = heightHalf;
  }
 }
}
function scrollSP(con_id,speed,direct){
 var con,innerCon,timer,items,widthAll,widthHalf;
 speed = parseInt(speed);
 con = document.getElementById(con_id);
 con.style.overflow = "hidden";
 items = getChildNodes(con);
 if(items.length == 1){
  innerCon = items[0];
 }else{
  return;
 }
 innerCon.innerHTML += innerCon.innerHTML;
 innerCon.innerHTML += innerCon.innerHTML;
 items = getChildNodes(innerCon);
 if(items.length<1){
  return;
 }
 widthAll = 0;
 for(var i=0;i<items.length;i++){
 }
 for(var i=0;i<items.length;i++){
  var numLeft,numRight;
  if (!!window.ActiveXObject){
   items[i].style.styleFloat = "left";
   numLeft = items[i].currentStyle["marginLeft"];
   numRight = items[i].currentStyle["marginRight"];
  }else{
   items[i].style.cssFloat = "left";
   numLeft = document.defaultView.getComputedStyle(items[i],null)["marginLeft"];
   numRight = document.defaultView.getComputedStyle(items[i],null)["marginRight"];
  }
  numLeft = parseInt(numLeft);
  numRight = parseInt(numRight);
  numLeft += numRight;
  if(numLeft>0){
   widthAll += numLeft;
  }
  widthAll += items[i].offsetWidth;
 }
 widthHalf = widthAll/2;
 innerCon.style.width = widthAll+"px";
 if(direct == "left"){
  direct = "left";
 }else if(direct == "right"){
  direct = "right";
 }else{
  direct = "left"
 }
 if(direct == "left"){
  timer = setInterval(_scrollLeft,speed);
 }else if(direct == "right"){
  con.scrollLeft = widthHalf;
  timer = setInterval(_scrollRight,speed);
 }
 con.onmouseover = function(){
  if(timer){
   clearInterval(timer);
   timer = null;
  }
 }
 con.onmouseout = function(){
  if(direct == "left"){
   timer = setInterval(_scrollLeft,speed);
  }else{
   timer = setInterval(_scrollRight,speed);
  }
 }
 function _scrollLeft(){
  if(con.scrollLeft<widthHalf){
   con.scrollLeft += 2;
  }else{
   con.scrollLeft = 0;
  }
 }
 function _scrollRight(){
  if(con.scrollLeft>0){
   con.scrollLeft -= 2;
  }else{
   con.scrollLeft = widthHalf;
  }
 }
}
function getChildNodes(obj){//获取元素子节点
 var childList,list;
 childList = new Array();
 list = obj.childNodes;
 for(var i=0;i<list.length;i++){
  if(list[i].nodeType == 1)
  childList[childList.length] = list[i];
 }
 return childList;
}
</script>
</head>
<body>


<div id="left_1" class="left_1">
 <div class="left_1_i">
  <p>1</p>
     <p>2</p>
     <p>3</p>
     <p>4</p>
     <div>b</div>
     <div>a</div>
 </div>
</div>
<script language="javascript">scrollSP("left_1",10,"right");</script>
</body>
</html>
 
Javascript 相关文章推荐
js 上下左右键控制焦点(示例代码)
Dec 14 Javascript
js跨域问题浅析及解决方法优缺点对比
Nov 08 Javascript
AngularJs根据访问的页面动态加载Controller的解决方案
Feb 04 Javascript
jquery地址栏链接与a标签链接匹配之特效代码总结
Aug 24 Javascript
js实现横向伸展开的二级导航菜单代码
Aug 28 Javascript
jquery的ajax提交form表单的两种方法小结(推荐)
May 25 Javascript
js按条件生成随机json:randomjson实现方法
Apr 07 Javascript
layui 解决富文本框form表单提交为空的问题
Oct 26 Javascript
javascript实现图片轮换动作方法
Aug 07 Javascript
vue 导航锚点_点击平滑滚动,导航栏对应变化详解
Aug 10 Javascript
VUE 实现element upload上传图片到阿里云
Aug 12 Javascript
前端实现滑动按钮AJAX与后端交互的示例代码
Feb 24 Javascript
js二级地域选择的实现方法
Jun 17 #Javascript
Jquery和JS用外部变量获取Ajax返回的参数值的方法实例(超简单)
Jun 17 #Javascript
JS控制文本框textarea输入字数限制的方法
Jun 17 #Javascript
一个简单的JS鼠标悬停特效具体方法
Jun 17 #Javascript
js特效,页面下雪的小例子
Jun 17 #Javascript
js弹出窗口之弹出层的小例子
Jun 17 #Javascript
js弹出层包含flash 不能关闭隐藏的2种处理方法
Jun 17 #Javascript
You might like
php7 图形用户界面GUI 开发示例
2020/02/22 PHP
iPhone手机上搭建nodejs服务器步骤方法
2015/07/06 NodeJs
全面解析Bootstrap中transition、affix的使用方法
2016/05/30 Javascript
EasyUI Pagination 分页的两种做法小结
2016/07/09 Javascript
javascript深拷贝(deepClone)详解
2016/08/24 Javascript
bootstrap datepicker限定可选时间范围实现方法
2016/09/28 Javascript
JS小数转换为整数的方法分析
2017/01/07 Javascript
Bootstrap 手风琴菜单的实现代码
2017/01/20 Javascript
利用 spin.js 生成等待效果(js 等待效果)
2017/06/25 Javascript
详解vue 实例方法和数据
2017/10/23 Javascript
nodejs搭建本地服务器轻松解决跨域问题
2018/03/21 NodeJs
vue项目中使用vue-layer弹框插件的方法
2020/03/11 Javascript
webpack+express实现文件精确缓存的示例代码
2020/06/11 Javascript
[08:17]Ti9 现场cosplay
2019/09/10 DOTA
Python闭包之返回函数的函数用法示例
2018/01/27 Python
解决Python 命令行执行脚本时,提示导入的包找不到的问题
2019/01/19 Python
Python Matplotlib实现三维数据的散点图绘制
2019/03/19 Python
Python PyCharm如何进行断点调试
2019/07/05 Python
Python文件路径名的操作方法
2019/10/30 Python
python之列表推导式的用法
2019/11/29 Python
使用matplotlib绘制图例标签中带有公式的图
2019/12/13 Python
Python cookie的保存与读取、SSL讲解
2020/02/17 Python
keras 简单 lstm实例(基于one-hot编码)
2020/07/02 Python
手把手教你配置JupyterLab 环境的实现
2021/02/02 Python
实例讲解使用SVG制作loading加载动画的方法
2016/04/05 HTML / CSS
什么是GWT的Entry Point
2013/08/16 面试题
企业管理专业个人求职信范文
2013/09/24 职场文书
致长跑运动员加油稿
2014/02/20 职场文书
大学生自我评价范文分享
2014/02/21 职场文书
投标保密承诺书
2014/05/19 职场文书
诚信承诺书模板
2014/05/26 职场文书
企业文化理念标语
2014/06/10 职场文书
酒会邀请函
2015/01/31 职场文书
辩护词格式
2015/05/22 职场文书
继续教育心得体会(共6篇)
2016/01/19 职场文书
祝福语集锦:给妹妹结婚的祝福语
2019/12/18 职场文书