jQuery滾動(dòng)新聞實(shí)現(xiàn)代碼
來源:易賢網(wǎng) 閱讀:944 次 日期:2016-07-12 15:10:40
溫馨提示:易賢網(wǎng)小編為您整理了“jQuery滾動(dòng)新聞實(shí)現(xiàn)代碼”,方便廣大網(wǎng)友查閱!

這篇文章主要為大家詳細(xì)介紹了jQuery滾動(dòng)新聞實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

網(wǎng)上下載了一個(gè)Jquery新聞滾動(dòng)Demo,效果不錯(cuò)。我根據(jù)自己情況,做了些調(diào)整。

下載后,除了Html及Jquery.js,還有三個(gè)文件,分別是Css,主Js和一個(gè)定位Js(jquery.dimensions.js),Css文件完全可以通過動(dòng)態(tài)賦值實(shí)現(xiàn),省的在Css文件中添加了,況且可以重定義,應(yīng)該效果更好。

定位Js只用到一個(gè)方法,我把它整合到之中了,少加載一個(gè)是一個(gè)么。

原Demo是一行顯示的滾動(dòng)效果,有一個(gè)Bug,即不等的多行顯示時(shí)會(huì)跑錯(cuò),已修復(fù)。

原Demo有一個(gè)mouseover屬性,我一般不用(效果不好,看一下實(shí)現(xiàn)方法也有漏洞,在多行時(shí)效果更差),刪除了。

借鑒別人的思路與代碼,不敢獨(dú)享。

刪除的部分:

$('> 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');

  }

 });

調(diào)整后代碼:

html部分:

<div id="tbNews">

<ul>

 <li>1、滾動(dòng)新聞,滾動(dòng)新聞,滾動(dòng)新聞,滾動(dòng)新聞,滾動(dòng)新聞</li>

 <li>2、滾動(dòng)新聞,滾動(dòng)新聞</li>

 <li>3、滾動(dòng)新聞,滾動(dòng)新聞,滾動(dòng)新聞,滾動(dòng)新聞</li>

 <li>4、滾動(dòng)新聞,滾動(dòng)新聞,滾動(dòng)新聞,滾動(dòng)新聞,滾動(dòng)新聞</li>

 <li>5、滾動(dòng)新聞</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);

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助

更多信息請查看網(wǎng)絡(luò)編程
易賢網(wǎng)手機(jī)網(wǎng)站地址:jQuery滾動(dòng)新聞實(shí)現(xiàn)代碼
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

2025國考·省考課程試聽報(bào)名

  • 報(bào)班類型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺(tái) | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)