marquee.js 多功能无缝滚动jQuery插件

首先,来说明一下,这个“多功能”无缝滚动插件,到底怎么“多功能”?marquee.js 插件一共提供了 19 个可选的配置参数,是我所能想到的一般无缝滚动所可能涉及到的多样化了。简单来看一下这些参数有:

查看源代码打印帮助
auto: true                     // 是否自动滚动 

interval: 3000                 // 间隔时间(毫秒) 

direction: 'forward'           // 向前 -  forward / 向后 - backward 

speed: 500                     // 移动速度(毫秒) 

showNum: 1                     // 显示个数 

stepLen: 1                     // 每次滚动步长 

type: 'horizontal'             // 水平滚动 - horizontal / 垂直滚动 - vertical 

prevElement: null              // 上一组按钮元素 

prevBefore: function() {}      // 上一组移动前回调 

prevAfter: function() {}       // 上一组移动后回调 

nextElement: null              // 下一组按钮元素 

nextBefore: function() {}      // 下一组移动前回调 

nextAfter: function() {}       // 下一组移动后回调 

pauseElement: null             // 暂停按钮元素 

pauseBefore: function() {}     // 暂停前回调 

pauseAfter: function() {}      // 暂停后回调 

resumeElement: null            // 继续按钮元素 

resumeBefore: function() {}    // 继续前回调 

resumeAfter: function() {}     // 继续后回调

不过你也不需要被这么多的参数给吓到了,因为以上这些参数都是可选的,如果不填写任何参数,则以以上默认值为参数。

你一定迫不及待地想看效果了吧,我只做了一个简单的

 代码如下 复制代码
