基于jQuery淡入淡出可自动切换的幻灯插件,原型是前几天写的一个幻灯效果,因为一个小bug卡了两天,然后清空之前写的代码,重新整理思路写出来的. 思维是个很诡异的东西,一旦陷入某个死角,很难逃出. 惟有冷却一些时间,完全抛开旧的思维,才能找到新的出路.
其实就是一个幻灯效果,考虑到使用方便,就封装成一个插件了.
插件特点
1. 参数高度自定义;
2. 可重复调用且与不影响;
3. 插件文件小,压缩后仅1.04k,开发版3.29k.
演示及下载
点此查看DEMO点此下载插件
使用方法
1. 引入jQuery库文件及jQuery.iFadeSlide.pack.js插件文件(若页面有其他js文件,可与之合并以减小http请求),引入位置自定义;
- <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
- <script src="js/jquery.iFadeSldie.pack.js"></script>
样式文件无须引入,若使用DEMO中的结构,可直接将样式合并于项目页面中.建议样式自定义.
2. 在页面中调用插件并传入切换元素的参数, 若为空或未传入的参数,均按插件中的默认参数执行.例如如下代码是DEMO演示中的三组幻灯切换调用:
- $(function(){
- //SAMPLE-A调用---未传入任何参数,调用默认参数
- $('div#slide').iFadeSlide();
- //SAMPLE-B调用---传入新的参数,将覆盖原有参数,未传入的使用默认值
- $('div#slide_b').iFadeSlide({
- field: $('div#slide_b a'),
- icocon:$('div.ico_b'),
- hoverCls: 'high_b',
- curIndex: 2, //索引值0起始,故此处设置为第3项高亮
- interval: 2000
- });
- //SAMPLE-C调用---传入新的参数,将覆盖原有参数,未传入的使用默认值
- $('div#slide_c').iFadeSlide({
- field: $('div#slide_c img'),
- icocon: $('div.ico_c'),
- outTime:100,
- inTime: 200
- });
- });
注意,调用插件部分须置入插件文件引用后面.
核心代码
;(function($){
$.fn.extend({
iFadeSlide: function(options){
//插件参数初始化
var iset={
field:$('div#slide img'), //切换元素集合
icocon:$('div.ico'), //索引容器
hoverCls:'high', //切换至当前索引高亮显示样式
curIndex:0, //默认高亮显示的索引值,索引值为0起始
outTime:200, //元素淡出时间(ms)
inTime:300, //元素淡入时间(ms)
interval:3000 //元素切换间隔时间(ms)
};
options=options || {};
$.extend(iset,options); //合并参数对象.若options传入有新值则覆盖iset中对应值,否则使用默认值.
//根据切换元素量生成对应的索引值列表并插入到切换区域中
var ulcon = "<ul>";
iset.field.each(function(i){
ulcon = ulcon + '<li>' + (i + 1) + '</li>';
});
ulcon += '</ul>';
iset.icocon.append(ulcon);
var ico = iset.icocon.find('li'); //索引列表集合
var size = iset.field.size(); //切换元素量
var index = 0; //初始索引值
var clearFun=null;
//淡出淡入函数
var fadeFun = function(obj){
index = ico.index(obj); //取当前索引值
//淡出当前可见元素,并通过索引值找到要淡入的元素
iset.field.filter(':visible').fadeOut(iset.outTime, function(){
iset.field.eq(index).fadeIn(iset.inTime);
});
//为当前索引添加高亮样式并移除同级元素中的高亮样式
$(obj).addClass(iset.hoverCls).siblings().removeClass(iset.hoverCls);
};
//切换函数
var changeFun = function(){
index++; //累积索引值
if (index == size){index = 0}; //当索引值等于切换元素量时,初始化为0
ico.eq(index).trigger('mouseleave'); //为当前的索引模拟鼠标划出元素区事件
};
//自动切换函数
var scrollFun = function(){
clearFun = setInterval(function(){
changeFun()
}, iset.interval);
};
//停止自动切换函数
var stopFun = function(){
clearInterval(clearFun);
};
scrollFun(); //初始自动切换
//索引区域鼠标划入停止自动切换并切换元素至当前索引,鼠标划出初始化索引至当前值(否则鼠标划出切换会乱)
ico.hover(function(){
stopFun();
fadeFun(this);
}, function(){
fadeFun(this);
}).eq(iset.curIndex).mouseleave(); //初始高亮显示的索引值
//切换区域鼠标划入停止自动切换,划出继续自动
iset.field.hover(function(){
stopFun();
}, function(){
scrollFun();
});
}
});
})(jQuery);
$.fn.extend({
iFadeSlide: function(options){
//插件参数初始化
var iset={
field:$('div#slide img'), //切换元素集合
icocon:$('div.ico'), //索引容器
hoverCls:'high', //切换至当前索引高亮显示样式
curIndex:0, //默认高亮显示的索引值,索引值为0起始
outTime:200, //元素淡出时间(ms)
inTime:300, //元素淡入时间(ms)
interval:3000 //元素切换间隔时间(ms)
};
options=options || {};
$.extend(iset,options); //合并参数对象.若options传入有新值则覆盖iset中对应值,否则使用默认值.
//根据切换元素量生成对应的索引值列表并插入到切换区域中
var ulcon = "<ul>";
iset.field.each(function(i){
ulcon = ulcon + '<li>' + (i + 1) + '</li>';
});
ulcon += '</ul>';
iset.icocon.append(ulcon);
var ico = iset.icocon.find('li'); //索引列表集合
var size = iset.field.size(); //切换元素量
var index = 0; //初始索引值
var clearFun=null;
//淡出淡入函数
var fadeFun = function(obj){
index = ico.index(obj); //取当前索引值
//淡出当前可见元素,并通过索引值找到要淡入的元素
iset.field.filter(':visible').fadeOut(iset.outTime, function(){
iset.field.eq(index).fadeIn(iset.inTime);
});
//为当前索引添加高亮样式并移除同级元素中的高亮样式
$(obj).addClass(iset.hoverCls).siblings().removeClass(iset.hoverCls);
};
//切换函数
var changeFun = function(){
index++; //累积索引值
if (index == size){index = 0}; //当索引值等于切换元素量时,初始化为0
ico.eq(index).trigger('mouseleave'); //为当前的索引模拟鼠标划出元素区事件
};
//自动切换函数
var scrollFun = function(){
clearFun = setInterval(function(){
changeFun()
}, iset.interval);
};
//停止自动切换函数
var stopFun = function(){
clearInterval(clearFun);
};
scrollFun(); //初始自动切换
//索引区域鼠标划入停止自动切换并切换元素至当前索引,鼠标划出初始化索引至当前值(否则鼠标划出切换会乱)
ico.hover(function(){
stopFun();
fadeFun(this);
}, function(){
fadeFun(this);
}).eq(iset.curIndex).mouseleave(); //初始高亮显示的索引值
//切换区域鼠标划入停止自动切换,划出继续自动
iset.field.hover(function(){
stopFun();
}, function(){
scrollFun();
});
}
});
})(jQuery);
相关推荐
本文将深入探讨“2款jQuery图片自动切换常用广告代码”的核心概念、实现方式以及应用背景。 首先,jQuery图片自动切换功能通常用于网站上的轮播广告或幻灯片展示。这种功能可以吸引用户的注意力,提升用户体验,并...
这两款jQuery图片自动切换广告代码提供了基本的轮播功能,但实际应用中可能需要根据项目需求进行定制,例如添加键盘控制、全屏模式、自动适应不同屏幕尺寸等。在开发过程中,要确保代码的可维护性和性能优化,如合理...
本篇文章将详细讲解如何利用jQuery实现图片自动切换的幻灯片效果,这是一个常见的网页动态效果,常用于网站的轮播图或者产品展示。 首先,我们需要了解jQuery的基本使用。jQuery的核心理念是“Write Less, Do More...
通过以上步骤,我们可以创建一个基本的jQuery图片自动切换效果。然而,为了满足更复杂的需求,可以考虑使用成熟的轮播插件,如Bootstrap的carousel组件或Slick等,它们提供了丰富的配置选项和预设效果,能更好地适应...
本主题将深入探讨如何使用jQuery来制作一个图片自动播放的功能,这在创建滑动展示、轮播图或者产品展示等场景中非常常见。 首先,我们需要理解基本的HTML结构,这通常包括一个包含多张图片的`<div>`元素,每张图片...
标题"Jquery图片定时切换展示"表明我们要讨论的是如何利用JQuery来自动更换网页上的显示图片,以达到类似幻灯片的效果。这个效果通常用于产品展示、新闻轮播或者背景图片切换等场景。 描述中的"实现网页图片定时...
1. 2款jQuery图片自动切换常用广告代码 2. jquery+css五屏焦点图淡入淡出+圆形按钮切换广告图片代码 3. jQuery+CSS实用图片收缩与放大效果插件 4. jquery+div实现同时滑动切换的图文展示特效插件下载 5. ...
在提供的文件名"soChange"中,我们可以推断这可能是一个具体的jQuery图片切换插件。这个插件可能包含了上述提到的所有功能,并且进行了封装,方便开发者在项目中快速集成和自定义。 ### 使用与自定义 在实际应用中...
**jQuery上下自动切换图片相册**是一款基于JavaScript库jQuery实现的动态图片展示工具,它能够为网站添加一种优雅且互动的图片浏览体验。这个相册设计的独特之处在于它支持用户通过点击或使用上下导航键来无缝地在...
总之,"jQuery图片自动手动切换展示"这个案例是一个很好的学习材料,它展示了如何利用jQuery实现图片轮播功能,结合自动切换和手动切换,为网页增添互动性。通过理解并实践这个案例,开发者可以进一步掌握jQuery的...
在这个"jquery定时自动切换banner广告图片动画插件示例"中,我们将深入探讨如何使用jQuery实现自动切换的广告轮播效果。 首先,我们需要了解jQuery的基本用法。jQuery的核心功能包括选择器(用于找到页面中的HTML...
在“jquery 图片左右切换”这个主题中,我们主要讨论如何利用 jQuery 实现一个图片轮播功能,使得用户可以通过点击按钮在多张图片之间进行左右切换。这种功能常见于产品展示、相册浏览等场景,提供了良好的用户体验...
"JQuery淡入淡出自动切换图片特效"就是一种常见的实现方式,它利用jQuery库的动画功能,使图片在页面上以淡入淡出的方式自动切换,既美观又具有交互性。接下来,我们将深入探讨这个知识点。 首先,jQuery是一个轻量...
在本文中,我们将深入探讨jQuery图片切换效果的实现方法,基于提供的"jquery图片切换案例"。这九种不同的案例展示了如何使用jQuery库轻松地创建动态、吸引人的图片展示,为网页设计增添更多互动性。 首先,jQuery是...
在这个"Jquery实现图片自动切换"的Demo中,我们将探讨如何利用jQuery的特性来创建一个动态的图片切换功能。 首先,我们需要在HTML中设置基础结构。通常,我们会创建一个包含多张图片的`<div>`容器,并将这些图片以`...
1. **自动轮播**:可以设置定时器实现图片的自动切换,增加`setInterval`函数实现周期性的图片更换。 2. **导航点**:为每张图片添加对应的导航点,用户可以通过点击导航点直接跳转到指定的图片。 3. **触发动画**:...
// 如果需要自动切换,可以添加定时器 setInterval(function() { if (currentIndex == $('#image-slider a').length - 1) { currentIndex = 0; } else { currentIndex++; } $('#image-slider a').eq...