jQuery實(shí)現(xiàn)模擬marquee標(biāo)簽效果
Marquee
模仿IE下面的marquee效果,鼠標(biāo)移上去暫停。形成環(huán)的主要原理在于每張圖片一旦判斷出了外面的顯示窗口就添加到尾部,用append和prepend模擬數(shù)組的push()和shift()。
代碼如下:
HTML
<!doctype html>
<html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta content="" name="keywords" />
<meta content="" name="description" />
<meta name="author" content="codetker" />
<head>
<title>模擬marquee標(biāo)簽效果的簡單實(shí)現(xiàn)</title>
<link href="style/reset.css" rel="stylesheet" type="text/css">
<link href="style/style.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="js/jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="js/jquery.codetker.marquee.js"></script>
</head>
<body>
<div class="wrap">
<div class="marquee">
<ul>
<li>
<a href="" title="">1
<img src="images/test.jpg" alt="">
</a>
</li>
<li>
<a href="" title="">2
<img src="images/test.jpg" alt="">
</a>
</li>
<li>
<a href="" title="">3
<img src="images/test.jpg" alt="">
</a>
</li>
<li>
<a href="" title="">4
<img src="images/test.jpg" alt="">
</a>
</li>
<li>
<a href="" title="">5
<img src="images/test.jpg" alt="">
</a>
</li>
<li>
<a href="" title="">6
<img src="images/test.jpg" alt="">
</a>
</li>
<li>
<a href="" title="">7
<img src="images/test.jpg" alt="">
</a>
</li>
<li>
<a href="" title="">8
<img src="images/test.jpg" alt="">
</a>
</li>
</ul>
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){
$(".marquee").marquee();
});
</script>
</body>
</html>
CSS
@charset "utf-8";
/* CSS Document */
body{
margin:0 0;
padding:0 0;
height:100%;
width:100%;
}
.wrap{
font-family:"微軟雅黑","宋體", Times, "Times New Roman", serif;
font-size:14px;
margin:0 0;
padding:0 0;
height:100%;
width:100%;
overflow:hidden;
}
.marquee{
margin: 0 auto;
width: 960px;
height: 300px;
overflow: hidden;
}
.marquee ul{
width: 10000px;
}
.marquee ul li{
float: left;
width: 500px;
text-align: center;
}
.marquee ul li a{
}
.marquee ul li a:hover{
color: red;
}
JavaScript
/*
* boxScroll 0.1
* 兼容IE8,FF,Chrome等常見瀏覽器
*/
;(function($,window,document,undefined){
//定義構(gòu)造函數(shù)
var BoxObj=function(ele,opt){
this.$element=ele; //最外層對象
this.defaults={
'style': 0 ,//滾動樣式選擇,默認(rèn)為普通效果
'speed': 1 ,//默認(rèn)為1s
'direction': 'left'//默認(rèn)為向左邊滾動
},
this.options=$.extend({},this.defaults,opt );
//這里可以添加一些通用方法
}
//給構(gòu)造函數(shù)添加方法
BoxObj.prototype={
commonScroll:function(){
//接收對象屬性
var obj=this.$element;
var boxWindow=$(this.$element).children('ul');
var speed=this.defaults.speed;
var style=this.defaults.style;
var direction=(this.defaults.direction=='left')? 1 : -1;
var lists=$(boxWindow).children('li');
var len=$(lists).length;
var boxWidth=$(lists[0]).width();
var timer;
var step=(this.defaults.direction=='left')? 0 : boxWidth;
function move(style,speed,direction){
if (style==0) {
if (direction==1) {
step+=1;
if(step>boxWidth){
step-=boxWidth;
$(boxWindow).append($(boxWindow).children().eq(0));//將第一項(xiàng)放在最后,相當(dāng)于push(0),shift()
}else{
$(obj).scrollLeft(step);
}
}else if (direction== -1) {
step-=1;
if(step<0){
step+=boxWidth;
$(boxWindow).prepend($(boxWindow).children().eq(len-1));//將最后一項(xiàng)放在最前,相當(dāng)于pop(last),unshift()
}else{
$(obj).scrollLeft(step);
}
}else{//不執(zhí)行之外的數(shù)值
}
}else{//留待擴(kuò)展,多了改switch
}
}
timer=setInterval(function(){
move(style,speed,direction);
},10*speed); //由于時(shí)間取得小,肉眼就看不出來
$(lists).each(function() {//鼠標(biāo)移上暫停
$(this).hover(function() {
clearInterval(timer);
}, function() {
clearInterval(timer);
timer=setInterval(function(){
move(style,speed,direction);
},10*speed);
});
});
}
}
$.fn.marquee=function(options){
//創(chuàng)建實(shí)體
var boxObj=new BoxObj(this,options);
//用尾調(diào)的形式調(diào)用對象方法
return boxObj.commonScroll();
}
})(jQuery,window,document);
詳細(xì)下載見https://github.com/codetker/myMarquee
以上所述就是本文的全部內(nèi)容了,希望大家能夠喜歡。
相關(guān)文章
jquery實(shí)現(xiàn)滑屏大圖定時(shí)收縮為小banner圖片的廣告代碼
這篇文章主要介紹了jquery實(shí)現(xiàn)滑屏大圖定時(shí)收縮為小banner圖片的廣告代碼,可實(shí)現(xiàn)大幅廣告圖的漸顯效果及定時(shí)收縮功能,點(diǎn)擊左上角關(guān)閉按鈕還可隱藏廣告圖片,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-09-09
jQuery實(shí)現(xiàn)側(cè)浮窗與中浮窗切換效果的方法
這篇文章主要介紹了jQuery實(shí)現(xiàn)側(cè)浮窗與中浮窗切換效果的方法,涉及jQuery針對頁面元素的動態(tài)操作技巧,需要的朋友可以參考下2016-09-09
jQuery對val和atrr("value")賦值的區(qū)別介紹
jQuery中val和atrr(value),對瀏覽器的區(qū)別,有默認(rèn)值的情況下,如果用val()賦值了,那么當(dāng)修改這個(gè)值得時(shí)候,google不能獲取最新的值,但是ie可以2014-09-09
jQuery文字橫向滾動效果的實(shí)現(xiàn)代碼
下面小編就為大家?guī)硪黄猨Query文字橫向滾動效果的實(shí)現(xiàn)代碼。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-05-05
jValidate 基于jQuery的表單驗(yàn)證插件
網(wǎng)上基于jQuery的表單驗(yàn)證插件已有很多,但是這個(gè)輪子我還是繼續(xù)做一個(gè),因?yàn)檫@個(gè)表單驗(yàn)證插件是從我以前的個(gè)人JS框架移值過來的(我已慢慢投入jQuery的懷抱),并且它的驗(yàn)證規(guī)則書寫方式也許會讓你眼前一亮。2009-12-12
jQuery模擬Marquee實(shí)現(xiàn)無縫滾動效果完整實(shí)例
這篇文章主要介紹了jQuery模擬Marquee實(shí)現(xiàn)無縫滾動效果,結(jié)合完整實(shí)例形式分析了jQuery針對圖片與文字的無縫滾動效果實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-09-09

