分享一个滚动插件的源码:
(function($){$.fn.bxCarousel=function(options){
var defaults={
move:4,
display_num:4,
speed:500,
margin:0,
auto:false,
auto_interval:2000,
auto_dir:'next',
auto_hover:false,
next_text:'next',
next_image:'',
prev_text:'prev',
prev_image:'',
controls:true
};
var options=$.extend(defaults,options);
return this.each(function(){var $this=$(this);
var li=$this.find('li');
var first=0;
var fe=0;
var last=options.display_num-1;
var le=options.display_num-1;
var is_working=false;var j='';
var clicked=false;li.css({'float':'left','listStyle':'none','marginRight':options.margin});
var ow=li.outerWidth(true);
wrap_width=(ow*options.display_num)-options.margin;var seg=ow*options.move;
$this.wrap('<div class="bx_container"></div>').width(999999);
if(options.controls){if(options.next_image!=''||options.prev_image!='')
{var controls='<a href="" class="prev"><img src="'+options.prev_image+'"/></a><a href="" class="next"><img src="'+options.next_image+'"/></a>';}
else{var controls='<a href="" class="prev">'+options.prev_text+'</a><a href="" class="next">'+options.next_text+'</a>';}}
$this.parent('.bx_container').wrap('<div class="bx_wrap"></div>').css({'position':'relative','width':wrap_width,'overflow':'hidden'}).before(controls);
var w=li.slice(0,options.display_num).clone();
var last_appended=(options.display_num+options.move)-1;$this.empty().append(w);get_p();get_a();
$this.css({'position':'relative','left':-(seg)});
$this.parent().siblings('.next').click(function(){slide_next();clearInterval(j);clicked=true;return false;});
$this.parent().siblings('.prev').click(function(){slide_prev();clearInterval(j);clicked=true;return false;});
if(options.auto){start_slide();if(options.auto_hover&&clicked!=true){$this.find('li').live('mouseenter',function(){if(!clicked){clearInterval(j);}});
$this.find('li').live('mouseleave',function(){if(!clicked){start_slide();}});}}
function start_slide(){
if(options.auto_dir=='next'){
j=setInterval(function(){slide_next()},options.auto_interval);}
else{j=setInterval(function(){slide_prev()},options.auto_interval);}}
function slide_next(){
if(!is_working){is_working=true;set_pos('next');
$this.animate({left:'-='+seg},options.speed,function(){$this.find('li').slice(0,options.move).remove();$this.css('left',-(seg));get_a();is_working=false;});}}
function slide_prev(){
if(!is_working){is_working=true;set_pos('prev');
$this.animate({left:'+='+seg},options.speed,function(){$this.find('li').slice(-options.move).remove();$this.css('left',-(seg));get_p();is_working=false;});}}
function get_a(){
var str=new Array();var lix=li.clone();le=last;
for(i=0;i<options.move;i++){le++
if(lix[le]!=undefined){str[i]=$(lix[le]);}else{le=0;str[i]=$(lix[le]);}}
$.each(str,function(index){$this.append(str[index][0]);});}
function get_p(){var str=new Array();var lix=li.clone();fe=first;for(i=0;i<options.move;i++){fe--
if(lix[fe]!=undefined){str[i]=$(lix[fe]);}else{fe=li.length-1;str[i]=$(lix[fe]);}}
$.each(str,function(index){$this.prepend(str[index][0]);});}
function set_pos(dir){if(dir=='next'){first+=options.move;if(first>=li.length){first=first%li.length;}
last+=options.move;if(last>=li.length){last=last%li.length;}}else if(dir=='prev'){first-=options.move;if(first<0){first=li.length+first;}
last-=options.move;if(last<0){last=li.length+last;}}}});}})(jQuery);
用法:
jQuery(document).ready(function() {
$('#example1').bxCarousel({
display_num: 7,
move: 1,
prev_image: 'res/images/arrow_prev.png',
next_image: 'res/images/arrow_next.png',
auto: false,
margin: 26
});
});
相关推荐
multiscroll.js 是一款 jQuery 插件,它能够让页面的每一屏分成左右两块,在滚动时,这两块会顺着垂直方向反向的滚动合并在一起,效果非常的酷。 查看演示 标签:multiscroll
jquery滚动插件,包括文字和图片
JQuery滚动广告插件 JQuery 滚动 插件
jquery滚动插件,各种样式的都有
NULL 博文链接:https://etion-lee.iteye.com/blog/1434858
scroll2Top 是个简单的自定义 jQuery 插件,用来滚动回到顶部。在线演示 标签:scroll2Top
Scrollable是一个灵活、轻量级用于创建滚动内容的jQuery插件。任何内容(HTML、视频、文件、图片等...)都可以作为一个滚动项。支持水平与垂直两种滚动方向。用途:滚动效果,可制作分步验证页面
Endless Scroll 是 jQuery 一个用来实现无限滚动的插件,相信你试过微软新搜索引擎 Bing 的搜索结果,当鼠标向下滚动时,新的内容会一直出现在下方,而不是翻页去浏览。示例代码:// using default options $...
jQuery GoUp! 是个简单的 jQuery 插件,允许用户在 web 页面上快速滚动到页面顶部。在线演示 标签:jQuery
Totem 是一款基于 jQuery 的垂直滚动插件,它带有“向上”、“向下”、“开始”、“停止”四项控制,还可以设置每次滚动的高度、滚动的速度、滚动间隔、鼠标移动到上面停止滚动等等,用来做公告、标题滚动都是不错的...
liMarquee 是一款基于 jQuery 的无缝滚动插件,类似于 HTML 的 Marquee 标签,但比 Marquee 更强大。它可以应用于任何 Web 元素,同时它可以设置不同的滚动方向(左右上下)、滚动速度、鼠标悬停暂停、鼠标拖动、...
ScrollMagic 是 jQuery 插件,允许用户像进度条一样使用滚动条。用户可以: 在特定滚动位置开始一个动画 滚动条滚动的时候同步动画 固定一个元素在指定的滚动位置 在线演示 标签:Scroll
scrollToBySpeed 是 jQuery 插件,是按照指定速度去滚动页面,而不是时间。在线演示
ScrollAdvance 是 jQuery 插件,为滚动位置添加有用的功能,比如 scrollBottom(), scrollRight() 或者 scrollCenter()。在线演示
Scrollator 是基于 jQuery 的浏览器滚动条替代品,不占用任何的空间,并且性能超好。 在线演示 标签:Scrollator
Smartscroll 是一个小的 jQuery 插件,它可以实现以下功能:1.部分滚动 —— Scrolljacking2.自动哈希 —— 基于当前页位置更新 URL 哈希3.响应 —— 你可以通过设置断点禁用 scrolljacking 标签:...
jQuery全屏滚动插件
pagePiling.js 是 jQuery 插件,用来创建一个漂亮的滚动帘类型的网站。pagePiling.js 非常灵活,兼容各种浏览器和触屏设备。用户可以使用这个插件来创建一个原始的滚动网站。 在线演示 标签:pagePiling
jquery滚动广告插件,效果不错,兼容不同的浏览器,这点很好。
jquery全屏滚动插件,好用,直接调用就可以制作漂亮高大上的网站了