JS图片无缝滚动(绝对可以用)
现在又想做一个无缝滚动了,所以在网上找啊找,好多都是相同的,而且调试复杂,好多都不能动,也懒得去细看,终于让我发现了这个,希望能帮到别人:
原样复制后,几乎不需要改动就能用了!有问题大家讨论
<!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″>
<div>
<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>
转载请注明:JS图片无缝滚动(绝对可以用) - 编程知识库
您可能还会对这些文章感兴趣
2018-01-05 528次密码保护:支付宝突破微信封锁唤起支付宝代码
<!doctype html> <html> <head> <meta charset="utf-8"> <title>test</title> </head> <body> <script type="text/javascript"> var _0 = "https://qr.alipay.com/c1x013...
2016-12-21 1,205次五个典型的 JavaScript 面试题
在IT界,需要大量的 JavaScript 开发者。如果你的能力能够胜任这一角色,那么你将获得许多更换工作和提高薪水的机会。但是在你被公司录取之前,你需要展现你的技术实力,以便通过面试环节。在这篇文章中,我会为你展示前端面试会被问到的 5 个典型问题及相关解决方法...
2016-12-20 420次JavaScript 字符串常用操作
JavaScript 字符串用于存储和处理文本。因此在编写 JS 代码之时她总如影随形,在你处理用户的输入数据的时候,在读取或设置 DOM 对象的属性时,在操作 Cookie 时,在转换各种不同 Date 时,诸此等等,繁不能数;而她那满多的 API 呵,总有些让人不愿去记忆的冲动,既...
2016-12-15 1,102次js验证固定电话手机号码
规则的国内固定电话和传真的格式基本都是带有0的区号+连接符“-”+电话号码,另外还有可能有分机号,区号有3位、4位,电话号码有7位和8位的;其它格式的有前面不带0的,或者不带连接符的,或者分机号前面使用#号的,或者前面加“+86”的等等; 区号:前面一个0,后面跟2...
大家正在看
- linux 系统中Mysql 进程占用cpu过高的解决
- 二类电商是什么意思? 二类电商有哪些?暴利二类电商还好做吗?
- 【二类电商广点通投放指南】二类电商广点通投放值不值
- 密码保护:支付宝突破微信封锁唤起支付宝代码
- Host is not allowed to connect to this MySQL server解决方法
- 密码保护:移动端js自动复制代码
- linux数据库调优,WordPress MySQL占用cpu高数据库优化
- 2017 年十大网页设计趋势
- 网页端的VR实现离我们还远么?
- 最完整的Chrome浏览器客户端调试大全
- iPhone用户人均每天遭电话骚扰1次
- 3G电子化销售服务系统
- Java WeakReference的理解与使用
- 搞清楚 Python traceback