基于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 相关文章推荐
在chrome中window.onload事件的一些问题
Mar 01 Javascript
Javascript的数组与字典用法与遍历对象的属性技巧
Nov 07 Javascript
JQuery的自定义事件代码,触发,绑定简单实例
Aug 01 Javascript
跟我学习javascript的异步脚本加载
Nov 20 Javascript
使用contextMenu插件实现Bootstrap table弹出右键菜单
Feb 20 Javascript
JS完成画圆圈的小球
Mar 07 Javascript
详解Vue用axios发送post请求自动set cookie
May 10 Javascript
Vue 拦截器对token过期处理方法
Jan 23 Javascript
微信小程序实现聊天对话(文本、图片)功能
Jul 06 Javascript
对angularJs中自定义指令replace的属性详解
Oct 09 Javascript
vue中选中多个选项并且改变选中的样式的实例代码
Sep 16 Javascript
JavaScript实现鼠标经过表格某行时此行变色
Nov 20 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
用函数读出数据表内容放入二维数组
2006/10/09 PHP
PHP基于CURL进行POST数据上传实例
2014/11/10 PHP
php微信公众号开发(2)百度BAE搭建和数据库使用
2016/12/15 PHP
thinkphp框架使用JWTtoken的方法详解
2019/10/10 PHP
解决IE下select标签innerHTML插入option的BUG(兼容IE,FF,Opera,Chrome,Safari)
2010/05/13 Javascript
浅谈Javascript事件模拟
2012/06/27 Javascript
在css加载完毕后自动判断页面是否加入css或js文件
2014/09/10 Javascript
JavaScript设置表单上传时文件个数的方法
2015/08/11 Javascript
js实现鼠标点击文本框自动选中内容的方法
2015/08/20 Javascript
jQuery实现Meizu魅族官方网站的导航菜单效果
2015/09/14 Javascript
JS+CSS实现的蓝色table选项卡效果
2015/10/08 Javascript
JavaScript事件处理的方式(三种)
2016/04/26 Javascript
jQuery基于扩展实现的倒计时效果
2016/05/14 Javascript
js提交form表单,并传递参数的实现方法
2016/05/25 Javascript
详细谈谈javascript的对象
2016/07/31 Javascript
JS获取checkbox的个数简单实例
2016/08/19 Javascript
Vue.js鼠标悬浮更换图片功能
2017/05/17 Javascript
bootstrap动态添加面包屑(breadcrumb)及其响应事件的方法
2017/05/25 Javascript
vue组件jsx语法的具体使用
2018/05/21 Javascript
Vue 设置axios请求格式为form-data的操作步骤
2019/10/29 Javascript
[34:47]完美世界DOTA2联赛PWL S2 Magma vs LBZS 第一场 11.18
2020/11/18 DOTA
使用Turtle画正螺旋线的方法
2017/09/22 Python
谈谈python中GUI的选择
2018/03/01 Python
Python基于递归和非递归算法求两个数最大公约数、最小公倍数示例
2018/05/21 Python
python re正则匹配网页中图片url地址的方法
2018/12/20 Python
Django REST framework 分页的实现代码
2019/06/19 Python
python 命令行传入参数实现解析
2019/08/30 Python
Python如何使用OS模块调用cmd
2020/02/27 Python
在PyTorch中使用标签平滑正则化的问题
2020/04/03 Python
如何用Python 加密文件
2020/09/10 Python
CSS3绘制六边形的简单实现
2016/08/25 HTML / CSS
现代绅士日常奢侈品:Todd Snyder
2019/12/13 全球购物
NFL官方在线商店:NFLShop
2020/07/29 全球购物
电子专业推荐信范文
2013/11/18 职场文书
护理专业大学生自我推荐信
2014/01/25 职场文书
报到证办理个人委托书
2014/10/06 职场文书