您现在的位置: 365建站网 > 365文章 > javascript/jquery图片滚动代码(无缝、平滑、上下左右滚动)写法

javascript/jquery图片滚动代码(无缝、平滑、上下左右滚动)写法

文章来源:365jz.com     点击数:549    更新时间:2018-01-10 09:01   参与评论
常用JS图片滚动(无缝、平滑、上下左右滚动)

代码大全innerHTML:    设置或获取位于对象起始和结束标签内的 HTML

scrollHeight: 获取对象的滚动高度。 
 
scrollLeft:   设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离 
 
scrollTop:    设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离 
 
scrollWidth: 获取对象的滚动宽度 
 
offsetHeight: 获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度 
 
offsetLeft:   获取对象相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置 
 
offsetTop:    获取对象相对于版面或由 offsetTop 属性指定的父坐标的计算顶端位置 
 
offsetWidth: 获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的宽度 
 
以下包含四种方向的滚动代码,粗体部分需要自行修改,可修改成更复杂的代码,如图文混排、加边框、限制图片大小等。 
 
增大width时,应该相应增加一些图片(应该是使所有图片组成的总宽度大于设定的width),即使是重复的,否则会在滚动一会儿后停下来,图片不宜太大,否则在IE下滚动缓慢!  


实例1:

<!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>向上下左右不间断无缝滚动图片的效果(兼容火狐和IE)</title>

</head>

<body>

<div id="colee" style="overflow:hidden;height:253px;width:410px;">

<div id="colee1">

<p><img src="images/445566.jpg"></p>

<p><img src="images/445566.jpg"></p>

<p><img src="images/445566.jpg"></p>

<p><img src="images/445566.jpg"></p>

<p><img src="images/445566.jpg"></p>

<p><img src="images/445566.jpg"></p>

</div>

<div id="colee2"></div>

</div>

<script>

var speed=30;

var colee2=document.getElementById("colee2");

var colee1=document.getElementById("colee1");

var colee=document.getElementById("colee");

colee2.innerHTML=colee1.innerHTML; //克隆colee1为colee2

function Marquee1(){

//当滚动至colee1与colee2交界时

if(colee2.offsetTop-colee.scrollTop<=0){

colee.scrollTop-=colee1.offsetHeight; //colee跳到最顶端

}else{

colee.scrollTop++

}

}

var MyMar1=setInterval(Marquee1,speed)//设置定时器

//鼠标移上时清除定时器达到滚动停止的目的

colee.onmouseover=function() {clearInterval(MyMar1)}

//鼠标移开时重设定时器

colee.onmouseout=function(){MyMar1=setInterval(Marquee1,speed)}

</script>


<!--向上滚动代码结束-->

<br>


<!--下面是向下滚动代码-->


<div id="colee_bottom" style="overflow:hidden;height:253px;width:410px;">

<div id="colee_bottom1">

<p><img src="images/445566.jpg"></p>

<p><img src="images/445566.jpg"></p>

<p><img src="images/445566.jpg"></p>

<p><img src="images/445566.jpg"></p>

<p><img src="images/445566.jpg"></p>

<p><img src="images/445566.jpg"></p>

</div>

<div id="colee_bottom2"></div>

</div>

<script>

var speed=30

var colee_bottom2=document.getElementById("colee_bottom2");

var colee_bottom1=document.getElementById("colee_bottom1");

var colee_bottom=document.getElementById("colee_bottom");

colee_bottom2.innerHTML=colee_bottom1.innerHTML

colee_bottom.scrollTop=colee_bottom.scrollHeight

function Marquee2(){

if(colee_bottom1.offsetTop-colee_bottom.scrollTop>=0)

colee_bottom.scrollTop+=colee_bottom2.offsetHeight

else{

colee_bottom.scrollTop--

}

}

var MyMar2=setInterval(Marquee2,speed)

colee_bottom.onmouseover=function() {clearInterval(MyMar2)}

colee_bottom.onmouseout=function() {MyMar2=setInterval(Marquee2,speed)}

</script>



<!--向下滚动代码结束-->

<br>


<!--下面是向左滚动代码-->




<div id="colee_left" style="overflow:hidden;width:500px;">

<table cellpadding="0" cellspacing="0" border="0">

<tr><td id="colee_left1" valign="top" align="center">

<table cellpadding="2" cellspacing="0" border="0">

<tr align="center">

<td><p><img src="images/445566.jpg"></p></td>

