美文网首页
办法总比困难过系列

办法总比困难过系列

作者: 名字是乱打的 | 来源:发表于2020-02-10 13:01 被阅读0次

前端委实很麻烦啊...聊天界面的滚动栏,不靠谱的选择引入的一个小众ZUI.js和css,结果里面的各种参数太繁琐,注释也没有....


问题:我每次发送完消息没有自动滚动滚动栏到最下面,只能手动拖拽...

用了很多方法..包括对scrollTop啥玩意的赋值...结果都没有用
最后自己慢慢调试,发现对style的top赋值有作用!!!

但是呢,一堆命名我看不懂,而且没有注释,截取了一段大家看看

    var iTop = parseInt(jqChild.css("top"));
            var iTop = iTop + opts.iWheelStep*iWheelDelta;
            iTop = iTop > 0 ? 0 : iTop;
            iTop = iTop < iMinTop ? iMinTop : iTop;
            jqChild.css("top",iTop);
            fnScrollContent(jqThis,jqChild,jqScrollBox,jqScrollBar,0,opts.iTop);
        }
        //记录添加事件
        jqThis.data($.zUI.panel.sEventName,oEvent);
        //跟随滚动函数
        function fnScrollContent(jqWrapper,jqContent,jqFollowWrapper,jqFlollowContent,iOffset1,iOffset2){
            var opts = jqThis.data($.zUI.panel.sOptsName);
            var rate = (parseInt(jqContent.css("top"))-iOffset1)/(jqContent.outerHeight()-jqWrapper.innerHeight())//卷起的比率
            var iTop = (jqFlollowContent.outerHeight()-jqFollowWrapper.innerHeight())*rate + iOffset2;
            jqFlollowContent.css("top",iTop);
        }
    
        //刷新滚动条
        function fnFreshScroll(){

            var opts = jqThis.data($.zUI.panel.sOptsName);
            var iScrollBoxHeight = jqThis.innerHeight()-2*opts.iTop;
            var iRate = jqThis.innerHeight()/jqChild.outerHeight();
            var iScrollBarHeight = iScrollBarHeight = Math.round(iRate*iScrollBoxHeight);
            //如果比率大于等于1,不需要滚动条,自然也不需要添加拖拽事件
            if(iRate >= 1){
                jqScrollBox.css("height",0);
                jqScrollBar.css("height",0);
                return;
            } 
            jqScrollBox.css("height",iScrollBoxHeight);
            jqScrollBar.css("height",iScrollBarHeight);
            //计算拖拽边界,添加拖拽事件
            var oBoundary = {iMinTop:opts.iTop};
            oBoundary.iMaxTop = iScrollBoxHeight - Math.round(iRate*iScrollBoxHeight)+opts.iTop;
            oBoundary.iMinLeft = jqThis.innerWidth() - opts.iWidth - opts.iRight;
            oBoundary.iMaxLeft = oBoundary.iMinLeft;
            fnScrollContent(jqThis,jqChild,jqScrollBox,jqScrollBar,0,opts.iTop);
            jqScrollBar.draggable({oBoundary:oBoundary});

最后打开F12自己设置断点,一点点的记录js里各个参数的值,记录在本子上,找出规律......

websocket+netty的一个即时在线聊天已经写完了,但是现在还有点丑,过两天美化好给大家看看

相关文章

  • 办法总比困难过系列

    前端委实很麻烦啊...聊天界面的滚动栏,不靠谱的选择引入的一个小众ZUI.js和css,结果里面的各种参数太繁琐,...

  • 2019-05-14

    生活的走向总无法预测,是我们提前预想的不够吗?水来土掩的事情总不能像说起来那么轻松。想办法想办法想办法,办法总比困...

  • 办法总比问题多!

    办法总比问题多!

  • 办法总比困难

    今天回家继续帮忙收花生。 虽说地里的花生都收完了,但后续的小活也不轻松。晒杆,脱杆,晒壳,去土疙瘩,装包,繁琐又细...

  • 抢时间

    时间太紧,时间不够,任务太重,压力太大。抓紧时间,抢时间,想办法完成任务。办法总比困难多。 办法总比困难多,创造条...

  • ONE总结

    倒推过去。 首先是,压力从无形到有形。之前觉得压力无形是觉得所有的困难,都可以被解决,也就是办法总比困...

  • 工作感悟之三十九

    只要精神不滑坡,办法总比困难多。工作上肯定会遇到这样或那样的困难,只要意志坚定,集中精力,勤动脑筋,解决困...

  • 2018-04-20---2

    每天抄写50遍。 办法总比困难多。

  • 办法总比困难多

    2018年08月13日 星期一 阴雨天 今天上班,利用空闲时间把日更内容写好了,用公司邮箱转发到自己的QQ邮...

  • 困难总比办法少

    昨天学生报到,只报个名字就回家了,等待3号早上到校,因为不是班主任,至今没看到学生名单,只听说每班40人,...

网友评论

      本文标题:办法总比困难过系列

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