最近工作需要,就自己写了一个图片轮播插件,不过想到要集成到框架中,于是又用RequireJs改了一遍。

主要文件:

  • style.css
  • jquery-1.11.1.min.js
  • require.js
  • viewpager.js
  • view.js
  • index.html

viewpager.js:

define(['jquery'], function ($) {
    function ViewPager(setting) {
        var myset = {
            index: 0
        };
        setting = $.extend({}, myset, setting);
        this.init(setting);
    };
    ViewPager.prototype = {
        init: function (s) {
            this.id = s.id;
            this.list = $("#" + s.id).find("li");
            this.index = s.index;
            this.isAuto = s.isAuto;
            this.renderUI();
            this.bindUI();
        }
        , renderUI: function () {
            var inHtml = $('<div class="prev"><span class="prev_icon"></span></div><div class="next"><span class="next_icon"></span></div>');
            //选择器到指定的ID
            //inHtml.appendTo("body ul#viewpager");
            $("#" + this.id).append(inHtml);
        }
        , bindUI: function () {
            var that = this;
            if (that.isAuto) {
                setInterval(function () {
                    that.prev();
                }, 3000);
            }
            $("#" + this.id).delegate(".prev", "click", function () {
                that.prev();
            });
            $("#" + this.id).delegate(".next", "click", function () {
                that.next();
            });
        }
        , prev: function () {
            $(this.list[this.index]).animate({
                opacity: 'hide'
            }, 500);
            if (this.index < this.list.length - 1) {
                this.index++;
                this.picgo();
            }
            else {
                this.index = 0;
                this.picgo();
            }
        }
        , next: function () {
            $(this.list[this.index]).animate({
                opacity: 'hide'
            }, 500);
            if (this.index > 0) {
                this.index--;
                this.picgo();
            }
            else {
                this.index = this.list.length - 1;
                this.picgo();
            }
        }
        , picgo: function () {
            $(this.list[this.index]).css({
                "left": "0px"
            });
            $(this.list[this.index]).animate({
                opacity: 'show'
            }, 800);
        }
    };
    return {
        ViewPager: ViewPager
    }
});

view.js

require.config({
    paths: {
        "jquery": "js/jquery-1.11.1.min"
        , "viewpager": "js/viewpager"
        , "abstract": "js/abstract"
    }
});
require(['jquery', 'viewpager'], function ($, v) {
    new v.ViewPager({
        "id": "viewpager"
        , "isAuto": true
    });
    new v.ViewPager({
        "id": "viewpager1"
    });
});

index.html

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title>Component Learn</title>
    <link rel="stylesheet" href="http://mj-staples.blog.163.com/blog/css/style.css" type="text/css"> </head>

<body>
    <div class="view-main">
        <ul id="viewpager">
            <li class="active"><img src="http://mj-staples.blog.163.com/blog/img/0.jpg" alt="0.jpg" /></li>
            <li><img src="http://mj-staples.blog.163.com/blog/img/1.jpg" alt="1.jpg" /></li>
            <li><img src="http://mj-staples.blog.163.com/blog/img/2.jpg" alt="2.jpg" /></li>
            <li><img src="http://mj-staples.blog.163.com/blog/img/3.jpg" alt="3.jpg" /></li>
            <li><img src="http://mj-staples.blog.163.com/blog/img/4.jpg" alt="4.jpg" /></li>
        </ul>
    </div>
    <hr>
    <div class="view-main">
        <ul id="viewpager1">
            <li class="active"><img src="http://mj-staples.blog.163.com/blog/img/0.jpg" alt="0.jpg" /></li>
            <li><img src="http://mj-staples.blog.163.com/blog/img/1.jpg" alt="1.jpg" /></li>
            <li><img src="http://mj-staples.blog.163.com/blog/img/2.jpg" alt="2.jpg" /></li>
            <li><img src="http://mj-staples.blog.163.com/blog/img/3.jpg" alt="3.jpg" /></li>
            <li><img src="http://mj-staples.blog.163.com/blog/img/4.jpg" alt="4.jpg" /></li>
        </ul>
    </div>
    <script type="text/javascript" data-main="view" src="http://mj-staples.blog.163.com/blog/js/require.js"></script>
</body>

</html>

