Jquery与JS两种方法仿twitter/新浪微博 高度自适应无缝滚动
首先是Jquery
<!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> <script src="http://common.cnblogs.com/script/jquery.json-2.2.min.js" type="text/javascript"></script> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> <script language="javascript"> $(function(){ var scrtime; $("#con").hover(function(){ clearInterval(scrtime); },function(){ scrtime = setInterval(function(){ var $ul = $("#con ul"); var liHeight = $ul.find("li:last").height(); $ul.animate({marginTop : liHeight+40 +"px"},1000,function(){ $ul.find("li:last").prependTo($ul) $ul.find("li:first").hide(); $ul.css({marginTop:0}); $ul.find("li:first").fadeIn(1000); }); },3000); }).trigger("mouseleave"); }); </script> <style type="text/css"> <!-- *{ margin:0; padding:0;} ul,li{ list-style-type:none;} body{ font-size:13px; background-color:#999999;} #con{ width:700px; height:400px; margin:10px auto; position:relative; border:1px #666 solid; background-color:#FFFFFF; overflow:hidden;} #con ul{ position:absolute; margin:10px; top:0; left:0; padding:0;} #con ul li{ width:100%; border-bottom:1px #333333 dotted; padding:20px 0; overflow: } #con ul li a{ float:left; border:1px #333333 solid; padding:2px;} #con ul li p{ margin-left:68px;line-height:1.5; padding:10px;} --> </style> <body> <div id="con"> <ul> <li> <a href="http://www.websjy.com"><img src="http://tp3.sinaimg.cn/1696357270/50/1282628065/1" /></a> <p class="vright">第一最好不相见,如此便可不相恋。第二最好不相知,如此便可不相思。 第三最好不相伴,如此便可不相欠。第四最好不相惜,如此便可不相忆。 作相思。 </p> </li> <li> <a href="http://www.websjy.com"><img src="http://tp3.sinaimg.cn/1696357270/50/1282628065/1" /></a> <p class="vright">第一最好不相见,如此便可不相恋。第二最好不相知,如此便可不相思。 第三最好不相伴,如此便可不相欠。第四最好不相惜,如此便可不相忆。 第五最好不相爱, 不相对,如此便可不相会。 第七最好不相误,如此便可不相负。第八最好不相许,如此便可不相续。 第九最好不相依,如此便可不相偎。第十最好不相遇,如此便可不相聚。 但曾相见便相知,相见何如不见时。安得与君相诀绝,免教生死作相思。 </p> </li> <li> <a href="http://www.websjy.com"><img src="http://tp3.sinaimg.cn/1696357270/50/1282628065/1" /></a> <p class="vright">第一最好不相见,如此便可不相恋。第二最好不相知,如此便可不相思。 第三最好不相伴,如此便可不相欠。第四最好不相惜,如此便可不相忆。 第五最好不相爱,如此便可不相弃。 第六最好不相对,如此便可不相会。 第七最好不相误,如此便可不相负。第八最好不相许,如此便可不相续。 第九最好不相依,如此便可不相偎。第十最好不相遇,如此便可不相聚。 但曾相见便相知,相见何如不见时。安得与君相诀绝,免教生死作相思。 </p> </li> <li> <a href="http://www.websjy.com"><img src="http://tp3.sinaimg.cn/1696357270/50/1282628065/1" /></a> <p class="vright">第一最好不相见,如此便可不相恋。第二最好不相知,如此便可不相思。 第三最好不相伴,如此便可不相欠。第四最好不相惜,如此便可不相忆。 第五最好不相爱,如此便可不相弃。 第六最好不相对,如此便可不相会。 第七最好不相误,如此便可不相负。第八最好不相许,如此便可不相续。 第九最好不相依,如此便可不相偎。第十最好不相遇,如此便可不相聚。 但曾相见便相知,相见何如不见时。安得与君相诀绝,免教生死作相思。 </p> </li> </ul> </div> </body> </html>
这个是JavaScript:
<!doctype html> <html> <head> <title>tweets-slide</title> <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> <style type="text/css"> ul, li {margin:0; padding:0;list-style:none} body { margin: 0; height: 100%; background: #333; } .wp { position: relative; width: 800px; height: 400px; overflow: hidden; margin: 20px auto; border: 4px solid #121212; background: #fff; } .slider { position: absolute; width: 760px; padding: 0 20px; left:0; top: 0; } .fl {float:left} .slider img {display:block; padding: 2px; border: 1px solid #ccc} .slider li {padding: 20px 0; border-bottom: 1px dashed #ccc;overflow:hidden;width:100%} .slider p {font-size: 12px;margin:0;padding-left:68px;color:#333;line-height:20px;} </style> <script type="text/javascript"> function H$(i) {return document.getElementById(i)} function H$(c, p) {return p.getElementsByTagName(c)} var slider = function () { function init (o) { this.id = o.id; this.at = o.auto ? o.auto : 3; this.o = 0; this.pos(); } init.prototype = { pos : function () { clearInterval(this.__b); this.o = 0; var el = H$(this.id), li = H$('li', el), l = li.length; var _t = li[l-1].offsetHeight; var cl = li[l-1].cloneNode(true); cl.style.opacity = 0; cl.style.filter = 'alpha(opacity=0)'; el.insertBefore(cl, el.firstChild); el.style.top = -_t + 'px'; this.anim(); }, anim : function () { var _this = this; this.__a = setInterval(function(){_this.animH()}, 20); }, animH : function () { var _t = parseInt(H$(this.id).style.top), _this = this; if (_t >= -1) { clearInterval(this.__a); H$(this.id).style.top = 0; var list = H$('li',H$(this.id)); H$(this.id).removeChild(list[list.length-1]); this.__c = setInterval(function(){_this.animO()}, 20); //this.auto(); }else { var __t = Math.abs(_t) - Math.ceil(Math.abs(_t)*.07); H$(this.id).style.top = -__t + 'px'; } }, animO : function () { this.o += 2; if (this.o == 100) { clearInterval(this.__c); H$('li',H$(this.id))[0].style.opacity = 1; H$('li',H$(this.id))[0].style.filter = 'alpha(opacity=100)'; this.auto(); }else { H$('li',H$(this.id))[0].style.opacity = this.o/100; H$('li',H$(this.id))[0].style.filter = 'alpha(opacity='+this.o+')'; } }, auto : function () { var _this = this; this.__b = setInterval(function(){_this.pos()}, this.at*1000); } } return init; }(); </script> </head> <body> <div class="wp"> <ul id="slider" class="slider"> <li><a class="fl" href="http://www.websjy.com"><img src="http://pic.cnblogs.com/face/u160412.jpg" alt="" /></a> <p>曾虑多情损梵行 入山又恐别倾城 世间安得双全法 不负如来不负卿</p> </li> <li><a class="fl" href="http://www.websjy.com"><img src="http://pic.cnblogs.com/face/u160412.jpg" alt="" /></a> <p>第一最好不相见,如此便可不相恋。 第二最好不相知,如此便可不相思。<br/> 第三最好不相伴,如此便可不相欠。 第四最好不相惜,如此便可不相忆。<br/> 第五最好不相爱,如此便可不相弃。 第六最好不相对,如此便可不相会。 <br/> 第七最好不相误,如此便可不相负。 第八最好不相许,如此便可不相续。<br/> 第九最好不相依,如此便可不相偎。 第十最好不相遇,如此便可不相聚。<br/> 但曾相见便相知,相见何如不见时。 安得与君相诀绝,免教生死作相思。</p> </li> <li><a class="fl" href="http://www.websjy.com"><img src="http://pic.cnblogs.com/face/u160412.jpg" alt="" /></a> <p>那一天 闭目在经殿香雾中 蓦然听见你颂经中的真言 那一月 我摇动所有的转经筒 不为超度 只为触摸你的指尖 那一年 磕长头匍匐在山路 不为觐见 只为贴着你的温暖 那一世 转山转水转佛塔啊 不为修来生 只为途中与你相见 只是 就在那一夜 我忘却了所有 抛却了信仰 舍弃了轮回 只为那 曾在佛前哭泣的玫瑰 早已失去旧日的光泽 </p> </li> <li><a class="fl" href="http://www.websjy.com"><img src="http://pic.cnblogs.com/face/u160412.jpg" alt="" /></a> <p>班扎古鲁白玛的沉默 你见 或者不见我 我就在那里 不悲不喜 你念 或者不念我 情就在那里 不来不去 你爱 或者不爱我 爱就在那里 不增不减 你跟 或者不跟我 我的手就在你手里 不舍不弃 来我的怀里 或者 让我住进你的心间 默然 相爱 寂静 欢喜 </p> </li> </ul> </div> <script type="text/javascript"> new slider({id:'slider'}) </script> </body> </html>
两种代码比较,很显然,Jquery的代码简单明了,强力推荐!