jquery實現(xiàn)marquee效果(文字或者圖片的水平垂直滾動)
更新時間:2013年01月07日 11:44:22 作者:
原本在前端html代碼中,實現(xiàn)文字或者圖片的水平垂直滾動,都是使用的marquee,但隨著考慮瀏覽器的兼容性和符合為w3c的標(biāo)準(zhǔn),接下來介紹使用Jquery實現(xiàn)網(wǎng)頁marquee效果,感興趣的朋友可以了解下哦
原本在前端html代碼中,實現(xiàn)文字或者圖片的水平垂直滾定,都是使用的marquee,但隨著考慮瀏覽器的兼容性和符合為w3c的標(biāo)準(zhǔn),后來想想那還是使用javascript代碼來實現(xiàn)。后來又喜歡上了jquery,下面寫的內(nèi)容希望對初學(xué)者有些幫助,高手勿噴,但歡迎指導(dǎo),感激不盡。
原理:無縫滾動的原理,就是利用兩個內(nèi)容相同的容器,來達(dá)到欺騙人的視覺的效果。然后通過整個大容器滾動條的左右或者上下的移動來實現(xiàn)滾動。下面附上一張手繪的圖,來簡要闡述下原理。首先,我們的目的是實現(xiàn)框1中的內(nèi)容水平向左滾動(向右滾動,上下滾動的原理其實大致是一樣的,只要知道其中一種,其他都不是問題。)。那么我們在頁面加載的時候就用js動態(tài)將框2中的內(nèi)容(html內(nèi)容)賦值成和框1的內(nèi)容一樣。然后隨著滾動條的漸漸地往右移動,來實現(xiàn)向左的效果。說了這么多。等會就附上代碼(配有注釋)。
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實現(xiàn)marquee的效果</title>
<script src="jquery-1.4.2.js" type="text/javascript"></script>
<style type="text/css">
#container /*這個是最外面的容器,最關(guān)鍵的一點是將overflow:hidden隱藏起來。*/
{
width:600px;
height:80px;
overflow:hidden;
}
#longwidth
{
height:80px;
width:1000%; /*要足夠的大,需要能夠把div1和div2的內(nèi)容都能夠裝下,不然因為float:left裝不下,就會到第二行*/
}
.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)滾動條隱藏的長度大于div1的寬度
$("#container").scrollLeft(0);
}
else {
$("#container").scrollLeft($("#container").scrollLeft() + 5); //每次滾動條往右移動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,需要兩個div在一行,就需要設(shè)置div的float:left屬性-->
<!--當(dāng)然如果你對于css不是很了解,也可以使用table來實現(xiàn),用td1和td2來實現(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>
原理:無縫滾動的原理,就是利用兩個內(nèi)容相同的容器,來達(dá)到欺騙人的視覺的效果。然后通過整個大容器滾動條的左右或者上下的移動來實現(xiàn)滾動。下面附上一張手繪的圖,來簡要闡述下原理。首先,我們的目的是實現(xiàn)框1中的內(nèi)容水平向左滾動(向右滾動,上下滾動的原理其實大致是一樣的,只要知道其中一種,其他都不是問題。)。那么我們在頁面加載的時候就用js動態(tài)將框2中的內(nèi)容(html內(nèi)容)賦值成和框1的內(nèi)容一樣。然后隨著滾動條的漸漸地往右移動,來實現(xiàn)向左的效果。說了這么多。等會就附上代碼(配有注釋)。
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實現(xiàn)marquee的效果</title>
<script src="jquery-1.4.2.js" type="text/javascript"></script>
<style type="text/css">
#container /*這個是最外面的容器,最關(guān)鍵的一點是將overflow:hidden隱藏起來。*/
{
width:600px;
height:80px;
overflow:hidden;
}
#longwidth
{
height:80px;
width:1000%; /*要足夠的大,需要能夠把div1和div2的內(nèi)容都能夠裝下,不然因為float:left裝不下,就會到第二行*/
}
.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)滾動條隱藏的長度大于div1的寬度
$("#container").scrollLeft(0);
}
else {
$("#container").scrollLeft($("#container").scrollLeft() + 5); //每次滾動條往右移動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,需要兩個div在一行,就需要設(shè)置div的float:left屬性-->
<!--當(dāng)然如果你對于css不是很了解,也可以使用table來實現(xiàn),用td1和td2來實現(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的文字滾動跑馬燈插件(一個頁面多個滾動區(qū))
- jQuery實現(xiàn)公告文字左右滾動的實例代碼
- jquery 單行滾動、批量多行滾動、文字圖片翻屏滾動效果代碼
- jquery文字上下滾動的實現(xiàn)方法
- jQuery實現(xiàn)單行文字間歇向上滾動源代碼
- jQuery不間斷滾動效果(模擬百度新聞支持文字/圖片/垂直滾動)
- jQuery文字橫向滾動效果的實現(xiàn)代碼
- jquery插件之文字間歇自動向上滾動效果代碼
- 如何使用jquery實現(xiàn)文字上下滾動效果
- 完美兼容各大瀏覽器的jQuery仿新浪圖文淡入淡出間歇滾動特效
- jQuery實現(xiàn)的文字逐行向上間歇滾動效果示例
相關(guān)文章
jquery ui dialog實現(xiàn)彈窗特效的思路及代碼
這篇文章介紹了jquery ui dialog實現(xiàn)彈窗特效的思路及代碼,有需要的朋友可以參考一下2013-08-08
jquery實現(xiàn)LED廣告牌旋轉(zhuǎn)系統(tǒng)圖片切換效果代碼分享
這篇文章主要介紹了jquery實現(xiàn)LED廣告牌旋轉(zhuǎn)系統(tǒng)圖片切換效果類似路邊場景,很實用的代碼,推薦給大家,有需要的小伙伴可以參考下。2015-08-08
JQuery操作textarea,input,select,checkbox方法
本文給大家匯總介紹了一些JQuery操作textarea,input,select,checkbox的方法和技巧,十分的簡單實用,都是小編項目中使用過的,這里推薦給大家。2015-09-09
jquery實現(xiàn)仿Flash的橫向滑動菜單效果代碼
這篇文章主要介紹了jquery實現(xiàn)仿Flash的橫向滑動菜單效果代碼,可實現(xiàn)滑塊跟隨鼠標(biāo)滑動效果的功能,具有一定參考借鑒價值,需要的朋友可以參考下2015-09-09
jQuery實現(xiàn)導(dǎo)航滾動到指定內(nèi)容效果完整實例【附demo源碼下載】
這篇文章主要介紹了jQuery實現(xiàn)導(dǎo)航滾動到指定內(nèi)容效果,結(jié)合完整實例形式分析了頁面元素屬性動態(tài)變換操作相關(guān)技巧,涉及jQuery插件jquery.scrollto.js的使用,并附帶demo源碼下載供讀者下載參考,需要的朋友可以參考下2016-09-09

