`
菊花一斤
  • 浏览: 19680 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

jQuery实现可自动切换的幻灯片效果插件代码

阅读更多
jQuery实现可自动切换的幻灯片效果插件代码
1. 用户快速划过按钮时不触发鼠标事件;
2. 鼠标划入当前图片按钮时不闪烁;
3. 简化并优化代码.
使用方法就不详述了, 请参见源码及相关注释
$.fn.ifadeslide = function(iset){
/*
  * iset可选参数说明:
  * iset.field==>幻灯区域内的图片集
  * iset.ico==>按钮钩子
  * iset.high==>按钮高亮样式
  * iset.interval==>图片切换时间
  * iset.leavetime==>不触发鼠标划入事件的最大时间值
  * iset.fadeintime==>淡入时间
  * iset.fadeouttime==>淡出时间
  * 调用方式$(document).ifadeslide({field:'...',ico:'...',...})
  */
    iset = $.extend({high:'high',interval:3000,leavetime:150,fadeouttime:400,fadeintime:400},iset);
    var imgfield = $(iset.field || '#slide>img');
    var icofield = $(iset.ico || '#ico');
var curindex = 0;
    var slideinterval = iset.interval || 3000;
    var hovertime = iset.leavetime || 150;
    var fadeouttime = iset.fadeouttime || 400;
    var fadeintime = iset.fadeintime || 400;
    var icos=null, fasthoverfun = null, autoslidefun = null, hasicohighcls = null, changefun = null,max=null;;
    var icohtml = '<ul>';
max=imgfield.size();
//按图片传入对应的按钮
    imgfield.each(function(i){
        icohtml += '<li>' + (i + 1) + '</li>';
    });
    icohtml += '</ul>';
    icofield.append(icohtml);
//淡入淡出函数
    changefun = function(n){
        imgfield.filter(':visible').fadeout(fadeouttime, function(){
            imgfield.eq(n).fadein(fadeintime)
            icos.eq(n).addclass(iset.high).siblings().removeclass(iset.high);
        });
    }
    icos = icofield.find('ul>li');
//为第一个按键初始化高亮
    icos.first().addclass(iset.high);
//按钮鼠标划入划出事件
    icos.hover(function(){
        clearinterval(autoslidefun);
        curindex = icos.index(this);
        hasicohighname = $(this).hasclass(iset.high);
  //settimeout避免用户快速(无意识性划过)划过时触发事件
        fasthoverfun = settimeout(function(){
   //鼠标划入当前图片按钮时不闪烁
            if (!hasicohighname) {
                changefun(curindex);
            }
        }, hovertime);
    }, function(){
        cleartimeout(fasthoverfun);
  //自动切换
        autoslidefun = setinterval(function(){
            curindex++;
            changefun(curindex);
            if (curindex ==max ) {
    changefun(0);
                curindex = 0;
            }
        }, slideinterval)
    }).eq(0).trigger('mouseleave');

    //当鼠标划入图片区域时停止切换
    imgfield.hover(function(){
        curindex = imgfield.index(this);
        clearinterval(autoslidefun);
    }, function(){
        icos.eq(curindex).trigger('mouseleave');
    });
}

实例完整代码

<style>
.box{width:700px;height:250px}
/*sample-a*/
#slide { position:relative;width:200px; height:250px; overflow:hidden; border:1px solid #ccc; float:left}
#slide img{width:200px; height:250px;cursor:pointer}
#slide #ico{position:absolute; right:8px;bottom:6px}
#slide #ico li{background:#fff;float:left;display:block; width:15px; height:15px; line-height:15px;border:1px solid #cecece;font-family:arial, helvetica, sans-serif;text-align:center;margin:2px; padding: 1px;cursor:pointer}
#slide #ico li.high{background:#047;color:#fff;font-weight:bolder}
/*sample-b*/
#slide_b { position:relative;width:460px; height:250px; overflow:hidden; border:1px solid #ccc; float:right }
#slide_b img{width:460px; height:250px}
#slide_b .ico_b{position:absolute; right:8px;bottom:6px}
#slide_b .ico_b li{background:#fff;float:left;display:block; width:15px; height:15px; line-height:15px;border:1px solid #cecece;font-family:arial, helvetica, sans-serif;text-align:center;margin:2px; padding: 1px;cursor:pointer}
#slide_b .ico_b li.high_b{background:#a40000;color:#fff;font-weight:bolder}
/*sample-c*/
#slide_c { position:relative;width:700px; height:250px; overflow:hidden; border:1px solid #ccc; margin-top:20px; }
#slide_c img{width:700px; height:250px}
#slide_c .ico_c{position:absolute; right:8px;bottom:6px}
#slide_c .ico_c li{background:#fff;float:left;display:block; width:15px; height:15px; line-height:15px;border:1px solid #cecece;font-family:arial, helvetica, sans-serif;text-align:center;margin:2px; padding: 1px;cursor:pointer}
#slide_c .ico_c li.high{background:#000;color:#fff;font-weight:bolder}
</style>

jquery代码

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
<script>
/*******************************
* @jQuery实现可自动切换的幻灯片效果插件代码
* @jquery vesion:1.4.2
* @plugin page:http://mrthink.net/jq-plugin-ifadeslide/
* @author 3ppt.com
* @author blog http://www.3ppt.com/
* @creation date: 2011.01.11
*******************************/
$.fn.ifadeslide = function(iset){
/*
  * iset可选参数说明:
  * iset.field==>幻灯区域内的图片集
  * iset.ico==>按钮钩子
  * iset.high==>按钮高亮样式
  * iset.interval==>图片切换时间
  * iset.leavetime==>不触发鼠标划入事件的最大时间值
  * iset.fadeintime==>淡入时间
  * iset.fadeouttime==>淡出时间
  * 调用方式$(document).ifadeslide({field:'...',ico:'...',...})
  */
    iset = $.extend({high:'high',interval:3000,leavetime:150,fadeouttime:400,fadeintime:400},iset);
    var imgfield = $(iset.field || '#slide>img');
    var icofield = $(iset.ico || '#ico');
var curindex = 0;
    var slideinterval = iset.interval || 3000;
    var hovertime = iset.leavetime || 150;
    var fadeouttime = iset.fadeouttime || 400;
    var fadeintime = iset.fadeintime || 400;
    var icos=null, fasthoverfun = null, autoslidefun = null, hasicohighcls = null, changefun = null,max=null;;
    var icohtml = '<ul>';
max=imgfield.size();
//按图片传入对应的按钮
    imgfield.each(function(i){
        icohtml += '<li>' + (i + 1) + '</li>';
    });
    icohtml += '</ul>';
    icofield.append(icohtml);
//淡入淡出函数
    changefun = function(n){
        imgfield.filter(':visible').fadeout(fadeouttime, function(){
            imgfield.eq(n).fadein(fadeintime)
            icos.eq(n).addclass(iset.high).siblings().removeclass(iset.high);
        });
    }
    icos = icofield.find('ul>li');
//为第一个按键初始化高亮
    icos.first().addclass(iset.high);
//按钮鼠标划入划出事件
    icos.hover(function(){
        clearinterval(autoslidefun);
        curindex = icos.index(this);
        hasicohighname = $(this).hasclass(iset.high);
  //settimeout避免用户快速(无意识性划过)划过时触发事件
        fasthoverfun = settimeout(function(){
   //鼠标划入当前图片按钮时不闪烁
            if (!hasicohighname) {
                changefun(curindex);
            }
        }, hovertime);
    }, function(){
        cleartimeout(fasthoverfun);
  //自动切换
        autoslidefun = setinterval(function(){
            curindex++;
            changefun(curindex);
            if (curindex ==max ) {
    changefun(0);
                curindex = 0;
            }
        }, slideinterval)
    }).eq(0).trigger('mouseleave');

    //当鼠标划入图片区域时停止切换
    imgfield.hover(function(){
        curindex = imgfield.index(this);
        clearinterval(autoslidefun);
    }, function(){
        icos.eq(curindex).trigger('mouseleave');
    });
}

$(function(){
//sample-a
$(document).ifadeslide();

//sample-b
$(document).ifadeslide({
  field: $('div#slide_b a'),
  ico:$('div.ico_b'),
        high: 'high_b',
        interval: 2000
});

//sample-c
$(document).ifadeslide({
  field: $('div#slide_c img'),
  ico: $('div.ico_c'),
  fadeouttime:100,
  fadeintime: 200
});
});
</script>

html代码

<div id="demo">
<div class="box">
<!--sample-a-->
<div id="slide">
            <img src="/static-data/assets/6/619e98ef7507a105040d1a92ca70232a1eb207fd_m.jpg" title="demo" alt="demo" />
            <img src="/static-data/assets/6/178ead7c5436be41b07126a1f2053be976c53576_m.jpg" title="demo" alt="demo" />
            <img src="/static-data/assets/6/5958057370c288b30c48ac57261366f7e6613eaa_m.jpg" title="demo" alt="demo" />
            <div id="ico"></div>
</div>
<!--sample-a end-->
<!--sample-b-->
<div id="slide_b">
            <a href="http://mrthink.net/sitemap/"><img src="/static-data/assets/6/619e98ef7507a105040d1a92ca70232a1eb207fd_m.jpg" title="demo" alt="demo" /></a>
            <a href="http://mrthink.net/sitemap/"><img src="/static-data/assets/6/178ead7c5436be41b07126a1f2053be976c53576_m.jpg" title="demo" alt="demo" /></a>
            <a href="http://mrthink.net/sitemap/"><img src="/static-data/assets/6/5958057370c288b30c48ac57261366f7e6613eaa_m.jpg" title="demo" alt="demo" /></a>
            <a href="http://mrthink.net/sitemap/"><img src="/static-data/assets/6/f8bc38048259f10f07bb3fb06a5c8867dd2a4419_m.jpg" title="demo" alt="demo" /></a>
            <div class="ico_b"></div>
</div>
<!--sample-b end-->
</div>
<!--sample-c-->
<div id="slide_c">
            <img src="/static-data/assets/6/619e98ef7507a105040d1a92ca70232a1eb207fd_m.jpg" title="demo" alt="demo" />
            <img src="/static-data/assets/6/178ead7c5436be41b07126a1f2053be976c53576_m.jpg" title="demo" alt="demo" />
            <img src="/static-data/assets/6/5958057370c288b30c48ac57261366f7e6613eaa_m.jpg" title="demo" alt="demo" />
    <img src="/static-data/assets/6/f8bc38048259f10f07bb3fb06a5c8867dd2a4419_m.jpg" title="demo" alt="demo" />
            <img src="/static-data/assets/6/cd8cdf92b2519c344d1e9849fbaf238f7c6b5d13_m.jpg" title="demo" alt="demo" />
            <div class="ico_c"></div>
</div>
<!--sample-c end-->
</div>
分享到:
评论

相关推荐

    自动滚动的jQuery幻灯片代码

    描述中提到的“自动滚动的jQuery幻灯片播放图片效果”,意味着这个代码实现了一个无需用户操作就能自动切换的幻灯片。这种效果通常由一个定时器控制,每隔一段时间自动切换到下一张幻灯片。同时,为了提供更好的用户...

    jquery 幻灯片以及tabs切换插件

    在给定的场景中,可能使用的是一款基于 jQuery 的自定义幻灯片插件,它可以实现类似的效果,如内容的自动轮播、导航点指示和手动控制功能。 接下来,我们讨论 tabs 切换(Tabs Switch)。这是一种组织网页内容的...

    jquery带数字切换幻灯片效果免费下载

    使用jQuery的`.fadeIn()`和`.fadeOut()`方法来平滑地切换幻灯片,增强视觉效果。 在提供的压缩包文件中,"rhinoslider-1.05"可能是一个已经封装好的jQuery幻灯片插件。Rhino Slider是一个流行的jQuery幻灯片插件,...

    jquery简洁版图片叠加切换幻灯片效果

    在实际应用中,我们可以通过解压提供的"jquery简洁版图片叠加切换幻灯片效果"压缩包,查看源代码和示例文件,学习如何集成和自定义这个插件。这不仅有助于提升网页动态效果的制作技能,还能深入理解jQuery和CSS3在...

    jQuery网站宽屏banner幻灯片切换代码

    【jQuery网站宽屏banner幻灯片切换代码】是一款用于网页设计的特效插件,它能够实现大屏幕横幅(banner)上的多张图片自动轮播和切换,为网站增添动态视觉效果,提升用户体验。这个代码基于JavaScript库jQuery,...

    jQuery实现可自动播放图片的幻灯片播放器插件源码.zip

    本资源"jQuery实现可自动播放图片的幻灯片播放器插件源码.zip"提供了使用jQuery创建一个自动播放图片的幻灯片播放器的源代码。下面将详细探讨jQuery幻灯片播放器的实现原理和关键知识点。 1. **jQuery库基础** ...

    jQuery倾斜逐张切换幻灯片

    通过以上知识点的应用,我们可以构建出一个功能完备且视觉效果独特的jQuery倾斜逐张切换幻灯片。这个过程涉及到了前端开发的多个方面,包括DOM操作、CSS3动画、事件处理和性能优化等,是提升网页交互性的一个重要...

    jQuery图片垂直切换幻灯片代码.zip

    总的来说,"jQuery图片垂直切换幻灯片代码"是一个将jQuery的动态效果与Bootstrap的布局优势相结合的实例,它展示了如何通过JavaScript和前端框架实现创新的用户体验。对于开发者来说,理解并掌握这样的代码有助于...

    jquery带插件简洁版幻灯片效果

    2. **幻灯片插件**:一个单独的JavaScript文件,包含了实现幻灯片效果的代码,可能命名为slide-plugin.js或类似的名称。 3. **CSS样式文件**:为了控制幻灯片的外观,如过渡动画、布局和颜色,可能有一个名为styles....

    五种切换效果的jQuery幻灯片.zip

    在实际应用中,这样的jQuery幻灯片插件可以广泛应用于网站的首页、产品展示、新闻滚动等场景,提升网站的互动性和吸引力。同时,对于前端开发者来说,学习和理解这些效果的实现方式,有助于提升自身的JavaScript和...

    jquery图标菜单点击宽屏幻灯片轮播切换插件

    总结,jQuery图标菜单与宽屏幻灯片轮播切换插件是现代网页设计中不可或缺的工具,它们通过优雅的交互方式,提高了用户的浏览体验。正确理解和使用这些插件,可以帮助开发者创建出更具吸引力的网站。

    jquery slider图片插件幻灯片轮播切换代码

    在网页设计中,jQuery Slider是一种常见的元素,用于创建吸引人的图片展示效果,如幻灯片轮播。本项目提供了一款实用的jQuery Slider图片插件,具有左右箭头按钮控制功能,适合用于网站的焦点图片轮播切换。下面将...

    jQuery幻灯片插件可自动轮播和暂停的图片幻灯片代码

    【jQuery幻灯片插件:实现自动轮播与暂停功能详解】 在网页设计中,幻灯片(Slider)是一种常用的设计元素,它能够以动态、吸引人的形式展示内容,如图片、文字或视频。jQuery是一个轻量级的JavaScript库,提供了...

    jQuery新闻组图幻灯片切换代码

    "jQuery新闻组图幻灯片切换代码"是一个实现这种效果的技术方案,它利用流行的JavaScript库jQuery,为网站的新闻或图片展示创建一个自动切换的幻灯片组件。这个组件通常用于在有限的空间内展示多张图片或新闻摘要,...

    非常漂亮的100个 jquery前端案例,包含幻灯片切换、图片缩放、相册、放大镜、图片拖着滚动等.zip

    非常漂亮的100个 jquery前端案例,包含幻灯片切换、图片缩放、相册、放大镜、图片拖着滚动等,可以做为你的学习设计参考。 jquery+css五屏焦点图淡入淡出+圆形按钮切换广告图片代码 jQuery+CSS实用图片收缩与放大效果...

    jQuery幻灯片滑动块状区域覆盖切换代码.zip

    本资源“jQuery幻灯片滑动块状区域覆盖切换代码.zip”包含了一个实现幻灯片效果的代码示例,特别强调了滑动块状区域的覆盖切换。这种效果常常用于网站的首页展示,以吸引用户注意力并提供动态的用户体验。 幻灯片...

    Jquery插件实现图片幻灯片功能

    本文将深入探讨如何使用名为"kevinSlide"的jQuery插件来实现图片幻灯片功能。 首先,kevinSlide插件是专为创建动态、引人入胜的图片滑动展示而设计的。这种类型的组件常用于网站的首页或产品展示区域,以吸引用户...

    jQuery手机触屏滑动切换幻灯片.zip

    本项目“jQuery手机触屏滑动切换幻灯片”正是为这一目的而设计,它利用了流行的JavaScript库jQuery以及专业的swiper.js插件,为移动端用户提供了流畅的滑动浏览体验。 jQuery是一个轻量级的JavaScript库,它简化了...

    jQuery可快进拖动切换幻灯片sampSlider.zip

    jQuery的sampSlider是一款高效、灵活且用户友好的幻灯片插件,专为实现快速前进、拖动切换功能而设计。这款插件适用于网站的焦点图或幻灯片展示,可以提升用户体验,使得内容浏览更加流畅。在本文中,我们将深入探讨...

    jquery html5响应式幻灯片插件网站响应式全屏幻灯片轮播

    "jQuery HTML5响应式幻灯片插件"是实现这种效果的一种工具,它结合了jQuery库和HTML5技术,以创建适应各种屏幕尺寸的全屏幻灯片轮播。 jQuery是一个广泛使用的JavaScript库,它简化了DOM操作、事件处理、动画制作...

Global site tag (gtag.js) - Google Analytics