首页 > 网站 > WEB开发 > 正文

jQuery插件开发之boxScroll与marquee

2024-04-27 14:07:02
字体:
来源:转载
供稿:网友

jQuery插件开发之boxScroll与marquee

BoxScroll

  常见图片轮播效果的简单实现。可以数字列表控制或者左右按键控制。逻辑很简单,下面的Marquee形成环,这个到了尽头得往回跑,看看注释就知道了。

  图片轮播GitHub:https://github.com/codetker/myBoxScroll。具体演示:http://www.梦萦无双.xyz/myBoxScroll/demo/Default.html。

  

  插件效果:  实现常见的盒子图片滚动效果(或称图片轮播)  可修改后附加缓动函数,实现多种效果,详情见缓动函数表 http://easings.net/zh-cn#easeInOutQuad  Github https://github.com/codetker/TokenFamily

  注:使用scroll-left或scroll-top的时候值只能是正数,内层必须宽度或者高度大于外层以实现scroll效果。使用margin时直接移动ul窗口来实现里面li的显示,可以在两端添加特殊效果(margin允许负值)。  html 结构(ZenCoding形式)

-div.divClass  -div.toLeft  -div.toRight  -ul.ulClass    -li.liClass*n
-ul.controlUl  -li*n

  其中div.toLeft,div.toRight,ul.controlUl可选  调用方法(详情见demo)(按需设置参数)  A.divClass调用时style为1,采用scroll-left

    $(".divClass").boxScroll({           'liHover': 'liSelected',       //设置控制滚动的类名               'child': 'li',       //实际移动元素,默认为li元素        'style': 1,          //默认为0,为margin-left,1则为scroll-left        'stepTime': 1,       //每次运动经历的时间,单位s,默认为1s        'direction': 'right',          //运动的方向,默认为right        'toLeft': '.arrowLeft',        //向左运动按钮,默认为null        'toRight': '.arrowRight',      //向右运动按钮,默认为null        'ControlUl': '.picControl ul', //控制运动按钮,默认为null        'circle': true,      //是否自动滚动,默认true        'circleTime': 5      //自动滚动时间间隔,默认5s    });

  B.ulClass调用时style为0,采用margin-left

    $(".ulClass").boxScroll({        'liHover': 'liSelected',       //设置控制滚动的类名                    'child': 'li',       //实际移动元素,默认为li元素        'style': 0,          //默认为0,为margin-left        'stepTime': 1,       //每次运动经历的时间,单位s,默认为1s        'direction': 'right',          //运动的方向,默认为right        'toLeft': '.arrowLeft',        //向左运动按钮,默认为null        'toRight': '.arrowRight',      //向右运动按钮,默认为null        'ControlUl': '.picControl ul', //控制运动按钮,默认为null        'circle': true,      //是否自动滚动,默认true        'circleTime': 5      //自动滚动时间间隔,默认5s    });

  C.div.Class or Ul.Class调用时style为1,采用fadeIn and FadeOut

    $(".picInnerBox").boxScroll({        'liHover': 'liSelected',       //设置控制滚动的类名        'child': 'li',       //实际变化元素,默认为li元素        'style': 2,          //2为fadeIn and fadeOut        'direction': 'right',          //滚动方向        'toLeft': '.arrowLeft',        //向左运动按钮,默认为null,为了避免快速多次点击,设置点击间隔时间至少0.8s        'toRight': '.arrowRight',      //向右运动按钮,默认为null,为了避免快速多次点击,设置点击间隔时间至少0.8s        'ControlUl': '.picControl ul', //控制运动按钮,默认为null        'circle': true,      //是否自动变化,默认true        'circleTime': 5,     //自动变化时间间隔,默认5s        'fadeInTime': 300,   //fadeIn时间设置        'fadeOutTime': 400   //fadeOut时间设置    });

  运行demo  最简单的方法为改Default.html中jquery对应script元素的src为本地的jquery(离线)或CDN中的jquery(在线),然后双击Default.html即可或者配置myBoxScroll.jquery.json or package.json

PS: 为了使插件总大小较小、代码复用,将A,B,C三种情况集中在一起,封装为一个原型上的方法,内部依据style控制选择。 也可以改为多个方法在绑定到jquery原型上时用style判断对应执行,以减少多余变量和不必要的判断。

Demo代码如下:

HTML

<!doctype html><html><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta content="" name="keyWords" /><meta content="" name="description" /><meta name="author" content="codetker" /><head><title>简易图片轮播插件</title><link href="style/reset.CSS" rel="stylesheet" type="text/css"><link href="style/style.css" rel="stylesheet" type="text/css"><script type="text/javascript" src="../src/jquery-1.9.1.min.js"></script><script type="text/Javascript" src="../src/jquery.codetker.boxScroll.js"></script></head><body>    <div class="wrap">        <div class="scrollBox">            <div class="picOuterBox boxStyle">                <div class="arrow arrowLeft">ToLeft</div>                <div class="arrow arrowRight">ToRight</div>                <ul class="picInnerBox boxStyle">                    <li>                        <a href="" title="">                            <img src="images/test.jpg" alt="">                        </a>                    </li>                    <li>                        <a href="" title="">                            <img src="images/test.jpg" alt="">                        </a>                    </li>                    <li>                        <a href="" title="">                            <img src="images/test.jpg" alt="">                        </a>                    </li>                    <li>                        <a href="" title="">                            <img src="images/test.jpg" alt="">                        </a>                    </li>                    <li>                        <a href="" title="">                            <img src="images/test.jpg" alt="">                        </a>                    </li>                </ul>            </div>            <div class="picControl">                <ul>                    <li  class="liSelected">1</li>                    <li>2</li>                    <li>3</li>                    <li>4</li>                    <li>5</li>                </ul>            </div>        </div>    </div><script type="text/javascript">    $(document).ready(function() {        /*$(".picOuterBox").boxScroll({            'liHover':'liSelected',            'child': 'li',            'style': 1,            'stepTime': 1,            'direction': 'right',            'toLeft': '.arrowLeft',            'toRight': '.arrowRight',            'ControlUl': '.picControl ul',            'cicle': true,            'circleTime': 5        });*/        $(".picInnerBox").boxScroll({            'liHover': 'liSelected',            'child': 'li',            'style': 0,            'stepTime': 1,            'direction': 'right',            'toLeft': '.arrowLeft',            'toRight': '.arrowRight',            'ControlUl': '.picControl ul',            'circle': true,            'circleTime': 5        });        /*$(".picInnerBox").boxScroll({            'liHover': 'liSelected',            'child': 'li',            'style': 2,            'direction': 'right',            'toLeft': '.arrowLeft',            'toRight': '.arrowRight',            'ControlUl': '.picControl ul',            'circle': true,            'circleTime': 5,            'fadeInTime': 300,            'fadeOutTime': 400        });*/    });</script></body></html>
View Code HTML

CSS

@charset "utf-8";/* CSS Document *//* to make it better to see *//* as whole */ body{    margin : 0 0;    padding: 0 0;    height : 100%;    width  : 100%; } .wrap{    font-family: "微软雅黑","宋体", Times, "Times New Roman", serif;    font-size  : 14px;    margin     : 0 0;    padding    : 0 0;    height     : 100%;    width      : 100%;    overflow   : hidden; }/* as whole end *//* innerBox */ .boxStyle{    width : 500px;    height: 256px; } .scrollBox{    position: relative;    width   : 500px;    margin  : 0 auto; } .picInnerBox{    width   : 10000px;    overflow: hidden; } .picInnerBox li{    cursor: pointer;    float : left; } .picOuterBox{    overflow:
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表