结构-行为-样式-requireJs实现图片轮播插件的更多相关文章

  1. PgwSlideshow-基于Jquery的图片轮播插件

    0 PgwSlideshow简介 PgwSlideshow是一款基于Jquery的图片轮播插件,基本布局分为上下结构,上方为大图轮播区域,用户可自定义图片轮播切换的间隔时间,也可以通过单击左右方向按键 ...

  2. Javascript和jQuery WordPress 图片轮播插件, 内容滚动插件,前后切换幻灯片形式显示

    用于在有限的网页空间内展示一组产品图片或者照片,同时还有非常吸引人的动画效果.本文向大家推荐12款实用的 jQuery 图片轮播效果插件,帮助你在你的项目中加入一些效果精美的图片轮播效果,希望这些插件 ...

  3. 推荐:图片轮播插件Nivo Slider

          因为项目需要一款切换样式多一些的轮播插件,不经意找到了NivoSlider,非常好用,比bootstrap要好用,而且样式丰富.值得注意的是,这款插件是在MIT协议下免费的.        ...

  4. 纯js写图片轮播插件

    最近终于写成了自己创作的图片轮播插件,使用原生js编写.与目前网上流行的轮播插件相比,功能和效果稍弱,但是使用起来相当方便. 先看html代码 <!DOCTYPE html> <ht ...

  5. 图片轮播插件Nivo Slider

    推荐:图片轮播插件Nivo Slider         因为项目需要一款切换样式多一些的轮播插件,不经意找到了NivoSlider,非常好用,比bootstrap要好用,而且样式丰富.值得注意的是, ...

  6. AdPlayBanner:功能丰富、一键式使用的图片轮播插件

    AdPlayBanner:功能丰富.一键式使用的图片轮播插件 AdPlayBanner是一个Android平台基于ViewPager实现的轮播图插件,主要用以自动或者手动地播放轮播图,提供了Fresc ...

  7. 12款经典的白富美型—jquery图片轮播插件—前端开发必备

    图片轮播是网站中的常用功能,用于在有限的网页空间内展示一组产品图片或者照片,同时还有非常吸引人的动画效果.本文向大家推荐12款实用的 jQuery 图片轮播效果插件,帮助你在你的项目中加入一些效果精美 ...

  8. Nivo Slider - 世界上最棒的 jQuery 图片轮播插件

    Nivo Slider 号称世界上最棒的图片轮播插件,有独立的 jQuery 插件和 WordPress 插件两个版本.目前下载量已经突破 1,800,000 次!jQuery 独立版本的插件主要有如 ...

  9. 图片轮播插件-carouFredSel

    carouFredSel图片轮播插件基于Jquery,比较常规的轮播插件,支持滚轮及键盘左右按键,加入其它插件可实现更加复杂的特效. 主页地址:http://caroufredsel.dev7stud ...

随机推荐

  1. CSS学习笔记:利用border绘制三角形

    在前端的笔试.面试过程中,经常会出现一些不规则图形的CSS设置,基本上多是矩形外加一个三角形.利用CSS属性可以实现三角形的生成,主要利用上下左右的边距的折叠. 1.第一种图形: .box { wid ...

  2. leetcode[164] Maximum Gap

    梅西刚梅开二度,我也记一题. 在一个没排序的数组里,找出排序后的相邻数字的最大差值. 要求用线性时间和空间. 如果用nlgn的话,直接排序然后判断就可以了.so easy class Solution ...

  3. 如何在网页启动Windows服务

    由于公司有许多windows服务进行业务的处理,所以对服务的维护也是一个比较头痛的问题,因为自己也不知道服务什么时候自动停了,而且更主要的原因是服务都是由运维部门在维护管理,开发这边没有直接操作服务的 ...

  4. Web API中使用Dependency Resolver

    Web API中使用Dependency Resolver 前言 阅读本文之前,您也可以到Asp.Net Web API 2 系列导航进行查看 http://www.cnblogs.com/aehyo ...

  5. Windows 7/8 64位下安装64位Apache 2.4.7

    准备软件: VC11 运行库 64位的apache版本 传送门:http://www.apachelounge.com/download/ 安装步骤: 修改httpd.conf配置文件 37行: Se ...

  6. 利用Bootstrap框架制作查询页面的界面

    UI设计实战篇——利用Bootstrap框架制作查询页面的界面   Bootstrap框架是一个前端UI设计的框架,它提供了统一的UI界面,简化了设计界面UI的过程(缺点是定制了界面,调整的余地不是太 ...

  7. 32位Windows7

    32位Windows7 利用多余的不能识别的电脑内存 RAMDISK5.5教程   32位Windows7 利用多余的不能识别的电脑内存 RAMDISK5.5教程 环境:Windows7 32位 Ul ...

  8. Google Adsense(Google网站联盟)广告申请指南

    Google AdSense 是一种获取收入的快速简便的方法,适合于各种规模的网站发布商.它可以在网站的内容网页上展示相关性较高的 Google 广告,并且这些广告不会过分夸张醒目.由于所展示的广告同 ...

  9. C#利用Emit反射实现AOP,以及平台化框架封装思路

    C#利用Emit反射实现AOP,以及平台化框架封装思路 这是前两天扒的一段动态代理AOP代码,用的Emit反射生成子类来实现代理模式,在这里做个小笔记,然后讨论一下AOP框架的实现思路. 首先是主函数 ...

  10. kindeditor使用方法

    一.下载编辑器 下载KindEditor最新版本(本版本为4.1.10) 下载页面:http://kindeditor.net/down.php 二.部署编辑器 解压kindeditor-x.x.x. ...