<td><p><img src="images/445566.jpg"></p></td>

<td><p><img src="images/445566.jpg"></p></td>

<td><p><img src="images/445566.jpg"></p></td>

<td><p><img src="images/445566.jpg"></p></td>

<td><p><img src="images/445566.jpg"></p></td>

</tr>

</table>

</td>

<td id="colee_left2" valign="top"></td>

</tr>

</table>

</div>

<script>

//使用div时,请保证colee_left2与colee_left1是在同一行上.

var speed=30//速度数值越大速度越慢

var colee_left2=document.getElementById("colee_left2");

var colee_left1=document.getElementById("colee_left1");

var colee_left=document.getElementById("colee_left");

colee_left2.innerHTML=colee_left1.innerHTML

function Marquee3(){

if(colee_left2.offsetWidth-colee_left.scrollLeft<=0)//offsetWidth 是对象的可见宽度

colee_left.scrollLeft-=colee_left1.offsetWidth//scrollWidth 是对象的实际内容的宽,不包边线宽度

else{

colee_left.scrollLeft++

}

}

var MyMar3=setInterval(Marquee3,speed)

colee_left.onmouseover=function() {clearInterval(MyMar3)}

colee_left.onmouseout=function() {MyMar3=setInterval(Marquee3,speed)}

</script>




<!--向左滚动代码结束-->




<br>




<!--下面是向右滚动代码-->

<div id="colee_right" style="overflow:hidden;width:500px;">

<table cellpadding="0" cellspacing="0" border="0">

<tr><td id="colee_right1" valign="top" align="center">

<table cellpadding="2" cellspacing="0" border="0">

<tr align="center">

<td><p><img src="images/445566.jpg"></p></td>

<td><p><img src="images/445566.jpg"></p></td>

<td><p><img src="images/445566.jpg"></p></td>

<td><p><img src="images/445566.jpg"></p></td>

<td><p><img src="images/445566.jpg"></p></td>

</tr>

</table>

</td>

<td id="colee_right2" valign="top"></td>

</tr>

</table>

</div>

<script>

var speed=30//速度数值越大速度越慢

var colee_right2=document.getElementById("colee_right2");

var colee_right1=document.getElementById("colee_right1");

var colee_right=document.getElementById("colee_right");

colee_right2.innerHTML=colee_right1.innerHTML

function Marquee4(){

if(colee_right.scrollLeft<=0)

colee_right.scrollLeft+=colee_right2.offsetWidth

else{

colee_right.scrollLeft--

}

}

var MyMar4=setInterval(Marquee4,speed)

colee_right.onmouseover=function() {clearInterval(MyMar4)}

colee_right.onmouseout=function() {MyMar4=setInterval(Marquee4,speed)}

</script>




<!--向右滚动代码结束-->

</body>

</html>


jquery无缝向上滚动实现代码

实例2:

JS部份
 
$(function(){ 
var $this = $(".renav"); 
var scrollTimer; 
$this.hover(function(){ 
clearInterval(scrollTimer); 
},function(){ 
scrollTimer = setInterval(function(){ 
scrollNews( $this ); 
}, 2000 ); 
}).trigger("mouseout"); 
}); 
function scrollNews(obj){ 
var $self = obj.find("ul:first"); 
var lineHeight = $self.find("li:first").height(); 
$self.animate({ "margin-top" : -lineHeight +"px" },600 , function(){ 
$self.css({"margin-top":"0px"}).find("li:first").appendTo($self); 
}) 
} 

HTML部份
 
<style type="text/css"> 
.renav{ 
width:200px; 
height:150px; 
line-height:21px; 
overflow:hidden; 
background:#FFFFFF; 
} 
.renav li{ 
height:21px; 
} 
</style> 
<div class="renav"> 
<ul style="margin-top: 0px;"> 
<li><a>罗氏</a></li> 
<li><a>瑞声达</a></li> 
<li><a>图片1</a></li> 
<li><a>图片2</a></li> 
<li><a>图片3</a></li> 
<li><a>图片4</a></li> 
<li><a>西门子</a></li> 
<li><a>欧姆龙</a></li> 
</ul> 
</div> 
html文字滚动代码

