JS实现单行文字不间断向上滚动的方法


Posted in Javascript onJanuary 29, 2015

本文实例讲述了JS实现单行文字不间断向上滚动的方法。分享给大家供大家参考。具体分析如下:

前几天帮一个朋友写了一个单行文字不间断向上滚动的JS效果,现在分享给需要的weber。先看HTML和CSS代码:

CSS:

.wrap{padding:10px;border:1px #ccc solid; width:500px;margin:20px auto;}

.roll-wrap{height:130px;overflow:hidden;}

HTML:

<div class="wrap">

    <div class="roll-wrap" id="roll-wrap">

        <ul>

            <li>JS文本向上滚动1</li>

            <li>JS文本向上滚动2</li>

            <li>JS文本向上滚动3</li>

            <li>JS文本向上滚动4</li>

            <li>JS文本向上滚动5</li>

            <li>JS文本向上滚动6</li>

            <li>JS文本向上滚动7</li>

        </ul>

    </div>

</div>

该动画效果的原理是 先将ul向上滚动一个li的高度,滚动完后将ul里面的第一个li放到ul的末尾,这时原第二个li变成了ul里面的第一个li,然后再重复上面的动作,就这样不断重复实现不间断滚动。

JS(jQuery)代码:

function scrollTxt(){

    var controls={}, 

        values={},

        t1=200, /*播放动画的时间*/

        t2=2000, /*播放时间间隔*/

        si;

    controls.rollWrap=$("#roll-wrap");

    controls.rollWrapUl=controls.rollWrap.children();

    controls.rollWrapLIs=controls.rollWrapUl.children();

    values.liNums=controls.rollWrapLIs.length;

    values.liHeight=controls.rollWrapLIs.eq(0).height();

    values.ulHeight=controls.rollWrap.height();

    this.init=function(){

        autoPlay();

        pausePlay();

    }

    /*滚动*/

    function play(){

        controls.rollWrapUl.animate({"margin-top" : "-"+values.liHeight}, t1, function(){

            $(this).css("margin-top" , "0").children().eq(0).appendTo($(this));

        });

    }

    /*自动滚动*/

    function autoPlay(){

        /*如果所有li标签的高度和大于.roll-wrap的高度则滚动*/

        if(values.liHeight*values.liNums > values.ulHeight){

            si=setInterval(function(){

                play();

            },t2);

        }

    }

    /*鼠标经过ul时暂停滚动*/

    function pausePlay(){

        controls.rollWrapUl.on({

            "mouseenter":function(){

                clearInterval(si);

            },

            "mouseleave":function(){

                autoPlay();

            }

        });

    }

}

new scrollTxt().init();

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
JQuery Tips(3) 关于$()包装集内元素的改变
Dec 14 Javascript
js左侧三级菜单导航实例代码
Sep 13 Javascript
比较新旧两个数组值得增加和删除的JS代码
Oct 30 Javascript
jQuery动画显示和隐藏效果实例演示(附demo源码下载)
Dec 31 Javascript
javascript使用Promise对象实现异步编程
Mar 01 Javascript
JavaScript字符串_动力节点Java学院整理
Jun 27 Javascript
深入浅析AngularJs模版与v-bind
Jul 06 Javascript
4 种滚动吸顶实现方式的比较
Apr 09 Javascript
inquirer.js一个用户与命令行交互的工具详解
May 18 Javascript
Vue将页面导出为图片或者PDF
Aug 17 Javascript
Vue父子组件传值的一些坑
Sep 16 Javascript
React Hook用法示例详解(6个常见hook)
Apr 28 Javascript
JS清除选择内容的方法
Jan 29 #Javascript
IE中鼠标经过option触发mouseout的解决方法
Jan 29 #Javascript
JS判断是否360安全浏览器极速内核的方法
Jan 29 #Javascript
jQuery中$.each使用详解
Jan 29 #Javascript
jQuery显示和隐藏 常用的状态判断方法
Jan 29 #Javascript
移动设备web开发首选框架:zeptojs介绍
Jan 29 #Javascript
JSON格式的键盘编码对照表
Jan 29 #Javascript
You might like
Yii2-GridView 中让关联字段带搜索和排序功能示例
2017/01/21 PHP
js 在定义的时候立即执行的函数表达式(function)写法
2013/01/16 Javascript
JQuery伸缩导航练习示例
2013/11/13 Javascript
javascript自动给文本url地址增加链接的方法分享
2014/01/20 Javascript
使用Angular和Nodejs、socket.io搭建聊天室及多人聊天室
2015/08/21 NodeJs
实例详解ECMAScript5中新增的Array方法
2016/04/05 Javascript
jQuery数据检索中根据关键字快速定位GridView指定行的实现方法
2016/06/08 Javascript
Angular2从搭建环境到开发步骤详解
2016/10/17 Javascript
JS中解决谷歌浏览器记住密码输入框颜色改变功能
2017/02/13 Javascript
bootstrap table表格使用方法详解
2017/04/26 Javascript
基于webpack.config.js 参数详解
2018/03/20 Javascript
QRCode.js二维码生成并能长按识别
2018/10/16 Javascript
Node+OCR实现图像文字识别功能
2018/11/26 Javascript
vue实现div可拖动位置也可改变盒子大小的原理
2020/09/16 Javascript
[05:20]卡尔工作室_DOTA2新手教学_DOTA2超强新手功能
2013/04/22 DOTA
[01:38]DOTA2 2015国际邀请赛中国区预选赛 Showopen
2015/06/01 DOTA
Python 元组(Tuple)操作详解
2014/03/11 Python
基于python的Tkinter实现一个简易计算器
2015/12/31 Python
Python使用post及get方式提交数据的实例
2019/01/24 Python
Python实现E-Mail收集插件实例教程
2019/02/06 Python
Python对ElasticSearch获取数据及操作
2019/04/24 Python
聊聊python里如何用Borg pattern实现的单例模式
2019/06/06 Python
python算法题 链表反转详解
2019/07/02 Python
python+opencv实现车牌定位功能(实例代码)
2019/12/24 Python
Python 基于FIR实现Hilbert滤波器求信号包络详解
2020/02/26 Python
jenkins+python自动化测试持续集成教程
2020/05/12 Python
《小石潭记》教学反思
2014/02/13 职场文书
技校毕业生自荐信范文
2014/03/07 职场文书
运动会横幅标语
2014/06/17 职场文书
植树节标语
2014/06/27 职场文书
我的未来不是梦演讲稿
2014/09/02 职场文书
2015年节能减排工作总结
2015/05/14 职场文书
大学毕业生自我鉴定范文
2019/06/21 职场文书
MySQL表的增删改查基础教程
2021/04/07 MySQL
MySQL 5.7常见数据类型
2021/07/15 MySQL
Golang 1.18 多模块Multi-Module工作区模式的新特性
2022/04/11 Golang