jQuery滚动新闻实现代码
来源: 阅读:891 次 日期:2016-07-12 15:10:40
温馨提示: 小编为您整理了“jQuery滚动新闻实现代码”,方便广大网友查阅!

这篇文章主要为大家详细介绍了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部分:

<div id="tbNews">

<ul>

 <li>1、滚动新闻,滚动新闻,滚动新闻,滚动新闻,滚动新闻</li>

 <li>2、滚动新闻,滚动新闻</li>

 <li>3、滚动新闻,滚动新闻,滚动新闻,滚动新闻</li>

 <li>4、滚动新闻,滚动新闻,滚动新闻,滚动新闻,滚动新闻</li>

 <li>5、滚动新闻</li>

</ul>

</div>

<script language="JavaScript" src="jdNewsScroll.js" type="text/javascript">

</script>

<script defer="defer" language="JavaScript" type="text/javascript">

$(function() {

 $('#tbNews').jdNewsScroll({divWidth:130,divHeight:50,fontSize:'10.5pt'});

});

</script>

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, 'marginTop') + 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);

以上就是本文的全部内容,希望对大家的学习有所帮助

更多信息请查看网络编程
手机网站地址:jQuery滚动新闻实现代码
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!
关于我们 | 联系我们 | 人才招聘 | 网站声明 | 网站帮助 | 非正式的简要咨询 | 简要咨询须知 | 加入群交流 | 手机站点 | 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:hfpxwx
咨询QQ:526150442(9:00—18:00)版权所有:
云南网警报警专用图标
Baidu
map