jquery實(shí)現(xiàn)marquee效果(文字或者圖片的水平垂直滾動(dòng))
更新時(shí)間:2013年01月07日 11:44:22 作者:
原本在前端html代碼中,實(shí)現(xiàn)文字或者圖片的水平垂直滾動(dòng),都是使用的marquee,但隨著考慮瀏覽器的兼容性和符合為w3c的標(biāo)準(zhǔn),接下來介紹使用Jquery實(shí)現(xiàn)網(wǎng)頁marquee效果,感興趣的朋友可以了解下哦
原本在前端html代碼中,實(shí)現(xiàn)文字或者圖片的水平垂直滾定,都是使用的marquee,但隨著考慮瀏覽器的兼容性和符合為w3c的標(biāo)準(zhǔn),后來想想那還是使用javascript代碼來實(shí)現(xiàn)。后來又喜歡上了jquery,下面寫的內(nèi)容希望對初學(xué)者有些幫助,高手勿噴,但歡迎指導(dǎo),感激不盡。
原理:無縫滾動(dòng)的原理,就是利用兩個(gè)內(nèi)容相同的容器,來達(dá)到欺騙人的視覺的效果。然后通過整個(gè)大容器滾動(dòng)條的左右或者上下的移動(dòng)來實(shí)現(xiàn)滾動(dòng)。下面附上一張手繪的圖,來簡要闡述下原理。首先,我們的目的是實(shí)現(xiàn)框1中的內(nèi)容水平向左滾動(dòng)(向右滾動(dòng),上下滾動(dòng)的原理其實(shí)大致是一樣的,只要知道其中一種,其他都不是問題。)。那么我們在頁面加載的時(shí)候就用js動(dòng)態(tài)將框2中的內(nèi)容(html內(nèi)容)賦值成和框1的內(nèi)容一樣。然后隨著滾動(dòng)條的漸漸地往右移動(dòng),來實(shí)現(xiàn)向左的效果。說了這么多。等會(huì)就附上代碼(配有注釋)。
1.html代碼
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>juqery實(shí)現(xiàn)marquee的效果</title>
<script src="jquery-1.4.2.js" type="text/javascript"></script>
<style type="text/css">
#container /*這個(gè)是最外面的容器,最關(guān)鍵的一點(diǎn)是將overflow:hidden隱藏起來。*/
{
width:600px;
height:80px;
overflow:hidden;
}
#longwidth
{
height:80px;
width:1000%; /*要足夠的大,需要能夠把div1和div2的內(nèi)容都能夠裝下,不然因?yàn)閒loat:left裝不下,就會(huì)到第二行*/
}
.kuang
{
float:left;
height:80px;
}
</style>
<script type="text/javascript">
$(function () {
$("#div2").html($("#div1").html()); //將div2的html設(shè)置成div1的html
var mar = function () {
if ($("#container").scrollLeft() > $("#div1").width()) { //當(dāng)滾動(dòng)條隱藏的長度大于div1的寬度
$("#container").scrollLeft(0);
}
else {
$("#container").scrollLeft($("#container").scrollLeft() + 5); //每次滾動(dòng)條往右移動(dòng)1px;
}
};
var vid = setInterval(mar, 1);
$("#container").mouseenter(function () {
clearInterval(vid);
}).mouseleave(function () {
vid = setInterval(mar,1);
});
});
</script>
</head>
<body>
<!--容器可以使用div,內(nèi)容中使用ul li,那么框1就是div1,框2就是div2,需要兩個(gè)div在一行,就需要設(shè)置div的float:left屬性-->
<!--當(dāng)然如果你對于css不是很了解,也可以使用table來實(shí)現(xiàn),用td1和td2來實(shí)現(xiàn)。本人對table有種不喜,所以就通過div來做了-->
<div id="container">
<div id="longwidth">
<div id="div1" class="kuang">
<img src="04.jpg" width="120px" height="80px" />
<img src="04.jpg" width="120px" height="80px" />
<img src="04.jpg" width="120px" height="80px" />
<img src="04.jpg" width="120px" height="80px" />
<img src="04.jpg" width="120px" height="80px" />
<img src="04.jpg" width="120px" height="80px" />
<img src="04.jpg" width="120px" height="80px" />
</div>
<div id="div2" class="kuang"></div>
</div>
</div>
</body>
</html>
原理:無縫滾動(dòng)的原理,就是利用兩個(gè)內(nèi)容相同的容器,來達(dá)到欺騙人的視覺的效果。然后通過整個(gè)大容器滾動(dòng)條的左右或者上下的移動(dòng)來實(shí)現(xiàn)滾動(dòng)。下面附上一張手繪的圖,來簡要闡述下原理。首先,我們的目的是實(shí)現(xiàn)框1中的內(nèi)容水平向左滾動(dòng)(向右滾動(dòng),上下滾動(dòng)的原理其實(shí)大致是一樣的,只要知道其中一種,其他都不是問題。)。那么我們在頁面加載的時(shí)候就用js動(dòng)態(tài)將框2中的內(nèi)容(html內(nèi)容)賦值成和框1的內(nèi)容一樣。然后隨著滾動(dòng)條的漸漸地往右移動(dòng),來實(shí)現(xiàn)向左的效果。說了這么多。等會(huì)就附上代碼(配有注釋)。

