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 相关文章推荐
一个js封装的不错的选项卡效果代码
Feb 15 Javascript
Javascript之this关键字深入解析
Nov 12 Javascript
JavaScript中遍历对象的property的3种方法介绍
Dec 30 Javascript
Jquery easyui开启行编辑模式增删改操作
Jan 14 Javascript
Bootstrap布局方式详解
May 27 Javascript
jquery仿ps颜色拾取功能
Mar 08 Javascript
关于Node.js中Buffer的一些你可能不知道的用法
Mar 28 Javascript
利用vscode编写vue的简单配置详解
Jun 17 Javascript
vue webpack实用技巧总结
Apr 24 Javascript
jQuery+css last-child实现选择最后一个子元素操作示例
Dec 10 jQuery
微信小程序class封装http代码实例
Aug 24 Javascript
vscode+gulp轻松开发小程序的完整步骤
Oct 18 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
一个用php3编写的简单计数器
2006/10/09 PHP
php简单开启gzip压缩方法(zlib.output_compression)
2013/04/13 PHP
基于php验证码函数的使用示例
2013/05/03 PHP
浅谈php和js中json的编码和解码
2016/10/24 PHP
PHP中检索字符串的方法分析【strstr与substr_count方法】
2017/02/17 PHP
PHP设计模式之数据访问对象模式(DAO)原理与用法实例分析
2019/12/12 PHP
PHP设计模式之外观模式(Facade)入门与应用详解
2019/12/13 PHP
JS操作Cookies的小例子
2013/10/15 Javascript
JS操作数据库的实例代码
2013/10/17 Javascript
JavaScript实现多维数组的方法
2013/11/20 Javascript
escape编码与unescape解码汉字出现乱码的解决方法
2014/07/02 Javascript
jQuery中index()方法用法实例
2014/12/27 Javascript
Bootstrap每天必学之级联下拉菜单
2016/03/27 Javascript
Markdown与Bootstrap相结合实现图片自适应属性
2016/05/04 Javascript
javascript运算符——位运算符全面介绍
2016/07/14 Javascript
JS实现根据文件字节数返回文件大小的方法
2016/08/02 Javascript
关于JavaScript的单双引号嵌套问题
2017/08/20 Javascript
Web技术实现移动监测的介绍
2017/09/18 Javascript
Three.js如何用轨迹球插件(trackball)增加对模型的交互功能详解
2017/09/25 Javascript
探讨Vue.js的组件和模板
2017/10/27 Javascript
解决vue点击控制单个样式的问题
2018/09/05 Javascript
[42:25]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第三场
2018/04/06 DOTA
详解爬虫被封的问题
2019/04/23 Python
pandas计算最大连续间隔的方法
2019/07/04 Python
Python3的高阶函数map,reduce,filter的示例详解
2019/07/23 Python
PyInstaller运行原理及常用操作详解
2020/06/13 Python
实例讲解CSS3中的box-flex弹性盒属性布局
2016/06/09 HTML / CSS
英国花园、DIY、电器和家居用品商店:Robert Dyas
2019/03/18 全球购物
家得宝墨西哥官网:The Home Depot墨西哥
2019/11/18 全球购物
如何整合JQuery和Prototype
2014/01/31 面试题
外贸销售员求职的自我评价
2013/11/23 职场文书
作文批改评语大全
2014/04/23 职场文书
学雷锋先进个人事迹
2014/05/26 职场文书
做一个有道德的人活动实施方案
2014/08/23 职场文书
小学绿色学校申报材料
2014/08/23 职场文书
多表查询、事务、DCL
2021/04/05 MySQL