jQuery滚动新闻实现代码

网上下载了一个Jquery新闻滚动Demo,效果不错。我根据自己情况,做了些调整。 下载后,除了Html及Jquery.js,还有三个文件,分别是Css,主Js和一个定位Js(jquery.dimensions.js),Css文件完全可以通过动态赋值实现,省的在Css文件添加了,况且可以重定义,应该效果更好。 定位Js只用到一个方法,我把它整合到之中了,少加载一个一个么。 原Demo是一行显示的滚动效果,有一个Bug,即不等的多行显示时会跑错,已修复。 原Demo有一个mouSEOver属性,我一般不用(效果不好,看一下实现方法也有漏洞,在多行时效果更差),删除了。

借鉴别人的思路与代码,不敢独享。

删除的部分:

ul',this) .bind('mouSEOver',function(e) { if ($(e.target).is('li')) { $(e.target).addClass('hover'); } }) .bind('mouSEOut',function(e) { if ($(e.target).is('li')) { $(e.target).removeClass('hover'); } });

调整后代码

html部分:

rush:xhtml;">
  • 1、滚动新闻,滚动新闻,滚动新闻,滚动新闻,滚动新闻
  • 2、滚动新闻,滚动新闻
  • 3、滚动新闻,滚动新闻,滚动新闻,滚动新闻
  • 4、滚动新闻,滚动新闻,滚动新闻,滚动新闻,滚动新闻
  • 5、滚动新闻
  • Js代码

    rush:js;"> (function($){ var ELMS = []; $.fn.jdNewsScroll = function(settings) { settings = $.extend({},arguments.callee.defaults,settings); $(this).css({"position":"relative","overflow":"hidden","width":settings.divWidth,"height":settings.divHeight}); $(this).find("ul").css({"position":"relative","list-style-type":"none","font-size":settings.fontSize,"margin":"0px"}); $(this).find("li").css({"line-height":"130%","margin":"0px","padding":"2px 10px 1px 10px"}); $(this).each(function(){ this.$settings = settings; this.$pause = false; this.$counter = settings.beginTime; $(this).hover(function(){ $(this).jdNewsScrollPause(true) },function(){ $(this).jdNewsScrollPause(false) }); ELMS.push(this); }); return this; }; $.fn.jdNewsScroll.defaults = { beginTime: 10,fontSize: '9pt',divWidth: '100%',divHeight: '200px',lineHeight: '130%',delay: 20,step: 2 }; $.fn.jdNewsScrollPause = function(pause) { return this.each(function() { this.$pause = pause; }); } function outerHeight(options) { if (!this[0]) 0; options = $.extend({ margin: false },options || {}); return this[0] == window || this[0] == document ? this.height() : this.is(':visible') ? this[0].offsetHeight + (options.margin ? (num(this,'marginTop') + num(this,'marginBottom')) : 0) : this.height() + num(this,'borderTopWidth') + num(this,'borderBottomWidth') + num(this,'paddingTop') + num(this,'paddingBottom') + (options.margin ? (num(this,'marginBottom')) : 0); }

    setInterval(scroll,80);
    function scroll() {
    for (var i = 0; i < ELMS.length; i++) {
    var elm = ELMS[i];
    if (elm && !elm.$pause) {
    if (elm.$counter == 0) {
    var ul = $('> ul',elm)[0];
    if (!elm.$steps) {
    elm.$steps = $('> li:first-child',ul).outerHeight();
    elm.$step = 0;
    }
    if ((elm.$steps + elm.$step) <= 0) {
    elm.$counter = elm.$settings.delay;
    elm.$steps = false;
    $(ul).css('top','0').find('> li:last-child').after($('> li:first-child',ul));
    $('> *',ul).not('li').remove();
    } else {
    elm.$step -= elm.$settings.step;
    if (-elm.$step > elm.$steps) {
    elm.$step = -elm.$steps;
    }
    ul.style.top = elm.$step + 'px';
    }
    } else {
    elm.$counter--;
    }
    }
    }
    };
    })(jQuery);

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。

    相关文章

    页面搜索关键词突出 // 页面搜索关键词突出 $(function () {...
    jQuery实时显示日期、时间 html: &lt;span id=&quot...
    jQuery 添加水印 &lt;script src=&quot;../../../.....
    中文:Sys.WebForms.PageRequestManagerParserErrorExceptio...
    1. 用Response.Write方法 代码如下: Response.Write(&q...
    Jquery实现按钮点击遮罩加载,处理完后恢复 思路: 1.点击按...