插件总结

 一、新闻轮播插件

1、引入jquery和gslide插件

1 <script type="text/javascript" src="jquery-1.8.3.js"></script>
2 <script type="text/javascript" src="gslide.js"></script>

以下是gslide插件代码

/**
 * 澶氬浘婊氬姩鎻掍欢
 *
 * @module gSlider
 * @author liuqing
 */
;(function($) {
    /**
    * gSlider绫?(姝ょ被鏄鏈夌被锛岃皟鐢ㄩ渶瑕佷娇鐢‥xample涓殑鏂规硶)111111
    *
    *
    * @class gSlider
    * @param {Object} element 瀹炰緥鍖栧璞″湪姝om瀵硅薄鍐呮墽琛?
    * @param {Object} options 鍙傛暟
    * @example
        $(xx).gSlider({
            isAuto: true,                     // 鏄惁鑷姩婊氬姩
            isImgLoad: false,                // 鏄惁鍥剧墖鍚庡姞杞?
            dataOriginal: ‘data-original‘,  //鍥剧墖瀛樺偍灞炴€у悕
            speed: 3000,                 // 闂撮殧鏃堕棿锛堟绉掞級
            direction: ‘forward‘,           // 鍚戝墠 -  forward / 鍚戝悗 - backward
            duration: 500,                     // 绉诲姩閫熷害锛堟绉掞級
            showNum: 1,                     // 鏄剧ず涓暟
            stepLen: 1,                     // 姣忔婊氬姩姝ラ暱
            type: ‘horizontal‘,             // 姘村钩婊氬姩 - horizontal / 鍨傜洿婊氬姩 - vertical
            btnGo: {left: null, right:null},
            beforeCallback: function(){},
            afterCallback: function(){}
        });
    * @constructor
    */
    function gSlider(element, options) {
        this.elements = {
            wrap: element,
            ul: element.children(‘ul‘),
            li: element.children(‘ul‘).children(‘li‘)
        };
        this.len = this.elements.li.length;
        this.settings = options;

        this.pos = this.index = 0;

        this.timer = null;
        this.init();
    }
    gSlider.prototype = {
        /**
         * @method 鍒濆鍖?
         */
        init: function() {
            var self = this;
            self.elements.ul.append(self.elements.ul.html());
            self.settings.beforeCallback.call(self);
            self.setStyle();
            self.move();
            self.bind();
            self.settings.afterCallback.call(self);
            self.whenhover();
            self.imgLoad();
        },
        setStyle: function(){
            var self = this;
            switch (self.settings.type) {
                case ‘horizontal‘:
                    self.leftOrTop = ‘left‘;
                    self.oneWidth = self.settings.oneWidth ? self.settings.oneWidth : self.elements.li.eq(0).outerWidth();
                    self.elements.ul.width(self.oneWidth * self.len * 2);
                    break;
                case ‘vertical‘:
                    self.leftOrTop = ‘top‘;
                    self.oneWidth = self.settings.oneWidth ? self.settings.oneWidth : self.elements.li.eq(0).outerHeight();
                    self.elements.li.css({
                        ‘float‘: ‘none‘,
                        ‘display‘: ‘block‘
                    });
                    self.elements.ul.height(self.oneWidth * self.len * 2);
                    break;
            };
            self.wraperSize = self.oneWidth * self.len;
            self.stepWidth = self.oneWidth * self.settings.stepLen;
            self.elements.ul.css({
                position: ‘relative‘
            });
        },
        bind: function(){
            var self = this;
            debugger;
            $(self.settings.btnGo.left).bind(‘click‘, function (){
                clearInterval(self.timer);
                self.index++;
                self.moving(self.elements.ul[0], -self.stepWidth*self.index, function(){
                    self.move();
                });
            });
            $(self.settings.btnGo.right).bind(‘click‘, function (){
                clearInterval(self.timer);
                self.index--;
                if (self.index<0) {
                    if (self.index === -1) {
                        self.pos = -self.stepWidth * self.len;
                    };
                    self.index = self.len + self.index;
                };
                self.moving(self.elements.ul[0], -self.stepWidth*self.index, function(){
                    self.move();
                });
            });
        },
        move: function(){
            var self = this;
            if (self.settings.isAuto) {
                self.timer = setInterval(function(){
                    self.index++;
                    self.moving(self.elements.ul[0], -self.stepWidth*self.index);
                }, self.settings.speed);
            }
        },
        moving: function(obj, iTarget, callback){
            var self = this;
            self.imgLoad();
            callback = callback || function(){}
            clearInterval(obj.tLimer);
            obj.tLimer = setInterval(function (){
                var speed = (iTarget-self.pos)/6;
                speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed);

                if(self.pos == iTarget){
                    clearInterval(obj.tLimer);
                    callback();
                }

                self.pos += speed;

                obj.style[self.leftOrTop] = (self.pos % self.wraperSize)+‘px‘;

            }, 30);
        },
        whenhover:function(){
            var self = this;
            self.elements.ul.hover(function(){
                clearInterval(self.timer);
            },function(){
                self.move();
            });
        },
        /**
         * @method 鍥剧墖鍔犺浇
         */
        imgLoad: function(){
            var self = this;
            if(!self.settings.isImgLoad){return false}
            var len = Math.abs(self.index % self.len) *  self.settings.showNum;
                liNode = self.elements.ul.children().slice(len, len + self.settings.showNum);
            liNode.each(function(){
                var imgNode = $(this).find(‘img‘);
                if(imgNode.attr(self.settings.dataOriginal)){
                    imgNode.attr(‘src‘, imgNode.attr(self.settings.dataOriginal)).removeAttr(self.settings.dataOriginal);
                }
            });

        }
    };

  $.fn.gSlider = function(options) {
      options = $.extend({}, $.fn.gSlider.defaults, options);
      this.each(function(){
          new gSlider($(this), options);
      });
  };
  /**
   * @property 榛樿閰嶇疆
   * @type {Object}
   *
   */
  $.fn.gSlider.defaults = {
      oneWidth: null,
      isAuto: true,                     // 鏄惁鑷姩婊氬姩
      isImgLoad: false,                // 鏄惁鍥剧墖鍚庡姞杞?
      dataOriginal: ‘data-original‘,  //鍥剧墖瀛樺偍灞炴€у悕
      speed: 3000,                 // 闂撮殧鏃堕棿锛堟绉掞級
      direction: ‘forward‘,           // 鍚戝墠 -  forward / 鍚戝悗 - backward
      duration: 500,                     // 绉诲姩閫熷害锛堟绉掞級
      showNum: 1,                     // 鏄剧ず涓暟
      stepLen: 1,                     // 姣忔婊氬姩姝ラ暱
      type: ‘horizontal‘,             // 姘村钩婊氬姩 - horizontal / 鍨傜洿婊氬姩 - vertical
      btnGo: {left: null, right:null},
      beforeCallback: function(){},
      afterCallback: function(){}
  };
})(jQuery);

