jQuery实现内容上下循环滚动

boyanx3个月前技术教程9



    
    仿工商银行通知的循环滚动效果
    
    
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js"></script>



<script type="text/javascript">
    textSlide();
 
    function textSlide() {
        var timerID; // 定时id
        var obj = $('#notice'); // ul对象
        var height = obj.find("li").height(); // li的高度
        var marginTop = 0 - height; // margin-top的值
        var delay = 2000; // 延时
        obj.hover(function () {
            clearInterval(timerID); // 清除定时id
        }, function () {
            timerID = setInterval(moveUp, delay); // 设置定时
        });
 
        function moveUp() {
            // animate动画
            obj.animate({"margin-top": marginTop}, function () {
                obj.find("li:first").appendTo(obj); // 将ul中的第一个元素插入到ul的末尾
                obj.css("margin-top", 0); // margin-top置为0
            });
        }
 
        timerID = setInterval(moveUp, delay); // 设置定时
    }
</script>

部分源码:

// 详见:http://www.icbc.com.cn/ICBC/html/main/js_new/main.js
// 截取部分源码如下:
// 通知
$.fn.textSlider = function (options) {
    var defaults = { //初始化参数
        scrollHeight: 30,
        line: 1,
        speed: '1500',
        timer: 5000
    };
    var opts = $.extend(defaults, options);
    this.each(function () {
        var timerID;
        var obj = $(this);
        var $ul = obj.find("ul");
        var $height = $ul.find("li").height();
        var $Upheight = 0 - opts.line * $height;
        obj.hover(function () {
            clearInterval(timerID);
        }, function () {
            timerID = setInterval(moveUp, opts.timer);
        });
 
        function moveUp() {
            $ul.animate({"margin-top": $Upheight}, opts.speed, function () {
                for (i = 0; i < opts.line; i++) { //只有for循环了才可以设置一次滚动的行数
                    $ul.find("li:first").appendTo($ul);
                }
                $ul.css("margin-top", 0);
            });
        };
        timerID = setInterval(moveUp, opts.timer);
    });
};
$(function () {
    $(".notice_main").textSlider({
        line: 1
    });
})

参考:

http://www.icbc.com.cn/ICBC/html/main/js_new/main.js

https://www.runoob.com/jquery/event-hover.html

标签: jquery.js下载

相关文章

你所不知道的&quot;网站页面显示正在加载中&quot;方法

有些网站的为了节省成本,采用的是空间,没有租服务器,那么不论是平时访问速度还是流量大时,点击半天,都还没有打开,为了提高用户体验,建议添加“正在加载中”的提示。方法如下:1、在之间添加:<scr...

我采访了一位 Pornhub 工程师,聊了这些纯纯的话题

成人网站在推动 Web 发展方面所起到的作用无可辩驳。从突破浏览器的视频能力限制,到利用 WebSocket 推送广告(防止被广告拦截器拦截),你必须不断想出各种聪明的办法,让自己处在 Web 技术创...

开发者必备:10款最佳JavaScript模板引擎

IT之家(www.ithome.com):开发者必备:10款最佳JavaScript模板引擎随着Web开发者和设计者收藏JavaScript库的数量越来越多,JavaScript也有大量流行的库:jQ...

crypto-js加解密库使用-环境部署及测试

概述如何在jquery或者js直接使用crypto-js。可以Aes,md5等加密或者加密!步骤1、下载打开github上的cryto-js的地址:https://github.com/brix/cr...

新的一年为你送上15个有用的JS类库

2015年1月,本文为你提供最有用的JS类库,可能有人会熟悉这些程序库,而有的人还不会,不管哪种情况,你都应该将这些收藏起来,我们希望这份汇总文件可以帮你发现一些未来项目中可能用到的插件程序。所以,别...

javascript中的模块系统

简介在很久以前,js只是简单的作为浏览器的交互操作而存在,一般都是非常短小的脚本,所以都是独立存在的。但是随着现代浏览器的发展,特别是nodejs的出现,js可以做的事情变得越来越多也越来越复杂。于是...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。