• 一段代码


    格式,风格很重要,贴一个最近写的一段代码。
    不复杂,条理算是清晰(没写什么注释,但是看方法名应该看得懂)。
    功能简单,但是自认为需求更改,我维护方便,放在这里留作纪念:

    /**
    *重要新闻循环滚动
    */

    function HScroll(p){
    var t = this;
    t.p = jQuery.extend({},p);
    t.ul = jQuery(t.p.ctn).find('ul');
    t.interval = null;
    t.htmlInit();
    t.eventBind();
    t.scrollStart();
    };

    HScroll.prototype.htmlInit = function(){
    var t = this;
    var ul = t.ul,
    li = t.ul.find('li'),
    liLen = li.length,
    liW = li.width(),
    ulW = liW * liLen;
    t.dW = liW;
    ul.width(ulW);
    };
    var fpr = HScroll.prototype;
    fpr.scrollStop = function(){
    var t = this;
    window.clearInterval(t.interval);
    };
    fpr.scrollStart = function(){
    var t = this;
    t.interval = window.setInterval(function(){
    t.scrollLeft();
    },t.p.intervalTime);
    };
    fpr.setLastLiFrist = function(){
    var t = this;
    var li = t.ul.find('li').last().clone();
    t.ul.find('li').last().remove();
    t.ul.prepend(li);
    };
    fpr.setFristLiLast = function(){
    var t = this;
    var li = t.ul.find('li').first().clone();
    t.ul.find('li').first().remove();
    t.ul.append(li);
    };
    fpr.marginInit = function(){
    var t = this;
    t.ul.css('margin-left',0)
    };
    fpr.scrollLeft = function(){
    var t = this;
    t.ul.animate({
    'margin-left' : -(t.dW)
    },function(){
    t.setFristLiLast();
    t.marginInit();
    });
    };
    fpr.scrollRight = function(){
    var t = this;
    t.setLastLiFrist();
    t.ul.css('margin-left',-(t.dW));
    t.ul.animate({
    'margin-left' :0
    });
    };
    fpr.eventBind = function(){
    var t = this;
    jQuery(t.p.prevCtn).click(function(){
    t.scrollStop();
    t.scrollLeft();
    t.scrollStart();
    });
    jQuery(t.p.nextCtn).click(function(){
    t.scrollStop();
    t.scrollRight();
    t.scrollStart();
    });
    jQuery(t.p.ctn).hover(function(){
    t.scrollStop();
    },function(){
    t.scrollStart();
    });
    };
    调用方法:
    new HScroll({
    ctn : '.scroll-ul-ctn',
    intervalTime : 4000,
    speed : 1000,
    prevCtn : '.article-prev',
    nextCtn : '.article-next'
    });


  • 相关阅读:
    18 | 为什么这些SQL语句逻辑相同,性能却差异巨大?
    17 | 如何正确地显示随机消息?
    16 | “order by”是怎么工作的?
    15 | 答疑文章(一):日志和索引相关问题
    14 | count(*)这么慢,我该怎么办?
    13 | 为什么表数据删掉一半,表文件大小不变?
    12 | 为什么我的MySQL会“抖”一下?
    11 | 怎么给字符串字段加索引?
    10 | MySQL为什么有时候会选错索引?
    2016 Multi-University Training Contest 4
  • 原文地址:https://www.cnblogs.com/tyhmj/p/2342596.html
Copyright © 2020-2023  润新知