基于jquery实现轮播焦点图插件


Posted in Javascript onMarch 31, 2016

直接上代码,可能不是最好的,欢迎吐槽。

/**
 * Created by Steven on 2015/07/10/0010.
 * @email zhuttymore@126.com
 */
 
 (function ($) {
 
  $.fn.slider = function (opt) {
   opt = $.extend({
    speed:'fast',
    auto: false,
    interval: 1000
   }, opt);
 
   var _this = this;
   var index = 0;
   _this.find('.window li').width(_this.width());
 
   var animate = function(index){
    var win = _this.find('.window');
    var offset = win.parent().width();
    win.animate({'marginLeft': -offset * index}, opt.speed);
    _this.find('.tab li').removeClass('select');
    _this.find('.tab li').eq(index).addClass('select');
   };
 
   _this.find('.tab li').mouseover(function () {
    index = parseInt($(this).index());
    animate(index);
 
   });
 
   _this.find('.btn li:first-child').click(function(){
    --index;
    if(index < 0){
     index = _this.find('.window li').length - 1;
    }
    animate(index);
   });
 
   _this.find('.btn li:last-child').click(function(){
    ++index;
    if(index >= _this.find('.window li').length){
     index = 0;
    }
    animate(index);
   });
 
   if(opt.auto){
    var time = setInterval(function(){
     ++index;
     if(index >= _this.find('.window li').length){
      index = 0;
     }
     animate(index);
    },opt.interval);
   }
 
   return $.each(this,function(index,ele){});
  };
 })(jQuery);

Html

<div class="slider">
   <ul class="btn">
    <li><i class=" icon-caret-left"></i></li>
    <li><i class=" icon-caret-right"></i></li>
   </ul>
   <ul class="window">
    <li><img src="http://www.sinaimg.cn/dy/slidenews/1_img/2015_28/2841_591046_561095.jpg" alt=""/></li>
    <li><img src="http://www.sinaimg.cn/dy/slidenews/1_img/2015_28/2841_591047_607794.jpg" alt=""/></li>
    <li><img src="http://www.sinaimg.cn/dy/slidenews/1_img/2015_28/2841_591048_865919.jpg" alt=""/></li>
    <li><img src="http://www.sinaimg.cn/dy/slidenews/1_img/2015_28/2841_590990_446978.jpg" alt=""/></li>
   </ul>
   <ul class="tab">
    <li><img src="http://www.sinaimg.cn/dy/slidenews/1_img/2015_28/2841_591046_561095.jpg" alt=""/></li>
    <li><img src="http://www.sinaimg.cn/dy/slidenews/1_img/2015_28/2841_591047_607794.jpg" alt=""/></li>
    <li><img src="http://www.sinaimg.cn/dy/slidenews/1_img/2015_28/2841_591048_865919.jpg" alt=""/></li>
    <li><img src="http://www.sinaimg.cn/dy/slidenews/1_img/2015_28/2841_590990_446978.jpg" alt=""/></li>
   </ul>
  </div>

CSS

.slider {
  height: 440px;
  overflow: hidden;
  position: relative;
 }
 .slider .btn li{
  position: absolute;
  width: 30px;
  height: 50px;
  cursor: pointer;
  color: #fff;
  text-align: center;
  font-size: 40px;
  top:45%;
 }
 .slider .btn li:first-child {
 
  left:0;
 
 }
 
 .slider .btn li:last-child {
 
  right:0;
 
 }
 
 .slider img {
  width: 100%;
  height: 100%;
 }
 
 .slider .window {
  width: 40000px;
  height: 400px;
  overflow: hidden;
 }
 
 .slider .window li {
  float: left;
  overflow: hidden;
  width: 1200px;
 }
 
 .slider .tab {
  position: absolute;
  z-index: 5;
  width: 880px;
  margin: -40px auto;
  left: 13%;
 }
 
 .slider .tab li {
  float: left;
  width: 200px;
  height: 80px;
  margin-left: 18px;
  cursor: pointer;
 }

Css文件可以根据需求自己DIY, 但html的.slider里面的结构应该是一样。

Run 起来:
$('.slider').slider({auto: true, interval: 2000});

改进js结构:

/**
 * Created by Steven on 2015/07/10/0010.
 * @email zhuttymore@126.com
 */

