网站首页 手机版
 注册 登录
您现在的位置: 畅无忧设计 >> 网页特效 >> 背景图像 >> 正文
最新文章
· 带文字说明的js幻灯片代码
· 浏览器全屏浏览图片集
· 创意中国flash+xml焦点图代码
· 仿QQ商城焦点图jquery幻灯特效
· 带缓冲效果的图片幻灯片
· css和jquery配合完成-ipad向左向右拖
· 图片自动按比例缩小代码(防止页面被
· 仿QQ新闻图片浏览效果
· 一个横向滑动的图片切换容器代码
· 鼠标移入/移出改变图片透明度
热门文章
 图片上的左右箭头切换上一张下一张
 带缩略图和左右箭头自动切换的图片
 产品展示专用的jQuery图片幻灯+缩略
 Flash+XML前后按钮的超漂亮图片切换
 图片左右滚动,带有左右方向控制
 Jquery幻灯片/焦点图插件KinSlides
 JS 图片左右滚动,图片控制左右滚动
 可控制左右滚动的无缝图片滚动特效
 可控制图片放大缩小还原移动效果的
 非常漂亮的JS带缩略图的幻灯图片切
相关文章
自动切换的JS菜单
隔指定时间选项卡自动切换
自动切换的选项卡
带左右切换和数字焦点切换的图片幻灯切换
带说明的淡入式图片幻灯切换效果
有预览图的渐显渐隐图片幻灯切换效果
带缩略图和左右箭头自动切换的图片展示效
产品展示专用的jQuery图片幻灯+缩略图、左
网站常用的Flash图片焦点幻灯代码
基于JQuery的日历控件
基于jQuery的对象切换插件soChange 1.5
很酷的仿Flash图片幻灯切换效果
遮罩过渡效果的图片幻灯和选项卡菜单
腾讯客服图片幻灯切换效果
腾讯软件首页的图片幻灯切换效果
基于jQuery淡入淡出可自动切换的幻灯插件
来源:蓝色理想 更新时间:2010/8/28 23:50:18 阅读次数: 我要投稿
☉预览 ↓下载 #复制 +收藏
特效代码:
(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);
☉预览 ↓下载 #复制 +收藏
特效说明:

基于jQuery淡入淡出可自动切换的幻灯插件,原型是前几天写的一个幻灯效果,因为一个小bug卡了两天,然后清空之前写的代码,重新整理思路写出来的. 思维是个很诡异的东西,一旦陷入某个死角,很难逃出. 惟有冷却一些时间,完全抛开旧的思维,才能找到新的出路.

其实就是一个幻灯效果,考虑到使用方便,就封装成一个插件了.

插件特点:
1. 参数高度自定义;
2. 可重复调用且与不影响;
3. 插件文件小,压缩后仅1.04k,开发版3.29k.

使用方法:
1. 引入jQuery库文件及jQuery.iFadeSlide.pack.js插件文件(若页面有其他js文件,可与之合并以减小http请求),引入位置自定义;

  1. <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
  2. <script src="js/jquery.iFadeSldie.pack.js"></script>

样式文件无须引入,若使用DEMO中的结构,可直接将样式合并于项目页面中.建议样式自定义.
2. 在页面中调用插件并传入切换元素的参数, 若为空或未传入的参数,均按插件中的默认参数执行.例如如下代码是DEMO演示中的三组幻灯切换调用:

  1. $(function(){
  2.     //SAMPLE-A调用---未传入任何参数,调用默认参数
  3.     $('div#slide').iFadeSlide();
  4.     //SAMPLE-B调用---传入新的参数,将覆盖原有参数,未传入的使用默认值
  5.     $('div#slide_b').iFadeSlide({
  6.         field: $('div#slide_b a'),
  7.         icocon:$('div.ico_b'),
  8.         hoverCls: 'high_b',
  9.         curIndex: 2//索引值0起始,故此处设置为第3项高亮
  10.         interval: 2000
  11.     });
  12.     //SAMPLE-C调用---传入新的参数,将覆盖原有参数,未传入的使用默认值
  13.     $('div#slide_c').iFadeSlide({
  14.         field: $('div#slide_c img'),
  15.         icocon: $('div.ico_c'),
  16.         outTime:100,
  17.         inTime: 200
  18.     });
  19. });

注意,调用插件部分须置入插件文件引用后面.

核心代码:
(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);

其他:
本插件可自由使用,包括任何形式的商业用途,但使用时请勿必注明版权归属.
欢迎提出疑问及建议, 并期待对本插件扩展.

  • 上一篇文章:
  • 下一篇文章:
  • 关于我们 - 联系我们 - 广告服务 - 在线投稿 - 友情链接 - 网站地图 - 版权声明
    CopyRight 2008-2010, CWYDESIGN.COM - 畅无忧设计, Inc. All Rights Reserved
    滇ICP备09005765号