zoukankan      html  css  js  c++  java
  • jQuery无缝滚动插件

    插件代码

    ;(function ($) {
    
        // jQuery marquee 插件
        $.fn.marquee = function (options) {
            // 默认设置
            var defaults = {
                derection: "top",
                interval: 50
            };
            
            // 合并后的参数设置
            var options = $.extend(defaults, options);
    
            var $mar = $(this),
                 original = $mar.children().first(),
                 clone = original.clone(),
                 height = original.height(),
                 width = original.width(),
                 i = 0,
                 tId = null;  // 唯一的tId,可以通过clearTimeout(tId)清除干净
            
            // append clone to marquee
            $mar.append(clone);
    
            // scrolltop
            var scrolltop = function () {
    
                if (i < height) {
                    $mar.scrollTop(i++);
                } else {
                    i = 0;
                    $mar.scrollTop(0);
                }
    
                tId = setTimeout(scrolltop, options.interval);
            };
            
            // scrollbottom
            var scrollbottom = function () {
                
                if (i === 0) {
                    i = height;
                    $mar.scrollTop(i);
                } else {
                    $mar.scrollTop(i--);
                }
    
                tId = setTimeout(scrollbottom, options.interval);
            };
    
            // scrollleft
            var scrollleft = function () {
                
                if (i < width) {
                    $mar.scrollLeft(i++)
                } else {
                    i = 0;    
                    $mar.scrollLeft(0);
                }
    
                tId = setTimeout(scrollleft, options.interval);
            };
    
            // scrollright
            var scrollright = function () {
                
                if (i === 0) {
                    $mar.scrollLeft(width);
                    i = width;
                } else {
                    $mar.scrollLeft(i--);
                }
    
                tId = setTimeout(scrollright, options.interval);
            };
    
            // scroll to which derection
            var scrollto = {
                top: scrolltop,
                bottom: scrollbottom,
                left: scrollleft,
                right: scrollright
            };
            
            // 根据参数选择滚动函数
            tId = setTimeout(scrollto[options.derection], options.interval);
    
            // when mouse hover clearTimeout or setTimeout
            $mar.hover(function () {
                clearTimeout(tId);
            }, function () {
                tId = setTimeout(scrollto[options.derection], options.interval);
            });
        };
    })(jQuery);
    View Code

    示例一:上滚动(默认)

    <!-- html code -->
    <div class="marquee">
        <ul>
            <li>滚动吧少年</li>
            <li>滚动吧少年</li>
            <li>滚动吧少年</li>
            <li>滚动吧少年</li>
            <li>滚动吧少年</li>
            <li>滚动吧少年</li>
            <li>滚动吧少年</li>
        </ul>    
    </div>
    /*  css code  */
    .marquee{
        border:1px solid #0a0;
        width:300px;
        height:100px;
        overflow:hidden;
    }
    .marquee li{
        font-size:16px;
        line-height:1.5;
    }
    // js code:插件应用
    $(".marquee").marquee();

    示例二:左滚动

    <!-- html code -->
    <div class="marquee2">
        <ul>
            <li>滚动吧少年</li>
            <li>滚动吧少年</li>
            <li>滚动吧少年</li>
            <li>滚动吧少年</li>
            <li>滚动吧少年</li>
            <li>滚动吧少年</li>
            <li>滚动吧少年</li>
        </ul>    
    </div>
    /* css code */
    .marquee2{
        width:300px;
        height:25px;
        border:1px solid #00a;
        overflow:hidden;
        white-space: nowrap;  /* 文字超出时不换行!! */
    }
    .marquee2 ul, .marquee2 li{
        display:inline;
        font-size:16px;
        line-height:25px;
    }
    // js code:插件应用
    $(".marquee2").marquee({derection: "left", interval: 25});
  • 相关阅读:
    WebService发布服务例子
    webservice调用天气服务
    java.lang.IllegalArgumentException: java.util.zip.ZipException: invalid LOC header (bad signature)异常解决方法
    newSingleThreadScheduledExecutor连续关闭造成 java.util.concurrent.RejectedExecutionException
    自定义栈Stack 和 队列Queue
    log4j笔记----输出格式
    「newbee-mall新蜂商城开源啦」SpringBoot+MyBatis开发JavaWeb线上商城项目
    十三的博文作品
    Spring+SpringMVC+MyBatis+easyUI整合基础篇(一)项目简述及技术选型介绍
    「newbee-mall新蜂商城开源啦」 前后端分离的 Vue 版本即将开源
  • 原文地址:https://www.cnblogs.com/xiankui/p/3799330.html
Copyright © 2011-2022 走看看