2、编写HTML

  注意必须写id

1     <div id="notice-c" class="notice-c">
2         <ul>
3             <li><a href="#">管理平台运行支撑技术系统示目通过验收</a><time class="time">[2016-02-05]</time></li>
4             <li><a href="#">管理平台运行支撑技术系统示范工程项目通过验收</a><time class="time">[2016-02-05]</time></li>
5             <li><a href="#">考字化管理平台运行支撑技术目通过验收</a><time class="time">[2016-02-05]</time></li>
6     </div>

3、调用js插件

  这个插件自带有点击跳转新闻前后的按钮,需要给他class名,向前为bprve,向后为bnext;

  调用记住left:‘.bnex‘,right:‘.bprve‘

        $(function(){
             if( $("#notice-b li").length > 1 ){
            $("#notice-b").gSlider({
                time:5000,
                btnGo:{left:‘.bnext‘,right:‘.bprve‘},
                type:‘vertical‘//水平 horizontal
            });
          }
        });
时间: 2024-08-15 02:51:07

插件总结的相关文章

使用 Chrome 浏览器插件 Web Scraper 10分钟轻松实现网页数据的爬取

本文标签: WebScraper Chrome浏览器插件 网页数据的爬取 使用Chrome 浏览器插件 Web Scraper 可以轻松实现网页数据的爬取,不写代码,鼠标操作,点哪爬哪,还不用考虑爬虫中的登陆.验证码.异步加载等复杂问题. Web Scraper插件 Web Scraper 官网中的简介: Web Scraper Extension (Free!)Using our extension you can create a plan (sitemap) how a web site

eclipse插件之Findbugs、Checkstyle、PMD安装及使用

一.什么是Findbugs.checkstyle.PMD Findbugs.checkstyle和PMD都可以作为插件插入eclipse,当然也有单独的工具可以实现他们的功能,比如Findbugs Tool就可以不必插入eclipse就可以使用. 三者的功能如下表: 工具 目的 检查项 FindBugs 检查.class 基于Bug Patterns概念,查找javabytecode(.class文件)中的潜在bug 主要检查bytecode中的bug patterns,如NullPoint空指

eclipse安装java ee插件方法步骤

