jQuery滾動(dòng)新聞實(shí)現(xiàn)代碼
網(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í)會跑錯(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í)有所幫助,也希望大家多多支持腳本之家。
- JQuery獲取元素文檔大小、偏移和位置和滾動(dòng)條位置的方法集合
- 基于Jquery的文字滾動(dòng)跑馬燈插件(一個(gè)頁面多個(gè)滾動(dòng)區(qū))
- 基于jQuery的圖片左右無縫滾動(dòng)插件
- 六款幫助你實(shí)現(xiàn)驚艷視差滾動(dòng)效果的jQuery插件
- js/jquery獲取瀏覽器窗口可視區(qū)域高度和寬度以及滾動(dòng)條高度實(shí)現(xiàn)代碼
- jQuery創(chuàng)建平滑的頁面滾動(dòng)(頂部或底部)
- jquery無縫向上滾動(dòng)實(shí)現(xiàn)代碼
- jquery easyui滾動(dòng)條部分設(shè)置介紹
- jQuery scroll事件實(shí)現(xiàn)監(jiān)控滾動(dòng)條分頁示例
- JQuery插件iScroll實(shí)現(xiàn)下拉刷新,滾動(dòng)翻頁特效
相關(guān)文章
jquery+css實(shí)現(xiàn)側(cè)邊導(dǎo)航欄效果
這篇文章主要為大家詳細(xì)介紹了jquery+css實(shí)現(xiàn)側(cè)邊導(dǎo)航欄效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06
JavaScript的jQuery庫插件的簡要開發(fā)指南
這篇文章主要介紹了JavaScript的jQuery庫插件的簡要開發(fā)指南,分為基于選擇器的插件和不基于選擇器的插件兩種情況,需要的朋友可以參考下2015-08-08
jQuery實(shí)現(xiàn)發(fā)送驗(yàn)證碼控制按鈕禁用功能
最近接到新需求,需要實(shí)現(xiàn)一個(gè)點(diǎn)擊發(fā)送驗(yàn)證碼之后,按鈕禁用,在5秒之后取消禁用,看似需求很簡單,實(shí)現(xiàn)起來還真的好好動(dòng)動(dòng)腦筋,下面小編把jquery控制按鈕禁用核心代碼分享給大家,需要的朋友參考下吧2021-07-07
jQuery仿Excel表格編輯功能的實(shí)現(xiàn)代碼
Handsontable 是一個(gè)相當(dāng)給力的 jQuery 插件,它實(shí)現(xiàn)了 HTML 頁面中的表格編輯功能,并且是仿 Excel 的編輯效果。2013-05-05
jQuery實(shí)現(xiàn)百度登錄框的動(dòng)態(tài)切換效果
這篇文章主要介紹了jQuery實(shí)現(xiàn)百度登錄框的動(dòng)態(tài)切換效果,需要的朋友可以參考下2017-04-04

