jquery图片切换插件


Posted in Javascript onMarch 16, 2015
/**

 * 图片切换插件

 * Dependence jquery-1.7.2.min.js

 **/

(function ($) {

  //调用方式 $('#silder').imgSilder({s_width:564, s_height:293, is_showTit:true, s_times:3000,css_link:'css/style.css'});  容器必须加入 id silder_list or class silder_list

  /*参考结构

    <div class="silder" id="silder">

        <ul class="silder_list" id="silder_list">

            <li>

                <img src="css/img/1.jpg" border="0" alt="刘淇同志参观北京市志愿者之家">

            </li>

            <li>

                <img src="css/img/2.jpg" border="0" alt="刘淇同志与志愿者合影">

            </li>

            <li>

                <img src="css/img/3.jpg" border="0" alt="刘淇同志到北京大学人民医院调研">

            </li>

            <li>

                <img src="css/img/4.jpg" border="0" alt="2013中国志愿服务国际交流大会在京举行">

            </li>                    

        </ul>

    </div>

  */

  $.fn.silderDefaults = { //默认参数

    s_width:500, //容器宽度

    s_height:500, //容器高度

    is_showTit:true, // 是否显示图片标题 false :不显示,true :显示

    s_times:3000, //设置滚动时间

    css_link:'css/style.css'

  };

  $.extendSilder = function (obj,opt) { //obj 元素对象,opt 参数对象

    var g = {  //公共方法, 外部可调用

      //初始化

        init: function () {

            var wh ={width:opt.s_width,height:opt.s_height};

            var pagesize=0; //页码

            var silderList = $('#silder_list',g.obj);

            var silderList_li = $('#silder_list li',g.obj);

            g.LoadCSS(opt.css_link); //样式文件导入

            g.obj.css(wh); silderList.css(wh); silderList_li.find('img').css(wh); //设置宽高属性

            var currHtml = ""; //加入播放页码 及文字描述

            if(opt.is_showTit){ //判断是否显示标题

                currHtml += "<div class='silder_desc' id='silder_desc'></div>";

            }

            img_size = silderList_li.size() ;//图片个数

            currHtml += "<ul class='silder_page' id='silder_page'>";//分页码代码注入

            for(var i=0; i < img_size; i++){

                currHtml += "<li>"+ parseInt((1 + i),10) +"</li>";

            }

            currHtml +="</ul>";

            silderList_li.eq(0).show().siblings().hide(); //初始化隐藏其他图片

            g.obj.append(currHtml);//注入分页码

            var silderPage = $('#silder_page',g.obj);

            var silderPage_li =$('#silder_page li',g.obj);

            silderPage_li.eq(0).addClass('current');

            if(opt.is_showTit){ //初始化图片描述

                $('#silder_desc').text(silderList_li.eq(0).find('img').attr('alt'));

            }

            silderPage_li.on('click',function(){

                pagesize = $(this).index();

                silderList_li.eq(pagesize).fadeIn(1000).siblings().fadeOut(100);

                $(this).addClass('current').siblings().removeClass('current');

                if(opt.is_showTit){

                    $('#silder_desc').text(silderList_li.eq(pagesize).find('img').attr('alt'));

                }

            });

            var t;

            silderList.hover(function(){window.clearInterval(t); return;},function(){ t = window.setInterval(function(){

                if(pagesize < img_size && pagesize >= 0)

                {

                    silderList_li.eq(pagesize).fadeIn(1000).siblings().fadeOut(100);

                    silderPage_li.eq(pagesize).addClass('current').siblings().removeClass('current');

                    if(opt.is_showTit){

                        $('#silder_desc').text(silderList_li.eq(pagesize).find('img').attr('alt'));

                    }

                    pagesize++;

                    if(pagesize >= img_size){

                        pagesize = 0;

                    }

                }

            },opt.s_times);}).trigger("mouseout"); //悬浮时 停止自动动画,trigger 起默认触发作用

        },

          LoadCSS:function(url){ //新建css

            var s = document.createElement("LINK");

                s.rel = "stylesheet";

                s.type = "text/css";

                s.href = url;

                document.getElementsByTagName("HEAD")[0].appendChild(s);

          }

    };

    g.obj = $(obj);

    g.init();

    return g;

  }

  $.fn.imgSilder = function (options) {

    if (this.length == 0) return; //判断对象是否存在

    this.each(function () {

      if (this.usedSilder) return;

      var opt = $.extend({}, $.fn.silderDefaults, options); //合并已赋值参数

      this.usedSilder = $.extendSilder(this, opt);

    });

  }

})(jQuery);

