插件Home:http://www.gmarwaha.com/jquery/jcarousellite/index.php
很棒的图片滚动插件,加入国人常用的习惯:鼠标悬停的效果。
html结构要求:
<div id="handler">
<ul>
<li><img /></li>
……
</ul>
</div>
div,ul都会自动加入合适的css,而且是相对定位。基本不需要额外css控制,当然在js生效前,会乱,如果网速慢的话。
有必要对div加额外的margin等,控制其居中或怎样。div的left属性为0,是插件自动设置的,所以不要通过这个去控制位置了。
(function($) { // Compliant with jquery.noConflict()
$.fn.jCarouselLite = function(o) {
o = $.extend({
btnPrev: null,
btnNext: null,
btnGo: null,
mouseWheel: false,
auto: null,
speed: 200,
easing: null,
vertical: false,
circular: true,
visible: 3,
start: 0,
scroll: 1,
beforeStart: null,
afterEnd: null
}, o || {});
return this.each(function() { // Returns the element collection. Chainable.
var running = false, animCss=o.vertical?"top":"left", sizeCss=o.vertical?"height":"width";
var div = $(this), ul = $("ul", div), tLi = $("li", ul), tl = tLi.size(), v = o.visible;
if(tl == 0) {
return false;
}
if(o.circular) {
ul.prepend(tLi.slice(tl-v-1+1).clone())
.append(tLi.slice(0,v).clone());
o.start += v;
}
var li = $("li", ul), itemLength = li.size(), curr = o.start;
div.css("visibility", "visible");
li.css({overflow: "hidden", 'float': o.vertical ? "none" : "left"});
ul.css({margin: "0", padding: "0", position: "relative", "list-style-type": "none", "z-index": "1"});
div.css({overflow: "hidden", position: "relative", "z-index": "2", left: "0px"});
var liSize = o.vertical ? height(li) : width(li); // Full li size(incl margin)-Used for animation
var ulSize = liSize * itemLength; // size of full ul(total length, not just for the visible items)
var divSize = liSize * v; // size of entire div(total length for just the visible items)
li.css({width: li.width(), height: li.height()});
ul.css(sizeCss, ulSize+"px").css(animCss, -(curr*liSize));
div.css(sizeCss, divSize+"px"); // Width of the DIV. length of visible images
if(o.btnPrev)
$(o.btnPrev).click(function() {
return go(curr-o.scroll);
});
if(o.btnNext)
$(o.btnNext).click(function() {
return go(curr+o.scroll);
});
if(o.btnGo)
$.each(o.btnGo, function(i, val) {
$(val).click(function() {
return go(o.circular ? o.visible+i : i);
});
});
if(o.mouseWheel && div.mousewheel)
div.mousewheel(function(e, d) {
return d>0 ? go(curr-o.scroll) : go(curr+o.scroll);
});
var jcarouselliteAutoId;
if(o.auto) {
jcarouselliteAutoId = setInterval(function() {
go(curr+o.scroll);
}, o.auto+o.speed);
/* 2009年7月30日 添加鼠标浮动停止滚动 */
ul.hover(function(){
clearInterval(jcarouselliteAutoId);
},function(){
jcarouselliteAutoId = setInterval(function() {
go(curr+o.scroll);
}, o.auto+o.speed);
});
};
function vis() {
return li.slice(curr).slice(0,v);
};
function go(to) {
if(tl <= 3) {
return false;
}
if(!running) {
if(o.beforeStart)
o.beforeStart.call(this, vis());
if(o.circular) { // If circular we are in first or last, then goto the other end
if(to<=o.start-v-1) { // If first, then goto last
ul.css(animCss, -((itemLength-(v*2))*liSize)+"px");
// If "scroll" > 1, then the "to" might not be equal to the condition; it can be lesser depending on the number of elements.
curr = to==o.start-v-1 ? itemLength-(v*2)-1 : itemLength-(v*2)-o.scroll;
} else if(to>=itemLength-v+1) { // If last, then goto first
ul.css(animCss, -( (v) * liSize ) + "px" );
// If "scroll" > 1, then the "to" might not be equal to the condition; it can be greater depending on the number of elements.
curr = to==itemLength-v+1 ? v+1 : v+o.scroll;
} else curr = to;
} else { // If non-circular and to points to first or last, we just return.
if(to<0 || to>itemLength-v) return;
else curr = to;
} // If neither overrides it, the curr will still be "to" and we can proceed.
running = true;
ul.animate(
animCss == "left" ? { left: -(curr*liSize) } : { top: -(curr*liSize) } , o.speed, o.easing,
function() {
if(o.afterEnd)
o.afterEnd.call(this, vis());
running = false;
}
);
// Disable buttons when the carousel reaches the last/first, and enable when not
if(!o.circular) {
$(o.btnPrev + "," + o.btnNext).removeClass("disabled");
$( (curr-o.scroll<0 && o.btnPrev)
||
(curr+o.scroll > itemLength-v && o.btnNext)
||
[]
).addClass("disabled");
}
}
return false;
};
});
};
function css(el, prop) {
return parseInt($.css(el[0], prop)) || 0;
};
function width(el) {
return el[0].offsetWidth + css(el, 'marginLeft') + css(el, 'marginRight');
};
function height(el) {
return el[0].offsetHeight + css(el, 'marginTop') + css(el, 'marginBottom');
};
})(jQuery);
分享到:
相关推荐
**jQuery图片滚动切换插件——jCarousel Lite详解** 在网页设计中,图片的展示方式多种多样,其中一种常见且吸引用户注意力的方式就是图片滚动切换效果。`jCarousel Lite`是基于jQuery的一款轻量级的图片轮播插件,...
jCarousel图片滚动插件 jquery图片滚动 jCarousel 是个非常好看又好用的内容滚动切换插件,可以实现按序水平或垂直方向的内容列表的切换。 滚动切换的内容可以是静态的HTML内容,也可以是JS的对象列表,也可以是...
`jCarousel` 是一个非常流行的 jQuery 插件,主要用于创建可滚动的图片或内容列表。它以其强大的功能和灵活性在网页开发中被广泛使用,尤其适用于创建滑动展示、轮播效果或产品展示等应用场景。在“jcarousel点击...
"Jquery.jqzoom + jcarousel 实现图片滚动和局部图片放大镜效果"是一个典型的应用场景,它结合了两个强大的jQuery插件——jqZoom和jCarousel,以实现动态的图片浏览体验。 jqZoom是一款基于jQuery的图片放大镜插件...
在这个项目中,`jQuery` 被用来实现两种关键功能:图片滚动(通过 `jcarousel` 插件)和局部图片放大镜效果(通过 `jqueryzoom` 插件)。下面我们将详细介绍这两个功能及其背后的原理。 1. **`jcarousel` 插件**:`...
**jQuery插件_jcarousel(用于图片滚动)** `jcarousel`是一个非常流行的jQuery插件,专为创建功能丰富的图片轮播、滑动展示和旋转木马效果而设计。它提供了高度自定义的选项,使开发者能够轻松地在网站上添加交互式...
jCarousel 是一款基于jQuery的插件,专门用于创建各种类型的滚动效果,无论是图片展示还是文本滚动,都能轻松实现。 ## 1. jCarousel 的核心功能 jCarousel 提供了灵活的配置选项和丰富的API接口,使得开发者可以...
jQuery,图片滚动,jcarousel,Jquery插件 Jquery jcarousel插件应用实用:横向无缝的图片滚动,两端带左右控制按钮,需要鼠标点击按钮才会滚动,点一下滚动一下,演示文档虽然是HTML格式,但由代码来看,在ASP/PHP/中...
jCarousel是一款基于jQuery的开源轮播图插件,它提供了丰富的功能和自定义选项,使开发者能够轻松创建各种各样的滑动效果,如图片滑动、内容滚动等。这个包包含了jCarousel的核心库文件和其他相关资源,为快速集成到...
结合使用 jcarousel 和 jqzoom,电子商务网站可以创建一个强大的商品展示模块,用户可以通过轻松滚动浏览多个商品图片,同时在感兴趣的地方通过放大镜查看更清晰的细节。这不仅提升了用户体验,也有助于提高商品的...
**jQuery滚动切换传送插件jCarousel使用指南** jCarousel是一款基于jQuery库的高效、灵活且功能丰富的滚动切换插件,适用于创建各种类型的轮播、滚动列表或者产品展示。这款插件以其简单易用的API和丰富的自定义...
**jQuery轮播图插件jCarousel详解** 在网页设计中,动态展示图片或内容的轮播图已经成为一种常见的交互方式,有效地吸引用户注意力并优化用户体验。jCarousel是一款基于JavaScript库jQuery的轮播插件,以其易用性和...
jCarousel 是一个非常受欢迎的 jQuery 插件,它为开发者提供了强大的功能,使他们能够创建出优雅且功能丰富的滚动列表。这款插件支持水平和垂直方向的列表展示,并且可以通过动画效果实现平滑的过渡,从而提升用户...
内容索引:脚本资源,jQuery,图片滚动,jQuery插件 Jcarousel 是一款...注意,本插件实现的图片滚动默认状态下是不滚动的,只有点击了控制按钮,图片才会按照设置的步长或速度滚动,目前使用Jcarousel的网站不在少数。
两端带左右控制按钮,需要鼠标点击按钮才会滚动,点一下滚动一下,这是Jquery jcarousel插件应用实用例子,演示文档虽然是HTML格式,但由代码来看,在ASP/PHP/ASP.NET中使用也很方便,而且图片地址可由数据库读出,...
"jcarousel包"是一个专为前端网页设计的插件,其主要目的是为了实现高质量的图片展示效果,特别是在创建PPT(PowerPoint)风格的轮播功能时。在网页设计中,这种轮播效果通常用于产品展示、图片画廊或者新闻更新等...
jCarousel是一款基于jQuery的开源插件,主要用于创建可滚动的、水平或垂直排列的项目列表,常被应用于网站的轮播图、产品展示、新闻滚动等场景。它提供了丰富的定制选项,使开发者能够轻松地调整布局、动画效果以及...
这段代码将对ID为'mycarousel'的元素应用jCarousel插件,并设置为水平展示,每次显示3张图片,每次滚动1张。 jCarousel的HTML结构通常包含一个ul列表,其中li元素表示每张图片或内容。CSS样式则用来控制图片的布局...
jCarousel是一款广泛使用的开源图片展示插件,它支持自定义样式、多方向滚动、自动播放、分页导航等多种特性,同时兼容各种主流浏览器,包括IE、Firefox、Chrome、Safari和Opera。 jCarousel的工作原理是利用HTML、...