美文网首页
js 实现纵向轮播

js 实现纵向轮播

作者: 前端召唤师 | 来源:发表于2019-07-31 18:28 被阅读0次

效果:


纵向滚动.gif

html:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>纵向滚动</title>
        <link rel="stylesheet" type="text/css" href="css/scrollVertical.css">
    </head>
    <script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
    <script src="js/scroll.js"></script>
    <body>
        <div id="scrollFlash" class="scrollFlash">
            <ul class="ulFlash"></ul>
        </div>
        <script type="text/javascript">
            var list = [{
                    "id": "1",
                    "name": "张一",
                },
                {
                    "id": "2",
                    "name": "王二",
                }
            ];
            if (list.length > 0) {
                $('#scrollFlash').show();
                var j = 0;
                while (j < list.length) {
                    var string = "<li>序号<span class='flashName t_center'>" +
                        list[j].id + "</span>姓名<span class='flashName t_center'>" +
                        list[j].name + "</span></li>";
                    $('.ulFlash').append(string);
                    j++;
                }
                var h = $('.ulFlash li:first-child').height() + 5;
                if (list.length > 1) {
                    $("div#scrollFlash").myScroll({
                        speed: 40, // 数值越大,速度越慢
                        rowHeight: h // li的高度
                    });
                }
            }
        </script>
    </body>
</html>

scrollVertical.css:

.t_center {
    text-align: center;
}

#scrollFlash {
    width: 80%;
    margin: 100px auto auto auto;
    height: 60px;
    background-color: lightcoral;
    line-height: 60px;
    padding: 5px;
    font-size: 40px;
    overflow: hidden;
    color: #ffffff;
}

#scrollFlash ul li {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 2px;
}

.flashName {
    max-width: 20%;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

scroll.js:

(function($){
    $.fn.myScroll = function(options){
    //默认配置
    var defaults = {
        speed:40,  //滚动速度,值越大速度越慢
        rowHeight:24 //每行的高度
    };
    
    var opts = $.extend({}, defaults, options),
              intId = [];
    
    function marquee(obj, step){
    
        obj.find("ul").animate({
            marginTop: '-=1'
        },0,function(){
                var s = Math.abs(parseInt($(this).css("margin-top")));
                if(s >= step){
                    $(this).find("li").slice(0, 1).appendTo($(this));
                    $(this).css("margin-top", 0);
                }
            });
        }
        
        this.each(function(i){
            var sh = opts["rowHeight"],speed = opts["speed"],
                              _this = $(this);
            intId[i] = setInterval(function(){
                if(_this.find("ul").height()<=_this.height()){
                    clearInterval(intId[i]);
                }else{
                    marquee(_this, sh);
                }
            }, speed);

            _this.hover(function(){
                clearInterval(intId[i]);
            },function(){
                intId[i] = setInterval(function(){
                    if(_this.find("ul").height()<=_this.height()){
                        clearInterval(intId[i]);
                    }else{
                        marquee(_this, sh);
                    }
                }, speed);
            });     
        });
    }

})(jQuery);

相关文章

  • js 实现纵向轮播

    效果: html: scrollVertical.css: scroll.js:

  • 16 JavaScript实现网站轮播特效

    html结构 css样式 js代码实现轮播 实现效果如下:

  • web常用库

    js retina.js 实现retina屏幕图片自动替换 slick.js jQuery插件,实现各种轮播图 w...

  • 项目-轮播图

    整个轮播图分为三部分:轮播指标、轮播项目及轮播导航。用boostrap实现轮播图要比用js、jQuery方便的多,...

  • 小记setTimeout

    前言:从《原生JS实现轮播(上)》中JS实现渐变效果,引出的setTimeout用法问题。 对于setInterv...

  • 使用三个view实现纵向无限轮播

    ZAScrollView 说明 ZAScrollView使用了3个view实现了纵向无限轮播的功能 下面的两个方法...

  • 轮播图—纯js(javascript)实现:

    纯js实现: 要求:算了,还是先看图吧 实现效果:图片自动轮播,鼠标移入停止,移出继续轮播点击左右按钮实现切换点击...

  • js轮播实现

    var banner=document.querySelectorAll('.banner>ul>li>a>img...

  • JS实现轮播

    1.HTML轮播框架 利用HTML先构建出轮播的基本样式,首先是包裹轮播图的容器,在这里我将其class设置为ca...

  • JS实现轮播

    前端学习时间不长,最近看完了第一遍高设,想着试着写一点东西,于是有了这个还不算好的轮播效果。(学习出处为慕课网) ...

网友评论

      本文标题:js 实现纵向轮播

      本文链接:https://www.haomeiwen.com/subject/vyitdctx.html