首页 > 软件开发 > JQUERY >

jquery幻灯片插件开发图文教程

来源:互联网 2023-03-17 00:52:10 435

对于前端开发人员来说,jquery是必需掌据的一门语言技术,而jquery插件开发又是jquery中的学习难点,虽然网络中jquery插件已经相当丰富,但是,面对调试中出现的各种问题,和插件的二次扩展,显得尤为的不方便。这是自已开发插件满中项目的需求,就显得非常必要的事。yBY办公区 - 实用经验教程分享!

工具/原料

  • jquery.js

方法/步骤

  • 1

    定义html格式yBY办公区 - 实用经验教程分享!

    div id="zSlider">yBY办公区 - 实用经验教程分享!

    ul class="Zslider-img">yBY办公区 - 实用经验教程分享!

    li>a href="#">img src="img/1.png" title="杀人短片" src="杀人短片"/>/a>/li>yBY办公区 - 实用经验教程分享!

    li>a href="#">img src="img/2.png" title="剪刀手爱德华" src="剪刀手爱德华"/>/a>/li>yBY办公区 - 实用经验教程分享!

    li>a href="#">img src="img/3.png" title="独行杀手" src="独行杀手"/>/a>/li>yBY办公区 - 实用经验教程分享!

    li>a href="#">img src="img/4.png" title="龙争虎斗" src="龙争虎斗"/>/a>/li>yBY办公区 - 实用经验教程分享!

    /ul>yBY办公区 - 实用经验教程分享!

    /div>yBY办公区 - 实用经验教程分享!

  • 2

    jquery插件的标准格式-自调用匿名函数yBY办公区 - 实用经验教程分享!

    ;(function($,window,document,undefined){yBY办公区 - 实用经验教程分享!

    yBY办公区 - 实用经验教程分享!

    })(jQuery,window,document);yBY办公区 - 实用经验教程分享!

    jquery幻灯片插件开发图文教程yBY办公区 - 实用经验教程分享!

  • 3

    使用面向对象的开发插件yBY办公区 - 实用经验教程分享!

    ;(function($,window,document,undefined){yBY办公区 - 实用经验教程分享!

    var zSlider = function(element,options){yBY办公区 - 实用经验教程分享!

    yBY办公区 - 实用经验教程分享!

    }yBY办公区 - 实用经验教程分享!

    zSlider.prototype = {yBY办公区 - 实用经验教程分享!

    init:function(){yBY办公区 - 实用经验教程分享!

    yBY办公区 - 实用经验教程分享!

    }yBY办公区 - 实用经验教程分享!

    }yBY办公区 - 实用经验教程分享!

    $.fn.zSlider = function(options){yBY办公区 - 实用经验教程分享!

    var obj = new zSlider(this,options);yBY办公区 - 实用经验教程分享!

    obj.init();yBY办公区 - 实用经验教程分享!

    return this;//返回jQuery选择器的集合,以便链式调用yBY办公区 - 实用经验教程分享!

    }yBY办公区 - 实用经验教程分享!

    })(jQuery,window,document);yBY办公区 - 实用经验教程分享!

    jquery幻灯片插件开发图文教程yBY办公区 - 实用经验教程分享!

  • 4

    定义插件参数yBY办公区 - 实用经验教程分享!

    this.$element = element;yBY办公区 - 实用经验教程分享!

    this.options = $.extend(true,{yBY办公区 - 实用经验教程分享!

    animate: 'roll',yBY办公区 - 实用经验教程分享!

    direction : 'horizontal',//滚动方向,vertical重直滚动,horizontal水平滚动yBY办公区 - 实用经验教程分享!

    event:"mouseover",yBY办公区 - 实用经验教程分享!

    duration: 3000,//播放频率yBY办公区 - 实用经验教程分享!

    speed : 500,//滚动速度yBY办公区 - 实用经验教程分享!

    auto : true//是否自动播放yBY办公区 - 实用经验教程分享!

    },options);yBY办公区 - 实用经验教程分享!

    jquery幻灯片插件开发图文教程yBY办公区 - 实用经验教程分享!

  • 5

    初始化数据yBY办公区 - 实用经验教程分享!

    init:function(){yBY办公区 - 实用经验教程分享!

    this.index = 0;//开始的索引yBY办公区 - 实用经验教程分享!

    //图片宽度yBY办公区 - 实用经验教程分享!

    this.width = $('.' this.options.pic_class,this.$element).find('img:first').width();yBY办公区 - 实用经验教程分享!

    //图片高度yBY办公区 - 实用经验教程分享!

    this.height = $('.' this.options.pic_class,this.$element).find('img:first').height();yBY办公区 - 实用经验教程分享!

    //图片大包装盒yBY办公区 - 实用经验教程分享!

    this.img_wrop = this.$element.find('.' this.options.pic_class);yBY办公区 - 实用经验教程分享!

    //所有小包装盒yBY办公区 - 实用经验教程分享!

    this.img_box = this.img_wrop.children();yBY办公区 - 实用经验教程分享!

    //所有图片yBY办公区 - 实用经验教程分享!

    this.imgs = this.$element.find('.' this.options.pic_class ' img');yBY办公区 - 实用经验教程分享!

    //图片数量yBY办公区 - 实用经验教程分享!

    this.number = this.imgs.length;yBY办公区 - 实用经验教程分享!

    //设置slider的为绝对定位yBY办公区 - 实用经验教程分享!

    this.$element.css({'position':'relative'});yBY办公区 - 实用经验教程分享!

    //设置包装盒为相对定位yBY办公区 - 实用经验教程分享!

    this.img_wrop.css({'position':'absolute',top:'0px',left:'0px'});yBY办公区 - 实用经验教程分享!

    //如果为水平滚动,设置大包装盒的宽度,图片小包装盒为左浮动yBY办公区 - 实用经验教程分享!

    if(this.options.direction == 'horizontal' && this.options.animate == 'roll'){yBY办公区 - 实用经验教程分享!

    this.img_wrop.css({'width':this.width*this.number 'px'});yBY办公区 - 实用经验教程分享!

    this.img_box.css({'float':'left'});yBY办公区 - 实用经验教程分享!

    }yBY办公区 - 实用经验教程分享!

    //生成导航yBY办公区 - 实用经验教程分享!

    this.createNav();yBY办公区 - 实用经验教程分享!

    //是否自动播放yBY办公区 - 实用经验教程分享!

    if(this.options) this.play();yBY办公区 - 实用经验教程分享!

    //绑定事件,切换图片yBY办公区 - 实用经验教程分享!

    this.bind(this.options.event);yBY办公区 - 实用经验教程分享!

    },yBY办公区 - 实用经验教程分享!

    jquery幻灯片插件开发图文教程yBY办公区 - 实用经验教程分享!

  • 6

    编写生成导航方法yBY办公区 - 实用经验教程分享!

    向zSlider的原型中添加生成导航的createNav方法yBY办公区 - 实用经验教程分享!

    createNav:function(){yBY办公区 - 实用经验教程分享!

    this.$element.append('div class="nav">/div>');yBY办公区 - 实用经验教程分享!

    this.$nav = this.$element.find('.nav');yBY办公区 - 实用经验教程分享!

    for(var i =1;i=this.number;i ){yBY办公区 - 实用经验教程分享!

    this.$nav.append('span>●/span>')yBY办公区 - 实用经验教程分享!

    }yBY办公区 - 实用经验教程分享!

    this.$nav.css({'position':'absolute',yBY办公区 - 实用经验教程分享!

    'z-index':3,'left':'50%',yBY办公区 - 实用经验教程分享!

    'bottom':'20px',yBY办公区 - 实用经验教程分享!

    'text-align':'center',yBY办公区 - 实用经验教程分享!

    'font-size':'0',yBY办公区 - 实用经验教程分享!

    'border-radius':'10px',yBY办公区 - 实用经验教程分享!

    'background-color':' rgba(255,255,255,0.3)',yBY办公区 - 实用经验教程分享!

    'filter': 'alpha(opacity:30)'});yBY办公区 - 实用经验教程分享!

    this.$nav.find('span').css({'display':'inline-block',yBY办公区 - 实用经验教程分享!

    'font-size':'14px','color':'#fff',yBY办公区 - 实用经验教程分享!

    'text-decoration':'none',yBY办公区 - 实用经验教程分享!

    'cursor':'pointer',yBY办公区 - 实用经验教程分享!

    'margin':'2px'});yBY办公区 - 实用经验教程分享!

    this.$nav.find('span:first').addClass('on');yBY办公区 - 实用经验教程分享!

    this.$nav.find('.on').css({'color':'orange'});yBY办公区 - 实用经验教程分享!

    var nav_margin_left = this.$nav.width()*(-0.5);yBY办公区 - 实用经验教程分享!

    //获取导航margin-left的偏移量,必需先设置好span的大小之后在获取,否则获取的将是父素的宽度yBY办公区 - 实用经验教程分享!

    this.$nav.css({'margin-left':nav_margin_left 'px'});yBY办公区 - 实用经验教程分享!

    }yBY办公区 - 实用经验教程分享!

    jquery幻灯片插件开发图文教程yBY办公区 - 实用经验教程分享!

  • 7

    自动播放方法yBY办公区 - 实用经验教程分享!

    play : function(){yBY办公区 - 实用经验教程分享!

    var Z = this;//setInterval中的this是指向window对象,所以也要储存起来,以便在setInterval中使用yBY办公区 - 实用经验教程分享!

    if(this.element.timer)clearInterval(this.element.timer);yBY办公区 - 实用经验教程分享!

    this.element.timer = setInterval(function(){yBY办公区 - 实用经验教程分享!

    Z.index yBY办公区 - 实用经验教程分享!

    if(Z.index >= Z.number){//如果索引大于或者等于图片总数yBY办公区 - 实用经验教程分享!

    Z.index =0;yBY办公区 - 实用经验教程分享!

    }yBY办公区 - 实用经验教程分享!

    yBY办公区 - 实用经验教程分享!

    Z.$nav.removeClass('on').css({'color':'#fff'});yBY办公区 - 实用经验教程分享!

    Z.$nav.eq(Z.index).addClass('on').css({'color':'orange'});yBY办公区 - 实用经验教程分享!

    Z[Z.options.animate]();//图片动画yBY办公区 - 实用经验教程分享!

    },this.options.duration);yBY办公区 - 实用经验教程分享!

    },yBY办公区 - 实用经验教程分享!

    jquery幻灯片插件开发图文教程yBY办公区 - 实用经验教程分享!

  • 8

    图片滚动动画yBY办公区 - 实用经验教程分享!

    roll:function(){yBY办公区 - 实用经验教程分享!

    var Z= this;yBY办公区 - 实用经验教程分享!

    if(Z.options.direction == 'vertical'){//如果是垂直滚动yBY办公区 - 实用经验教程分享!

    $(Z.img_wrop).animate({yBY办公区 - 实用经验教程分享!

    top: -Z.height*Z.index 'px'yBY办公区 - 实用经验教程分享!

    },Z.options.speed);yBY办公区 - 实用经验教程分享!

    }else{yBY办公区 - 实用经验教程分享!

    $(Z.img_wrop).animate({yBY办公区 - 实用经验教程分享!

    left: -Z.width*Z.index 'px'yBY办公区 - 实用经验教程分享!

    },Z.options.speed);yBY办公区 - 实用经验教程分享!

    }yBY办公区 - 实用经验教程分享!

    },yBY办公区 - 实用经验教程分享!

  • 9

    绑定图片切换事件yBY办公区 - 实用经验教程分享!

    bind:function(type){yBY办公区 - 实用经验教程分享!

    var Z = this;yBY办公区 - 实用经验教程分享!

    this.$nav.bind(type,function(){yBY办公区 - 实用经验教程分享!

    Z.index = Z.$nav.index(this);//当前this指向的导航元素对象,例如span对象yBY办公区 - 实用经验教程分享!

    Z.$nav.removeClass('on').css({'color':'#fff'});yBY办公区 - 实用经验教程分享!

    Z.$nav.eq(Z.index).addClass('on').css({'color':'orange'});yBY办公区 - 实用经验教程分享!

    //停止当前所有动面,如果没有这一句,在快速切换导航时,图片将一直切换,直到所有动画执行完并,造成效果不佳。yBY办公区 - 实用经验教程分享!

    $(Z.img_wrop).stop();yBY办公区 - 实用经验教程分享!

    yBY办公区 - 实用经验教程分享!

    Z[Z.options.animate]();//图片动画yBY办公区 - 实用经验教程分享!

    clearInterval(Z.$element.timer);yBY办公区 - 实用经验教程分享!

    });yBY办公区 - 实用经验教程分享!

    this.$nav.bind('mouseout',function(){yBY办公区 - 实用经验教程分享!

    if(Z.options){yBY办公区 - 实用经验教程分享!

    Z.play();yBY办公区 - 实用经验教程分享!

    }yBY办公区 - 实用经验教程分享!

    })yBY办公区 - 实用经验教程分享!

    },yBY办公区 - 实用经验教程分享!

  • 10

    到此,幻灯片插件就大功告成,是不是很简单。如果你要使用淡入淡出动画,只需在zSlider的原型上添加一个淡入淡出的动画即可。yBY办公区 - 实用经验教程分享!

    jquery幻灯片插件开发图文教程yBY办公区 - 实用经验教程分享!

  • 10本页面未经授权抓取自百度经验
  • 注意事项

    • 请大家多多支持,下一个jquery插件将是百叶窗插件,多种动画效果随机播放
    • 如果你觉得我写的对你有所帮助,请投我一票

    以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!yBY办公区 - 实用经验教程分享!


    标签: JQUERY

    办公区 Copyright © 2016-2023 www.bgqu.net. Some Rights Reserved. 备案号:湘ICP备2020019561号统计代码