(function ($) {

 $.fn.extend({
  slider:function (opt) {
   opt = $.extend({
    
   }, opt);
   //Do something here
   
   return $.each(this,function(index,ele){});
  }
 });

})(jQuery);

以上就是本文的全部内容,希望对大家学习jqueryt程序设计有所帮助。

Javascript 相关文章推荐
新老版本juqery获取radio对象的方法
Mar 01 Javascript
基于jquery的商品展示放大镜
Aug 07 Javascript
小米公司JavaScript面试题
Dec 29 Javascript
jquery实现带渐变淡入淡出并向右依次展开的多级菜单效果实例
Aug 22 Javascript
关于javascript中dataset的问题小结
Nov 16 Javascript
iOS和Android用同一个二维码实现跳转下载链接的方法
Sep 28 Javascript
vue实现简单实时汇率计算功能
Jan 15 Javascript
JavaScript输入框字数实时统计更新
Jun 17 Javascript
Angular表格神器ui-grid应用详解
Sep 29 Javascript
浅谈JsonObject中的key-value数据解析排序问题
Dec 06 Javascript
vue input输入框模糊查询的示例代码
May 22 Javascript
JavaScript面试技巧之数组的一些不low操作
Mar 22 Javascript
javascript中错误使用var造成undefined
Mar 31 #Javascript
详解JavaScript表单验证(E-mail 验证)
Mar 31 #Javascript
js表单验证实例讲解
Mar 31 #Javascript
javascript创建cookie、读取cookie
Mar 31 #Javascript
基于javascript实现全屏漂浮广告
Mar 31 #Javascript
JS深度拷贝Object Array实例分析
Mar 31 #Javascript
如何消除inline-block属性带来的标签间间隙
Mar 31 #Javascript
You might like
PHP 变量定义和变量替换的方法
2009/07/30 PHP
php 验证码实例代码
2010/06/01 PHP
Symfony的安装和配置方法
2016/03/17 PHP
php metaphone()函数及php localeconv() 函数实例解析
2016/05/15 PHP
PHP实现移除数组中为空或为某值元素的方法
2017/01/07 PHP
Laravel 添加多语言提示信息的方法
2019/09/29 PHP
xml和web特殊字符
2009/04/28 Javascript
jquery 简单导航实现代码
2009/09/11 Javascript
js或css实现滚动广告的几种方案
2010/01/28 Javascript
jquery.combobox中文api和例子,修复了上面的小bug
2011/03/28 Javascript
33个优秀的 jQuery 图片展示插件分享
2012/03/14 Javascript
input标签内容改变的触发事件介绍
2014/06/18 Javascript
javascript中sort()的用法实例分析
2015/01/30 Javascript
js添加绑定事件的方法
2016/05/15 Javascript
JavaScript中输出信息的方法(信息确认框-提示输入框-文档流输出)
2016/06/12 Javascript
Javascript中call,apply,bind方法的详解与总结
2016/12/12 Javascript
bootstrapValidator表单验证插件学习
2016/12/30 Javascript
如何去除富文本中的html标签及vue、react、微信小程序中的过滤器
2018/11/21 Javascript
微信小程序网络层封装的实现(promise, 登录锁)
2019/05/08 Javascript
javascript中的offsetWidth、clientWidth、innerWidth及相关属性方法
2020/05/14 Javascript
Python编程实战之Oracle数据库操作示例
2017/06/21 Python
python跳出双层for循环的解决方法
2019/06/24 Python
python爬虫 urllib模块url编码处理详解
2019/08/20 Python
3种python调用其他脚本的方法
2020/01/06 Python
python实现简单坦克大战
2020/03/27 Python
基于HTML5 Canvas的3D动态Chart图表的示例
2017/11/02 HTML / CSS
美国顶级防滑鞋:Shoes For Crews
2017/03/27 全球购物
美国顶级户外凉鞋品牌:Chacos
2017/03/27 全球购物
GIVENCHY纪梵希官方旗舰店:高定彩妆与贵族护肤品
2018/04/16 全球购物
介绍一下JNDI的基本概念
2013/07/26 面试题
机械化及自动化毕业生的自我评价分享
2013/11/06 职场文书
运动会稿件100字
2014/02/21 职场文书
大学生社会实践活动总结
2014/07/03 职场文书
医药公司采购员岗位职责
2014/09/12 职场文书
党员“四风”问题批评与自我批评思想汇报
2014/10/06 职场文书
受资助学生感谢信
2015/01/21 职场文书