当前位置: 首页 > news >正文

jquery 文本上下滚动

【jQuery插件】textSlider 文本滚动

jQuery.textSlider.js

 

;(function($) {
    $.fn.textSlider = function(settings) {
        settings = jQuery.extend({
            speed: "normal",
            line: 2,
            timer: 1000
        }, settings);

        return this.each(function() {
            $.fn.textSlider.scllor($(this), settings);
        });
    };

    $.fn.textSlider.scllor = function($this, settings) {
        var ul = $("ul:eq(0)", $this);
        var timerID;
        var li = ul.children();
        var _btnUp = $(".up:eq(0)", $this);
        var _btnDown = $(".down:eq(0)", $this);
        var liHight = $(li[0]).height();
        var upHeight = 0 - settings.line * liHight;

        var scrollUp = function() {
            _btnUp.unbind("click", scrollUp);
            ul.animate({marginTop: upHeight}, settings.speed, function() {
                for (i = 0; i < settings.line; i++) {
                     ul.find("li:first").appendTo(ul);
                }
                ul.css({marginTop: 0});
                _btnUp.bind("click", scrollUp);
            });
        };

        var scrollDown = function() {
            _btnDown.unbind("click", scrollDown);
            ul.css({marginTop: upHeight});
            for (i = 0; i < settings.line; i++) {
                ul.find("li:last").prependTo(ul);
            }
            ul.animate({marginTop: 0}, settings.speed, function() {
                _btnDown.bind("click", scrollDown);
            });
        };

        var autoPlay = function() {
            timerID = window.setInterval(scrollUp, settings.timer);
        };

        var autoStop = function() {
            window.clearInterval(timerID);
        };

        ul.hover(autoStop, autoPlay).mouseout();
        _btnUp.css("cursor", "pointer").click(scrollUp);
        _btnUp.hover(autoStop, autoPlay);
        _btnDown.css("cursor","pointer").click(scrollDown);
        _btnDown.hover(autoStop, autoPlay);
    };
})(jQuery);

demo.html

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <style>
        *{margin:0;padding:0;}
        .scrollText{width:300px;height:100px;overflow:hidden;border:#ccc 1px solid;line-height:25px;}
        .up{width:50px;height:50px;background:#f90;cursor:pointer;}
        .down{width:50px;height:50px;background:#960;cursor:pointer;}
    </style>
    <script src="jquery-1.5.2.min.js"></script>
    <script src="jQuery.textSlider.js"></script>
</head>
<body>
    <p>一行滚动演示:</p>
    <div id="scrollDiv">
        <div class="scrollText">
            <ul>
                <li>这是公告标题的第一行</li>
                <li>这是公告标题的第二行</li>
                <li>这是公告标题的第三行</li>
                <li>这是公告标题的第四行</li>
                <li>这是公告标题的第五行</li>
                <li>这是公告标题的第六行</li>
                <li>这是公告标题的第七行</li>
                <li>这是公告标题的第八行</li>
                <li>这是公告标题的第9行</li>
                <li>这是公告标题的第10行</li>
                <li>这是公告标题的第11行</li>
                <li>这是公告标题的第12行</li>
            </ul>
        </div>
        <div class="up">up</div>
        <div class="down">down</div>  
    </div>
    <p>多行滚动演示:</p>
    <div id="scrollDiv2">
        <div class="scrollText">
            <ul>
                <li>这是公告标题的第一行</li>
                <li>这是公告标题的第二行</li>
                <li>这是公告标题的第三行</li>
                <li>这是公告标题的第四行</li>
                <li>这是公告标题的第五行</li>
                <li>这是公告标题的第六行</li>
                <li>这是公告标题的第七行</li>
                <li>这是公告标题的第八行</li>
                <li>这是公告标题的第9行</li>
                <li>这是公告标题的第10行</li>
                <li>这是公告标题的第11行</li>
                <li>这是公告标题的第12行</li>
            </ul>
        </div>
        <div class="up">up</div>
        <div class="down">down</div>    
    </div>
    <script>
        $(document).ready(function() {
            $("#scrollDiv").textSlider({line: 1, speed: 500, timer: 3000});
            $("#scrollDiv2").textSlider({line: 2, speed: 500, timer: 3000});
        });
    </script>
</body>
</html>

 

相关文章:

  • Ubuntu18.04 配置 alias 永久生效 永久设置别名的方法
  • Windows CMD命令行程序中 无限死循环 执行一段命令
  • 如何在 Ubuntu18.04上 安装并配置 Burp Suite 社区版本
  • Ubuntu18.04 安装 genymotion 安卓模拟器 的方法记录
  • 隐藏后再显示 element.search.input.focus() 无效的解决
  • 小程序支付提示 商户号mch_id与appid不匹配 的解决
  • 一行代码 让电脑用系统声音 说出 “I love you” 可死循环
  • 设置 fiddler 不抓取屏蔽谷歌浏览器的数据包 的简单方法
  • 完美解决 用 Fiddler 在火狐浏览器 抓https请求包 的配置
  • 在 Ubuntu 18.04 系统下 修改系统hosts文件的简单方法
  • Ubuntu18.04 简单快速安装并配置 fiddler-linux抓包工具
  • JavaScript DOM 编程艺术指南 第12章源代码 图片素材
  • javascript dom编程艺术指南 convertToGS 设置灰度无效
  • mac中谷歌浏览器 查看源代码快捷键
  • 易语言 拼图验证码
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • 2017 年终总结 —— 在路上
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • Git学习与使用心得(1)—— 初始化
  • golang中接口赋值与方法集
  • JS笔记四:作用域、变量(函数)提升
  • nfs客户端进程变D,延伸linux的lock
  • nginx(二):进阶配置介绍--rewrite用法,压缩,https虚拟主机等
  • ReactNativeweexDeviceOne对比
  • React-生命周期杂记
  • 服务器从安装到部署全过程(二)
  • 规范化安全开发 KOA 手脚架
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 深度解析利用ES6进行Promise封装总结
  • 使用 QuickBI 搭建酷炫可视化分析
  • 使用API自动生成工具优化前端工作流
  • 为什么要用IPython/Jupyter?
  • AI又要和人类“对打”,Deepmind宣布《星战Ⅱ》即将开始 ...
  • FaaS 的简单实践
  • ​卜东波研究员:高观点下的少儿计算思维
  • #1014 : Trie树
  • #stm32整理(一)flash读写
  • (Java)【深基9.例1】选举学生会
  • (附源码)ssm智慧社区管理系统 毕业设计 101635
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (译)2019年前端性能优化清单 — 下篇
  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
  • (转)linux下的时间函数使用
  • (转)清华学霸演讲稿:永远不要说你已经尽力了
  • .form文件_SSM框架文件上传篇
  • .gitignore
  • .net 7 上传文件踩坑
  • .NET 8.0 中有哪些新的变化?
  • .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能)
  • .net 后台导出excel ,word
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件
  • .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions)
  • .Net语言中的StringBuilder:入门到精通
  • @Controller和@RestController的区别?