需求描述
我现在需要一个图片滚动的代码,我要求图片是整屏,然后是向上滚动的。要求要有文字和链接显示出来,同时要有翻页的功能
需求最终截图
代码如下 | 复制代码 |
核心代码 $(function(){ //首页图片滚动jQuery代码 //code by 酷剑 //2013.1.27 //contact me at cbaojian@gmail.com var index = 0; var len = $(“.sliderbox > li”).length; var sliderTimer; for(var i=1; i<=len; i++){$(“.slidernav”).append(‘<li><a href=”#”>’+i+’</a></li>’);} for(var j=0; j<len; j++){ var title = $(“.sliderbox li:eq(“+j+”) img”).attr(“alt”); var url = $(“.sliderbox li:eq(“+j+”) a”).attr(“href”); $(“.slidertext”).append(‘<li><a href=”‘+url+’”>’+title+’</a></li>’); } $(“.slidernav li”).mouseover(function(){ |
虽然是很简单的功能,但是还是从中学到了很多东西,其中最关键的地方是使用到函数的方式,从而使得过程简单了很多呢,不过我还是觉得这个可以扩展, 可以把它做成一个插件的形式来调用内容。另外对于jQuery的动画方式也更加的清晰了。图片的滚动其实就是使用到一个setInterval(),定义 这个函数,使得他不断循环,从而形成动画,当然这个比不上那些插件好看,比如图片滚动过渡的时候可以加一些模糊的效果切换的时候可以更自然点。
图片向上滚动演示
2013.2.25更新
添加代码修改为左右滚动
修改里面的jQuery代码中的:
代码如下 | 复制代码 |
var sliderHeight = $(“.slider”).height(); $(“.sliderbox”).stop(true,false).animate({“top”:-sliderHeight*index}); 为: var sliderWidth = $(".slider").width(); $(".sliderbox").stop(true,false).animate({"left":-sliderWidth*index}); 修改里面的css代码 .sliderbox li{width:980px; height:300px;} 另外补上html代码: |
2013年5月15日更新
把内容改为函数对象的方式来做。并且支持向左向右滚动的代码支持。
代码如下 | 复制代码 |
<script type="text/javascript"> $("li",sliderNav).mouseover(function(){ $(_this.obj).hover(function(){ </script> |
更多代码与css可以查看示例
面向对象函数版-使用渐隐渐现的幻灯片示例3
2013.6.14更新
图片循环向上滚动代码
js代码如下:
代码如下 | 复制代码 |
$(function(){ var $this = $("#scrollTop"); var scrollTimer; $this.hover(function(){ clearInterval(scrollTimer); },function(){ scrollTimer = setInterval(function(){ // scrollNews( $this ); scrollNews($this); //new scrollNews(".scrollNews"); }, 3000 ); }).trigger("mouseleave"); }) function scrollNews(obj){ var $self = obj.find("ul:first"); // var Liwidth = $self.find("li:first").width(); //获取宽度,向上滚动则需要获取高度.height() // $self.animate({ "marginLeft" : -Liwidth +"px" }, 600 , function(){ //向左滚动,向上滚动则需要改为marginTop,其他方向类似,下同 // $self.css({marginLeft:0}).find("li:first").appendTo($self); //appendTo能直接移动元素 // }) var liHeight = $self.find("li:first").height(); $self.animate({ "marginTop":-liHeight+"px"},600,function(){ $self.css({marginTop:0}).find("li:first").appendTo($self); }) } |
css代码如下:
代码如下 | 复制代码 |
*{margin:0; padding:0;} li{list-style:none;} .scrollNews{ width:490px; height:170px; overflow:hidden; background:#eee; margin:10px auto; } .scrollNews ul{width:1800px;} .scrollNews li{ height:170px; /* float:left; display:inline;*/ } .left li{float:left; display:inline;} |