以上就是本文给大家分享的代码的全部内容了,希望大家能够喜欢

Javascript 相关文章推荐
JSON 编辑器实现代码
Dec 06 Javascript
JS实现自动切换文字的导航效果代码
Aug 27 Javascript
javascript与jquery动态创建html元素示例
Jul 25 Javascript
基于vue实现分页/翻页组件paginator示例
Mar 09 Javascript
详解easyui基于 layui.laydate日期扩展组件
Jul 18 Javascript
js中的reduce()函数讲解
Jan 18 Javascript
详解如何在vue项目中使用layui框架及采坑
May 05 Javascript
微信小程序自定义波浪组件使用方法详解
Sep 21 Javascript
谈谈我在vue-cli3中用预渲染遇到的坑
Apr 22 Javascript
Vue使用富文本编辑器Vue-Quill-Editor(含图片自定义上传服务、清除复制粘贴样式等)
May 15 Javascript
JavaScript中CreateTextFile函数
Aug 30 Javascript
vue 授权获取微信openId操作
Nov 13 Javascript
JavaScript中的方法重载实例
Mar 16 #Javascript
jquery中attr和prop的区别分析
Mar 16 #Javascript
JavaScript中扩展Array contains方法实例
Aug 23 #Javascript
JavaScript中消除闭包的一般方法介绍
Mar 16 #Javascript
jQuery实现的支持IE的html滑动条
Mar 16 #Javascript
JavaScript计算两个日期时间段内日期的方法
Mar 16 #Javascript
nw.js实现类似微信的聊天软件
Mar 16 #Javascript
You might like
php array_map array_multisort 高效处理多维数组排序
2009/06/11 PHP
Memcached常用命令以及使用说明详解
2013/06/27 PHP
php实现的通用图片处理类
2015/03/24 PHP
PHP 多任务秒级定时器的实现方法
2018/05/13 PHP
php实例化一个类的具体方法
2019/09/19 PHP
把jquery 的dialog和ztree结合实现步骤
2013/08/02 Javascript
详谈javascript中的cookie
2015/06/03 Javascript
jQuery获取元素父节点的方法
2016/06/21 Javascript
jQuery实现拖拽可编辑模块功能代码
2017/01/12 Javascript
js生成随机数方法和实例
2017/01/17 Javascript
快速实现jQuery多级菜单效果
2017/02/01 Javascript
js时间查询插件使用详解
2017/04/07 Javascript
详解使用angular-cli发布i18n多国语言Angular应用
2017/05/20 Javascript
jq.ajax+php+mysql实现关键字模糊查询(示例讲解)
2018/01/02 Javascript
angularjs结合html5实现拖拽功能
2018/06/25 Javascript
Vue导出页面为PDF格式的实现思路
2018/07/31 Javascript
详解vue 项目白屏解决方案
2018/10/31 Javascript
vue实现中部导航栏布局功能
2019/07/30 Javascript
js全屏事件fullscreenchange 实现全屏、退出全屏操作
2019/09/17 Javascript
[28:07]完美世界DOTA2联赛PWL S3 Phoenix vs INK ICE 第二场 12.13
2020/12/17 DOTA
python3解析库pyquery的深入讲解
2018/06/26 Python
10个python3常用排序算法详细说明与实例(快速排序,冒泡排序,桶排序,基数排序,堆排序,希尔排序,归并排序,计数排序)
2020/03/17 Python
python 对象真假值的实例(哪些视为False)
2020/12/11 Python
CSS3动画animation实现云彩向左滚动
2014/05/09 HTML / CSS
漫威玩具服装及周边商品官方购物网站:Marvel Shop
2019/05/11 全球购物
KENZO官网:高田贤三在法国创立的品牌
2019/05/16 全球购物
一组SQL面试题
2016/02/15 面试题
数据库专业英语
2012/11/30 面试题
交通专业个人自荐信格式
2013/09/23 职场文书
简单而又朴实的个人求职信分享
2013/12/12 职场文书
办理信用卡工作证明
2014/09/30 职场文书
街道党工委党的群众路线教育实践活动对照检查材料思想汇报
2014/10/05 职场文书
公务员政审材料范文
2014/12/23 职场文书
python 爬取哔哩哔哩up主信息和投稿视频
2021/06/07 Python
Python查找算法的实现 (线性、二分,分块、插值查找算法)
2022/04/24 Python