1.html代碼
復(fù)制代碼 代碼如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>juqery實(shí)現(xiàn)marquee的效果</title>
<script src="jquery-1.4.2.js" type="text/javascript"></script>
<style type="text/css">
#container /*這個(gè)是最外面的容器,最關(guān)鍵的一點(diǎn)是將overflow:hidden隱藏起來。*/
{
width:600px;
height:80px;
overflow:hidden;
}
#longwidth
{
height:80px;
width:1000%; /*要足夠的大,需要能夠把div1和div2的內(nèi)容都能夠裝下,不然因?yàn)閒loat:left裝不下,就會(huì)到第二行*/
}
.kuang
{
float:left;
height:80px;
}
</style>
<script type="text/javascript">
$(function () {
$("#div2").html($("#div1").html()); //將div2的html設(shè)置成div1的html
var mar = function () {
if ($("#container").scrollLeft() > $("#div1").width()) { //當(dāng)滾動(dòng)條隱藏的長度大于div1的寬度
$("#container").scrollLeft(0);
}
else {
$("#container").scrollLeft($("#container").scrollLeft() + 5); //每次滾動(dòng)條往右移動(dòng)1px;
}
};
var vid = setInterval(mar, 1);
$("#container").mouseenter(function () {
clearInterval(vid);
}).mouseleave(function () {
vid = setInterval(mar,1);
});
});
</script>
</head>
<body>
<!--容器可以使用div,內(nèi)容中使用ul li,那么框1就是div1,框2就是div2,需要兩個(gè)div在一行,就需要設(shè)置div的float:left屬性-->
<!--當(dāng)然如果你對于css不是很了解,也可以使用table來實(shí)現(xiàn),用td1和td2來實(shí)現(xiàn)。本人對table有種不喜,所以就通過div來做了-->
<div id="container">
<div id="longwidth">
<div id="div1" class="kuang">
<img src="04.jpg" width="120px" height="80px" />
<img src="04.jpg" width="120px" height="80px" />
<img src="04.jpg" width="120px" height="80px" />
<img src="04.jpg" width="120px" height="80px" />
<img src="04.jpg" width="120px" height="80px" />
<img src="04.jpg" width="120px" height="80px" />
<img src="04.jpg" width="120px" height="80px" />
</div>
<div id="div2" class="kuang"></div>
</div>
</div>
</body>
</html>
您可能感興趣的文章:
- 基于Jquery的文字滾動(dòng)跑馬燈插件(一個(gè)頁面多個(gè)滾動(dòng)區(qū))
- jQuery實(shí)現(xiàn)公告文字左右滾動(dòng)的實(shí)例代碼
- jquery 單行滾動(dòng)、批量多行滾動(dòng)、文字圖片翻屏滾動(dòng)效果代碼
- jquery文字上下滾動(dòng)的實(shí)現(xiàn)方法
- jQuery實(shí)現(xiàn)單行文字間歇向上滾動(dòng)源代碼
- jQuery不間斷滾動(dòng)效果(模擬百度新聞支持文字/圖片/垂直滾動(dòng))
- jQuery文字橫向滾動(dòng)效果的實(shí)現(xiàn)代碼
- jquery插件之文字間歇自動(dòng)向上滾動(dòng)效果代碼
- 如何使用jquery實(shí)現(xiàn)文字上下滾動(dòng)效果
- 完美兼容各大瀏覽器的jQuery仿新浪圖文淡入淡出間歇滾動(dòng)特效
- jQuery實(shí)現(xiàn)的文字逐行向上間歇滾動(dòng)效果示例
相關(guān)文章
jQuery jqgrid 對含特殊字符json 數(shù)據(jù)的 Java 處理方法
在網(wǎng)頁上使用 json 數(shù)據(jù),如果數(shù)據(jù)中含有特殊字符,會(huì)比較麻煩。2011-01-01jQuery height()、innerHeight()、outerHeight()函數(shù)的區(qū)別詳解
這篇文章主要介紹了jQuery height()、innerHeight()、outerHeight()函數(shù)的區(qū)別詳解,需要的朋友可以參考下2016-05-05jquery實(shí)現(xiàn)鼠標(biāo)滑過顯示二級下拉菜單效果
這篇文章主要介紹了jquery實(shí)現(xiàn)鼠標(biāo)滑過顯示二級下拉菜單效果,通過jquery操作鼠標(biāo)事件及頁面樣式動(dòng)態(tài)變換實(shí)現(xiàn)該功能,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-08-08如何從jQuery的ajax請求中刪除X-Requested-With
X-Requested-With常用于判斷是不是ajax請求,ajax請求中刪除X-Requested-With的方法如下,感興趣的朋友可以參考下2013-12-12jQuery scroll事件實(shí)現(xiàn)監(jiān)控滾動(dòng)條分頁示例
這篇文章主要介紹了jQuery scroll事件實(shí)現(xiàn)監(jiān)控滾動(dòng)條分頁簡單示例,使用ajax加載,同時(shí)介紹了(document).height()與$(window).height()的區(qū)別,需要的朋友可以參考下2014-04-04jQuery+正則+文本框只能輸入數(shù)字的實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄猨Query+正則+文本框只能輸入數(shù)字的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-10-10基于jquery實(shí)現(xiàn)左右上下移動(dòng)效果
這篇文章主要為大家詳細(xì)介紹了基于jquery實(shí)現(xiàn)左右上下移動(dòng)效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05