jQuery滚动新闻实现代码


Posted in Javascript onJune 26, 2016

     网上下载了一个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);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JS继承--原型链继承和类式继承
Apr 08 Javascript
JS截取字符串常用方法整理及使用示例
Oct 18 Javascript
js设置控件的隐藏与显示的两种方法
Aug 21 Javascript
javascript去除字符串左右两端的空格
Feb 05 Javascript
基于javascript实现单选及多选的向右和向左移动实例
Jul 25 Javascript
js编写当天简单日历效果【实现代码】
May 03 Javascript
JS遍历页面所有对象属性及实现方法
Aug 01 Javascript
easyUI实现(alert)提示框自动关闭的实例代码
Nov 07 Javascript
Vue.js实战之通过监听滚动事件实现动态锚点
Apr 04 Javascript
SVG实现时钟效果
Jul 17 Javascript
JS动态显示倒计时效果
Dec 12 Javascript
微信小程序实现自定义底部导航
Nov 18 Javascript
js css实现垂直方向自适应的三角提示菜单
Jun 26 #Javascript
JS中的进制转换以及作用
Jun 26 #Javascript
JavaScript类型系统之布尔Boolean类型详解
Jun 26 #Javascript
基于JavaScript实现单选框下拉菜单添加文件效果
Jun 26 #Javascript
JQuery控制图片由中心点逐渐放大效果
Jun 26 #Javascript
JavaScript直播评论发弹幕切图功能点集合效果代码
Jun 26 #Javascript
jquery实现上传文件大小类型的验证例子(推荐)
Jun 25 #Javascript
You might like
《DOTA3》开发工作已经开始 《DOTA3》将代替《DOTA2》
2021/03/06 DOTA
PHP生成网页快照 不用COM不用扩展.
2010/02/11 PHP
js动态拼接正则表达式的两种方法
2014/03/04 Javascript
调试代码导致IE出错的避免方法
2014/04/04 Javascript
js实现滑动触屏事件监听的方法
2015/05/05 Javascript
jQuery使用$.ajax进行异步刷新的方法(附demo下载)
2015/12/04 Javascript
jQuery实现调整表格单列顺序完整实例
2016/06/20 Javascript
jQuery 翻页组件yunm.pager.js实现div局部刷新的思路
2016/08/11 Javascript
学习Angular中作用域需要注意的坑
2016/08/17 Javascript
jQuery动态修改字体大小的方法【测试可用】
2016/09/09 Javascript
Javascript 判断两个IP是否在同一网段实例代码
2016/11/28 Javascript
原生javascript实现分页效果
2017/04/21 Javascript
JS回调函数基本定义与用法实例分析
2017/05/24 Javascript
通俗解释JavaScript正则表达式快速记忆
2017/08/23 Javascript
js回文数的4种判断方法示例
2019/06/04 Javascript
使用Node.js和Socket.IO扩展Django的实时处理功能
2015/04/20 Python
简单上手Python中装饰器的使用
2015/07/12 Python
python中根据字符串调用函数的实现方法
2016/06/12 Python
Python 获取windows桌面路径的5种方法小结
2019/07/15 Python
python爬取盘搜的有效链接实现代码
2019/07/20 Python
Python数据可视化实现正态分布(高斯分布)
2019/08/21 Python
mac在matplotlib中显示中文的操作方法
2020/03/06 Python
python为QT程序添加图标的方法详解
2020/03/09 Python
Python3操作读写CSV文件使用包过程解析
2020/04/10 Python
Python Switch Case三种实现方法代码实例
2020/06/18 Python
Python 爬虫批量爬取网页图片保存到本地的实现代码
2020/12/24 Python
以实惠的价格提供高品质的时尚:Newchic
2018/01/18 全球购物
从当地商店送来的杂货:Instacart
2018/08/19 全球购物
美国转售二手商品的电子商务平台:BLINQ
2018/12/13 全球购物
日本乐天德国站:Rakuten.de
2019/05/16 全球购物
飞利浦美国官网:Philips美国
2020/02/28 全球购物
财务方面个人工作的自我评价
2013/12/28 职场文书
给校长的建议书100字
2014/05/16 职场文书
党员检讨书
2014/10/13 职场文书
pd.DataFrame中的几种索引变换的实现
2022/06/16 Python
MySQL中TIMESTAMP类型返回日期时间数据中带有T的解决
2022/12/24 MySQL