JavaScript与CSS实现的窗口滚动效果

下面的代码可以实现很多图片的滚动显示,效果还是不错的,
当然,你如果要用的实际的项目上,还要多多的修饰下
有什么更好的意见,欢迎留言,大家可以一起探讨!
<!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=utf-8" />
<title>替代Marquee滚动效果</title>
<style type="text/css">
.Mar
{
margin:8px auto;
background: #FFF;
overflow: hidden;
border: 1px dashed #CCC;
width: 800px; /*页面滚动需要显示的宽度*/
}
.Mar img
{
border: 3px solid #F2F2F2;
width: 124px;
height: 93px;
}
.inMar
{
float: left;
width: 3500px; /*能在一行放下所有滚动的图片的总宽度*2 像素值或者百分比*/
}
</style>
</head>
<body>
<div id="Mar" class="Mar">
<div id="inMar" class="inMar">
<div id="Mar1" style="float:left;">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td><img src="img/c (1).jpg"/><br />轿车:1</td>
<td><img src="img/c (2).jpg"/><br />轿车:2</td>
<td><img src="img/c (3).jpg"/><br />轿车:3</td>
<td><img src="img/c (4).jpg"/><br />轿车:4</td>
<td><img src="img/c (5).jpg"/><br />轿车:5</td>
<td><img src="img/c (6).jpg"/><br />轿车:6</td>
<td><img src="img/c (7).jpg"/><br />轿车:7</td>
<td><img src="img/c (8).jpg"/><br />轿车:8</td>
<td><img src="img/c (9).jpg"/><br />轿车:9</td>
<td><img src="img/c (10).jpg"/><br />轿车:10</td>
<td><img src="img/c (11).jpg"/><br />轿车:11</td>
<td><img src="img/c (12).jpg"/><br />轿车:12</td>
</tr>
</table>
</div>
<div id="Mar2" style="float:left;">
</div>
</div>
</div>
<script language="javascript" type="text/javascript">
var speed = 12; //数字越小速度越快
var step = 5;//步进
var nImgWidth = 130;
var div = document.getElementById("Mar");
var div1 = document.getElementById("Mar1");
var div2 = document.getElementById("Mar2");
//这句很重要的,他可以实现平滑无间断滚动,具体为什么,你可以把这句去掉,再看看效果就知道了
div2.innerHTML = div1.innerHTML;
function Marquee() {
//向右滚动
//if (div.scrollLeft <= 0)
//div.scrollLeft += div2.offsetWidth
//else {
//div.scrollLeft--
//}
//向左滚动
if(div.scrollLeft%nImgWidth == 0) {//第一张图片就停留
div.scrollLeft += step;
step = 0;
window.setTimeout("set(1)", 300);
}
if (div2.offsetWidth - div.scrollLeft <= 0)
div.scrollLeft -= div1.offsetWidth
else {
div.scrollLeft += step;
}
}
var MyMarquee = setInterval(Marquee, speed);
div.onmouseover = function() { clearInterval(MyMarquee) };
div.onmouseout = function() { MyMarquee = setInterval(Marquee, speed) };
//设置步进
function set(i) {
i = parseInt(i);
step = i;
}
</script>
</body>
</html>
Tags: 

延伸阅读

最新评论

发表评论