1.本人以前使用的MyEclipse进行Javaweb开发,但是后来由于myeclipse实在太臃肿,经常在运行的过程中不流畅 (可能电脑内存也不是太高吧)   !所以坚决换用eclipse,但是问题来了,下载的eclipse因为是标准版所以也不支持Javaweb开发,所以要来配置一下开发环境,安装Javaee开发插件   ,以下为安装步骤 1.1 在Eclipse中菜单help选项中选择install new software选项 1.2 在work with 栏中输入 http://down

Myeclipse10 安装Aptana插件

安装步骤: 1.下载aptana3.2 Eclipse Plugin插件. 下载地址:http://update1.aptana.org/studio/3.2/024747/index.html 2.在java文件夹下新建文件夹pluginsNew,在里面新建aptana_update_024747文件夹(这个文件夹名根据自己下载的版本自己写),再在里面新建eclipse文件夹,解压出features与plugins文件夹,COPY到 D:\java\pluginsNew\aptana_upda

这是一款借助chrome 插件的微信机器人

1.chrome kit微信机器人简介(github:https://github.com/LinuxForYQH/chrome_kit) 借助chrome 插件 js注入来实现消息的发送 chrome devtool api的调用来监听https请求 打开微信登录界面,在扫码登录前必须先打开toolbar(F12 或者 鼠标右键检查),如上所说因为借助了chrome devtool api所以需要打开toolbar才能执行相关dev域的js. 2.相关开发原理介绍 https://develo

使用插件bootstrap-table实现表格记录的查询、分页、排序等处理

在业务系统开发中,对表格记录的查询.分页.排序等处理是非常常见的,在Web开发中,可以采用很多功能强大的插件来满足要求,且能极大的提高开发效率,本随笔介绍这个bootstrap-table是一款非常有名的开源表格插件,在很多项目中广泛的应用.Bootstrap-table插件提供了非常丰富的属性设置,可以实现查询.分页.排序.复选框.设置显示列.Card view视图.主从表显示.合并列.国际化处理等处理功能,而且该插件同时也提供了一些不错的扩展功能,如移动行.移动列位置等一些特殊的功能,插件可

页面滚动图片等元素动态加载插件jquery.scrollLoading.js

如果一个网页很长,那么该页面的加载时间也会相应的较长.而这里给大家介绍的这个jQuery插件scrollLoading的作用则是,对页面元素进行动态加载,通俗的说就是滚到哪就加载到哪,屏幕以下看不见的就不用加载了.这样还可以在一定程度上节省服务器资源.该插件作者的网页将该插件的功能和使用方法描述的非常详细,这里把最一般最普遍的使用情况给大家展现一下. 插件作者:http://www.zhangxinxu.com/ 首先我们需要加载jQuery库和本插件js文件. (jquery.scrollLo

怎样将「插件化」接入到项目之中?

本期移动开发精英社群讨论的主题是「插件化」,上网查了一下,发现一篇 CSDN 博主写的文章<Android 使用动态载入框架DL进行插件化开发>.此处引用原作者的话: 随着应用的不断迭代,应用的体积不断增大,项目越来越臃肿,冗余添加.项目新功能的加入,无法确定与用户匹配性,发生严重异常往往牵一发而动全身,仅仅能紧急公布补丁版本号,强制用户进行更新.结果频繁的更新.反而easy减少用户使用黏性,或者是公司业务的不断发展,同系的应用越来越多,传统方式须要通过用户量最大的主项目进行引导下载并安装.

Android插件实例——360 DroidPlugin具体解释

在中国找到钱不难,但你的一个点子不意味着是一个创业.你谈一个再好的想法,比方我今天谈一个创意说,新浪为什么不收购GOOGLE呢?这个创意非常好.新浪一收购GOOGLE.是不是新浪就变成老大了?你从哪儿弄来钱?怎么去整合GOOGLE呢: 之前写过有关于Android 插件方向的文章,解析了一下Android的插件原理与执行方式.非常多小伙伴都问我.为什么不把我制作的插件放到Github上,让大家共享一下. 我仅仅能说.大哥啊,这个插件是我在公司研发的时候制作的,商业机密.不能开源啊. 刚好.近期逛

jQuery插件ImgAreaSelect 实例讲解一(头像上传预览和裁剪功能)

上一节随笔中,我们已经知道了关于jQuery插件ImgAreaSelect基本的知识:那么现在看一下实例: 首先,要知道我们应该实现什么功能? (1)图片能够实现上传预览功能 (2)拖拽裁剪图片,使其能够显示裁剪后的区域 (3)显示要裁剪区域的坐标 其次,该如何引用该插件呢? 那就具体看一下吧! 第一步:先将样式和文件包引入(根据你自己的位置引入) <!--引入imgareaselect的css样式--> <link rel="stylesheet" type=&qu