<marquee style="WIDTH: 388px; HEIGHT: 200px" scrollamount="2" direction="up" >
<div align="left" ><br />
</div >
<center ><font face="黑体" color="#008000" size="4" ></font ></center >
<div align="left" ><br />
</div >
<center >
<p ><font color="#ff6600" size="4" >滚动文字</font ></p >
<p ><font color="#ff4500" size="4" >滚动文字</font ></p >
<p ><font color="#ff3300" size="4" >滚动文字</font ><br />
<br />
</p >
</marquee >

marquee 参数:
BGColor:滚动文本框的背景颜色。
Direction:滚动方向设置,可选择Left、Right、up和down。
scrolldelay:每轮滚动之间的延迟时间,越大越慢。
scrollamount:一次滚动总的时间量,数字越小滚动越慢。
Behaviour:滚动的方式设置,三种取值:Scroll(循环滚动) lide(单次滚动)、Alternate(来回滚动)。
Align:文字的对齐方式设置。可选择Middle(居中)、Bottom(居下)还是Top(居上)。
Width:滚动文本框的宽度,输入一个数值后从后面的单选框选择in Pixels(按像素)或是in Percent(按百分比)。
Height:滚动文本框的高度,输入一个数值后从后面的单选框选择in Pixels(按像素)或是in Percent(按百分比)。
loop:滚动次数。默认为infinite
hspace、vspace:前后、上下的空行。


1.建立第一个滚动字幕。代码:

<marquee scrollAmount=2 width=300>风景线</marquee>

2.各参数详解:
a)scrollAmount。它表示速度,值越大速度越快。如果没有它,默认为6,建议设为1~3比较好。
b)width和height,表示滚动区域的大小,width是宽度,height是高度。特别是在做垂直滚动的时候,一定要设height的值。
c)direction。表示滚动的方向,默认为从右向左:←←←。可选的值有right、down、up。滚动方向分别为:right表示→→→,up 表示↑,down表示↓。
d)scrollDelay,这也是用来控制速度的,默认为90,值越大,速度越慢。通常scrollDelay是不需要设置的。
e)behavior。用它来控制属性,默认为循环滚动,可选的值有alternate(交替滚动)、slide(幻灯片效果,指的是滚动一次,然后停止 滚动)


3.实例:
a)如何给滚动字幕加超链接?这跟平时的超链接是完全一样的。只要在文字外面加上<a href=***>和</a>就可以了。如下效果,代码是<marquee scrollAmount=2 width=300><a href=https://www.365jz.com>中央电视台</a></marquee>,点击中央电视台就可以进入 了:
中央电视台

b)如何制作当鼠标停留在文字上,文字停止滚动?
代码如:

<marquee scrollAmount=2 width=300 onmouseover=stop() onmouseout=start()>文字内容</marquee>

c)交替效果。代码如:

<marquee scrollAmount=2 width=99 behavior=alternate>文字内容</marquee>


d)多行文本向上滚动。代码如:

<marquee scrollAmount=2 width=300 height=160 direction=up>·早晨好啊!<br>·空气好清新啊<br>·你还好吗<p>·<a href=https://www.365jz.com>靓丽风景线</a></marquee>


图片滚动
用<img src=相对路径/文件名>的语句。并且要注意图片名不要中文,要注意区分英文大小写。

图片做超链接
用<a href=>和</a>把<img>包围,并且img必须设border=0,否则图片会出现蓝框。正确的例子如:& amp; lt;a href=http://www.webshu.com><img src=https://www.365jz.com/j/01.jpg border=0></a>
其中a href=表示超链接,这是最常用的。练习的方法也很简单,就是平时用FP或DW做网页的时候,要多查看源代码。


多张图片排列滚动
通常图片和图片之间用<br>(回行)或<p style=margin-top:9>(精确调整图片间的距离)来链接。也可以把你的图片先用表格排版,然后把这个表格的所有语句也加入到 marquee中,让这个表格来滚动。 

代码

<script>document.write('<marquee scrollAmount=2 width=340 height=160 direction=up onmouseover=stop() onmouseout=start()><a href=https://www.365jz.com><img src=https://www.365jz.com/j/01.jpg border=0></a></marquee>')</script>



如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛

发表评论 (549人查看0条评论)
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
昵称:
最新评论
------分隔线----------------------------

快速入口

· 365软件
· 杰创官网
· 建站工具
· 网站大全

其它栏目

· 建站教程
· 365学习

业务咨询

· 技术支持
· 服务时间:9:00-18:00
365建站网二维码

Powered by 365建站网 RSS地图 HTML地图

copyright © 2013-2024 版权所有 鄂ICP备17013400号