jquery图片无缝滚动特效

2013-04-27阅读(9089)评论(0)牵着狗狗看MM

苏州实时公交查询

jquery图片无缝滚动插件制作左右无缝滚动图片和上下无缝滚动图片,一款简单的jQuery无缝滚动代码。
JS代码

<script type="text/javascript">
//图片滚动 调用方法 imgscroll({speed: 30,amount: 1,dir: "up"});
$.fn.imgscroll = function(o){
	var defaults = {
		speed: 40,
		amount: 0,
		width: 1,
		dir: "left"
	};
	o = $.extend(defaults, o);
	
	return this.each(function(){
		var _li = $("li", this);
		_li.parent().parent().css({overflow: "hidden", position: "relative"}); //div
		_li.parent().css({margin: "0", padding: "0", overflow: "hidden", position: "relative", "list-style": "none"}); //ul
		_li.css({position: "relative", overflow: "hidden"}); //li
		if(o.dir == "left") _li.css({float: "left"});
		
		//初始大小
		var _li_size = 0;
		for(var i=0; i<_li.size(); i++)
			_li_size += o.dir == "left" ? _li.eq(i).outerWidth(true) : _li.eq(i).outerHeight(true);
		
		//循环所需要的元素
		if(o.dir == "left") _li.parent().css({width: (_li_size*3)+"px"});
		_li.parent().empty().append(_li.clone()).append(_li.clone()).append(_li.clone());
		_li = $("li", this);

		//滚动
		var _li_scroll = 0;
		function goto(){
			_li_scroll += o.width;
			if(_li_scroll > _li_size)
			{
				_li_scroll = 0;
				_li.parent().css(o.dir == "left" ? { left : -_li_scroll } : { top : -_li_scroll });
				_li_scroll += o.width;
			}
				_li.parent().animate(o.dir == "left" ? { left : -_li_scroll } : { top : -_li_scroll }, o.amount);
		}
		
		//开始
		var move = setInterval(function(){ goto(); }, o.speed);
		_li.parent().hover(function(){
			clearInterval(move);
		},function(){
			clearInterval(move);
			move = setInterval(function(){ goto(); }, o.speed);
		});
	});
};
</script>

HTML及调用代码

<div class="scrollleft">
    <ul>
        <li>
            <a href="#">
                <img width="136" height="100" src="images/20127251731536317.jpg" alt="卷板" />
            </a>	<span>卷板</span>
        </li>
        <li>
            <a href="#">
                <img width="136" height="100" src="images/20127251731536317.jpg" alt="钢板" />
            </a>	<span>钢板</span>
        </li>
        <li>
            <a href="#">
                <img width="136" height="100" src="images/20127251731536317.jpg" alt="卷板" />
            </a>	<span>卷板</span>
        </li>
    </ul>
</div>
<div class="scrolltop">
    <ul>
        <li>
            <a href="#">
                <img width="136" height="100" src="images/20127251731536317.jpg" alt="卷板" />
            </a>	<span>卷板</span>
        </li>
        <li>
            <a href="#">
                <img width="136" height="100" src="images/20127251731536317.jpg" alt="钢板" />
            </a>	<span>钢板</span>
        </li>
        <li>
            <a href="#">
                <img width="136" height="100" src="images/20127251731536317.jpg" alt="卷板" />
            </a>	<span>卷板</span>
        </li>
    </ul>
</div>
<script type="text/javascript">
    $(document).ready(function () {

        $(".scrollleft").imgscroll({
            speed: 40, //图片滚动速度
            amount: 0, //图片滚动过渡时间
            width: 1, //图片滚动步数
            dir: "left" // "left" 或 "up" 向左或向上滚动
        });

        $(".scrolltop").imgscroll({
            speed: 40, //图片滚动速度
            amount: 0, //图片滚动过渡时间
            width: 1, //图片滚动步数
            dir: "up" // "left" 或 "up" 向左或向上滚动
        });

    });
</script>

CSS代码(可根据实际情况自行修改)

*{margin:0;padding:0;list-style-type:none;}
a,img{border:0;}
body{font:12px/180% Arial, Helvetica, sans-serif, &quot;新宋体&quot;;}
/* scrollleft */
.scrollleft{width:680px;padding:5px 20px 0px 20px;margin:20px auto;}
.scrollleft li{float:left;margin-right:7px;display:inline;width:158px;text-align:center;line-height:19px}
.scrollleft img{width:136px;height:100px;padding:10px;border:solid 1px #ddd;}
/* scrolltop */
.scrolltop{width:158px;height:438px;overflow:hidden;margin:20px auto;}
.scrolltop li{height:156px;overflow:hidden;text-align:center;line-height:19px}
.scrolltop img{width:136px;height:100px;padding:10px;border:solid 1px #ddd;}

Demo下载源码

赞(0)
转载请注明来源:Web前端(W3Cways.com) - Web前端学习之路 » jquery图片无缝滚动特效
分享到: 更多 (0)