<!DOCTYPE HTML>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8" />
    <script type="text/javascript" src="libs/jquery-1.9.1.min.js"></script>
    <script type="text/javascript" src="dest/marquee.js"></script>
    <script type="text/javascript">
    $(function() {
        $('.mod').each(function() {
            var _this = $(this),
                code = $.trim($('.demo', _this).html()).replace(/textarea>/, 'textarea>');
            $('.code', _this).prepend($('<textarea>' + code + '</textarea>'));
        });
       
        $('.mod_ft').each(function() {
            $('<div class="to_top"><a href="#mod_header" title="返回顶部">返回顶部</a></div>').appendTo($(this));
        });
       
       
        $('a[href*=#]').click(function () {
            if (location.pathname.replace(/^//, '') == this.pathname.replace(/^//, '') && location.hostname == this.hostname) {
                var $target = $(this.hash);
                $target = $target.length && $target || $('[name=' + this.hash.slice(1) + ']');
                if ($target.length) {
                    var targetOffset = $target.offset().top;
                    $('html,body').animate({
                        scrollTop : targetOffset
                    }, 1000);
                    return false;
                }
            }
        });
    })
    </script>
    <style type="text/css">
        * {margin:0;padding:0;}
        body{font:12px/1.4 SimSun,Arial,Helvetica,sans-serif;color:#333;}
        strong{font-weight:700;}
        :focus{outline:0;}
        #mod_header,#mod_main,#mod_footer{width:1000px;margin:0 auto 20px;}
        #mod_footer{margin:0 auto;padding-bottom:20px;font-family:Arial;}
        #mod_header h1{font:700 22px/2 'Microsoft YaHei';text-align:center;}
        #desc pre{font:13px/15px 'Lucida Console',Arial;color:#7F9F7F;}
        .mod{border-bottom:5px dashed #f00;margin-bottom:10px;padding-bottom:10px;}
        .mod_hd{}
        .mod_hd h2{margin-bottom:10px;padding:0 20px;font:700 16px/2 'Microsoft YaHei',SimSun;color:#fff;background:#104778;text-shadow:1px 1px 1px #8DB2E3;}
        .mod_bd{}
        .mod_ft strong{display:block;margin-bottom:5px;}
        .mod_ft ul{margin-bottom:10px;}
        .mod_ft li{list-style:disc inside none;line-height:20px;}
        .demo,.code{margin-bottom:10px;}
        .code textarea{margin:0;border:0 none;padding:0;width:100%;height:150px;font:12px/1.4 'Lucida Console',Arial;background:#ddd;resize:none;}
        .to_top{text-align:right;}
        .to_top a{text-decoration:none;}
        #mod_footer{text-align:center;}
       
        .wrap,.box{margin-bottom:10px;}
        .wrap ul,.wrap .ul{overflow:hidden;clear:both;*zoom:1;}
        .wrap li,.wrap .li{list-style:none;width:120px;height:80px;padding:5px;background:#ccc;margin:2px 5px 10px 5px;font:700 30px/80px Arial;text-align:center;}
    </style>
   
    <title>marquee.js - jQuery 多功能无缝滚动插件</title>
</head>
<body>
    <!-- S Header -->
    <div id="mod_header">
        <h1>marquee.js - jQuery 多功能无缝滚动插件</h1>
        <div id="desc">
            <pre>
/***
 @description 基于 jQuery 的多功能无缝滚动插件
 @params auto: true                     # 是否自动滚动
         interval: 3000                 # 间隔时间(毫秒)
         direction: 'forward'           # 向前 -  forward / 向后 - backward
         speed: 500                     # 移动速度(毫秒)
         showNum: 1                     # 显示个数
         stepLen: 1                     # 每次滚动步长
         type: 'horizontal'             # 水平滚动 - horizontal / 垂直滚动 - vertical
         prevElement: null              # 上一组按钮元素
         prevBefore: function() {}      # 上一组移动前回调
         prevAfter: function() {}       # 上一组移动后回调
         nextElement: null              # 下一组按钮元素
         nextBefore: function() {}      # 下一组移动前回调
         nextAfter: function() {}       # 下一组移动后回调
         pauseElement: null             # 暂停按钮元素
         pauseBefore: function() {}     # 暂停前回调
         pauseAfter: function() {}      # 暂停后回调
         resumeElement: null            # 继续按钮元素
         resumeBefore: function() {}    # 继续前回调
         resumeAfter: function() {}     # 继续后回调
 @author i@wange.im
 @url https://github.com/wange1228/marquee-slide
 @blog http://wange.im
 @version 0.4.3
***/
            </pre>
        </div>
    </div>
    <!-- E Header -->
   
    <!-- S Main -->
    <div id="mod_main">
        <!-- S module A -->
        <div id="module_a" class="mod">
            <div class="mod_hd">
                <h2>用例一:不带任何参数(默认参数)</h2>
            </div>
            <div class="mod_bd">
                <div class="demo">
<div id="wrap1" class="wrap">
    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
        <li>6</li>
        <li>7</li>
        <li>8</li>
        <li>9</li>
    </ul>
</div>
<script type="text/javascript">
    $(function() {
        $('#wrap1').marquee();
    })
</script>
                </div>
                <div class="code"></div>
            </div>
            <div class="mod_ft"></div>
        </div>
        <!-- E module A -->
       
        <!-- S module B -->
        <div id="module_b" class="mod">
            <div class="mod_hd">
                <h2>用例二:DOM 结构不用 ul&gt;li</h2>
            </div>
            <div class="mod_bd">
                <div class="demo">
<div id="wrap2" class="wrap">
    <div class="ul">
        <div class="li">1</div>
        <div class="li">2</div>
        <div class="li">3</div>
        <div class="li">4</div>
        <div class="li">5</div>
        <div class="li">6</div>
        <div class="li">7</div>
        <div class="li">8</div>
        <div class="li">9</div>
    </div>
</div>
<script type="text/javascript">
    $(function() {
        $('#wrap2').marquee();
    })
</script>
                </div>
                <div class="code"></div>
            </div>
            <div class="mod_ft"></div>
        </div>
        <!-- E module B -->
       
        <!-- S module C -->
        <div id="module_c" class="mod">
            <div class="mod_hd">
                <h2>用例三:自动滚动</h2>
            </div>
            <div class="mod_bd">
                <div class="demo">
<div id="wrap3" class="wrap">
    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
        <li>6</li>
        <li>7</li>
        <li>8</li>
        <li>9</li>
    </ul>
</div>
<script type="text/javascript">
    $(function() {
        $('#wrap3').marquee({
            auto: true,
            interval: 3000,
            speed: 500,
            showNum: 5,
            stepLen: 5
        });
    })
</script>
                </div>
                <div class="code"></div>
            </div>
            <div class="mod_ft"></div>
        </div>
        <!-- E module C -->
       
        <!-- S module D -->
        <div id="module_d" class="mod">
            <div class="mod_hd">
                <h2>用例四:手动滚动</h2>
            </div>
            <div class="mod_bd">
                <div class="demo">
<div id="wrap4" class="wrap">
    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
        <li>6</li>
        <li>7</li>
        <li>8</li>
        <li>9</li>
    </ul>
</div>
<input type="button" value="上一组" id="prev4" />
<input type="button" value="下一组" id="next4" />
<script type="text/javascript">
    $(function() {
        $('#wrap4').marquee({
            auto: false,
            speed: 1000,
            showNum: 4,
            stepLen: 4,
            prevElement: $('#prev4'),
            nextElement: $('#next4')
        });
    })
</script>
                </div>
                <div class="code"></div>
            </div>
            <div class="mod_ft"></div>
        </div>
        <!-- E module D -->
       
        <!-- S module E -->
        <div id="module_e" class="mod">
            <div class="mod_hd">
                <h2>用例五:暂停/继续滚动</h2>
            </div>
            <div class="mod_bd">
                <div class="demo">
<div id="wrap5" class="wrap">
    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
        <li>6</li>
        <li>7</li>
        <li>8</li>
        <li>9</li>
    </ul>
</div>
<input type="button" value="暂停" id="pause5" />
<input type="button" value="继续" id="resume5" />
<script type="text/javascript">
    $(function() {
        $('#wrap5').marquee({
            auto: true,
            interval: 1000,
            showNum: 4,
            stepLen: 4,
            pauseElement: $('#pause5'),
            resumeElement: $('#resume5')
        });
    })
</script>
                </div>
                <div class="code"></div>
            </div>
            <div class="mod_ft"></div>
        </div>
        <!-- E module E -->
       
        <!-- S module F -->
        <div id="module_f" class="mod">
            <div class="mod_hd">
                <h2>用例六:向右滚动</h2>
            </div>
            <div class="mod_bd">
                <div class="demo">
<div id="wrap6" class="wrap">
    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
        <li>6</li>
        <li>7</li>
        <li>8</li>
        <li>9</li>
    </ul>
</div>
<script type="text/javascript">
    $(function() {
        $('#wrap6').marquee({
            auto: true,
            interval: 2000,
            speed: 800,
            showNum: 6,
            stepLen: 6,
            direction: 'backward'
        });
    })
</script>
                </div>
                <div class="code"></div>
            </div>
            <div class="mod_ft"></div>
        </div>
        <!-- E module F -->
       
        <!-- S module G -->
        <div id="module_g" class="mod">
            <div class="mod_hd">
                <h2>用例七:垂直滚动</h2>
            </div>
            <div class="mod_bd">
                <div class="demo">
<div id="wrap7" class="wrap">
    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
        <li>6</li>
        <li>7</li>
        <li>8</li>
        <li>9</li>
    </ul>
</div>
<script type="text/javascript">
    $(function() {
        $('#wrap7').marquee({
            auto: true,
            interval: 2000,
            showNum: 3,
            stepLen: 3,
            type: 'vertical'
        });
    })
</script>
                </div>
                <div class="code"></div>
            </div>
            <div class="mod_ft"></div>
        </div>
        <!-- E module G -->
       
        <!-- S module H -->
        <div id="module_h" class="mod">
            <div class="mod_hd">
                <h2>用例八:显示个数 !== 每次步长</h2>
            </div>
            <div class="mod_bd">
                <div class="demo">
<div id="wrap8" class="wrap">
    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
        <li>6</li>
        <li>7</li>
        <li>8</li>
        <li>9</li>
    </ul>
</div>
<input type="button" value="上一组" id="prev8" />
<input type="button" value="下一组" id="next8" />
<script type="text/javascript">
    $(function() {
        $('#wrap8').marquee({
            auto: false,
            prevElement: $('#prev8'),
            nextElement: $('#next8'),
            showNum: 4,
            stepLen: 3,
            type: 'vertical'
        });
    })
</script>
                </div>
                <div class="code"></div>
            </div>
            <div class="mod_ft"></div>
        </div>
        <!-- E module H -->
       
        <!-- S module I -->
        <div id="module_i" class="mod">
            <div class="mod_hd">
                <h2>用例九:支持回调</h2>
            </div>
            <div class="mod_bd">
                <div class="demo">
<div id="wrap9" class="wrap">
    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
        <li>6</li>
        <li>7</li>
        <li>8</li>
        <li>9</li>
    </ul>
</div>
<input type="button" value="上一组" id="prev9" />
<input type="button" value="下一组" id="next9" />
<script type="text/javascript">
    $(function() {
        $('#wrap9').marquee({
            auto: false,
            speed: 500,
            showNum: 3,
            stepLen: 3,
            prevElement: $('#prev9'),
            nextElement: $('#next9'),
            prevBefore: function() {
                alert('prev before callback~')
            },
            prevAfter: function() {
                alert('prev after callback~')
            },
            nextBefore: function() {
                alert('next before callback~')
            },
            nextAfter: function() {
                alert('next after callback~')
            }
        });
    })
</script>
                </div>
                <div class="code"></div>
            </div>
            <div class="mod_ft"></div>
        </div>
        <!-- E module I -->
       
    </div>
    <!-- E Main -->
   
 
</body>
</html>

,基本能涵盖这个插件的所有功能了。更多参数组合可以达到更多 DEMO 中所没有的效果。

我把 marquee.js - jQuery 多功能无缝滚动插件提交到了 github 上,有兴趣的朋友可以前往下载最新版的 marquee.js,或者根据自己的实际需要,修改、扩展这个插件也是 OK 的,欢迎 fork。

时间: 2024-10-24 04:32:24

marquee.js 多功能无缝滚动jQuery插件的相关文章

JS简单实现无缝滚动效果实例_javascript技巧

本文实例讲述了JS简单实现无缝滚动效果.分享给大家供大家参考,具体如下: <!doctype html> <title>javascript无缝滚动</title> <meta charset="utf-8" /> <meta name="keywords" content="javascript无缝滚动" /> <meta name="description"

js实现图片无缝滚动_javascript技巧

js无缝滚动效果几乎在任何网页上都能看到它的身影,有的可能是使用插件,其实使用原始的javascript比较简单. 主要的是使用js位置知识. 1.innerHTML:设置或获取元素的html标签 2.scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距 3.offsetWidth:设置或获取指定标签的宽度 4.setInterval():设置方法定时启动 5.clearInterval();清除定时器 效果图: <!DOCTYPE html> <html

js代码实现无缝滚动(文字和图片)_javascript技巧

一款适用于方案和图片的JS无缝滚动代码,可控制向左或向右滚动,代码不算复杂,而且本无缝滚动代码兼容性也挺好,你几乎不需要修改什么代码,就能使用了.测试时候把那些带标号的方块都改成图片吧,这样就更有感觉了. 代码如下: <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无缝滚动</title> <s

自己使用jquery写的一个无缝滚动的插件_jquery

效果图:   html代码: 复制代码 代码如下: <h1>无缝滚动,向右滚动</h1> <ul id="guoul1"> <li><img src="img/f1.jpg" alt="f1"/></li> <li><img src="img/f2.jpg" alt="f2"/></li> <l

marquee和js(javascript)图片无缝滚动方法集绵

下面是我在网上找的一个比较简单的marquee和js相结合解决图片无缝滚动的方法,包括向上.下.左.右四个方向滚动,下面给大家介绍一下: 先了解一下实例代码中用到的对象的几个的属性: 1.innerHTML:设置或获取位于对象起始和结束标签内的 HTML 2.scrollHeight: 获取对象的滚动高度. 3.scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离 4.scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离 5.scroll

简单实现js间歇或无缝滚动效果_javascript技巧

间歇.无缝滚动效果(用gif录制的效果不是很好,有兴趣的可以down代码),具体内容如下 代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>无缝滚动</title> <style> *{margin:0;padding:0;} .box{width: 500px;height: 400p

JS实现图片无缝滚动的完美解决

js|解决   想必大家都注意到<marquee>的不循环滚动,所以出现了很多替代脚本,或iframe或JS输出<marquee>,不管怎么做,都略显麻烦.下面说一下这个相对简单的实现思路:一个设定宽度并且隐藏超出它宽度的内容的容器demo,里面放demo1和demo2,demo1是滚动内容,demo2为demo1的直接克隆,通过不断改变demo1的scrollTop或者scrollLeft达到滚动的目的,当滚动至demo1与demo2的交界处时直接跳回初始位置,因为demo1与d

js实现图片无缝滚动特效_javascript技巧

首先,无缝滚动的第一个重点就是--动.关于怎么让页面的元素节点动起来,这就得学明白关于JavaScript中定时器的相关知识. JS中的创建定时器的方法包括两种:setTimeout和setInterval.首先它们接收的参数相同:第一个参数是一个函数,用于定时器执行,第二个参数是一个数字,代表过多少毫秒之后定时器执行函数.它们的不同在于:setTimeout 是在经过指定的时间之后,只执行一次函数,而setInterval,则是每间隔指定时间,就执行函数一次,说简单点的话,就是setInter

js实现幻灯片效果(基于jquery插件)_javascript技巧

使用jquery插件jquery.smallslider.js也能实现幻灯片效果. htm代码如下: 复制代码 代码如下: <div id="flashbox" class="smallslider"> <ul style="position: absolute; top: 0px; width: 3225px;"> <li class="" style="float: left;&qu