1. 程式人生 > >用javascript實現圖片輪播

用javascript實現圖片輪播

有兩點需要注意:

①css中的left屬性不能用xxx.style.left獲得,把該屬性寫在html中的style中就可以獲得。

②自定義屬性獲取方法:

   如 <span index="2"></span>

可以用var currentIndex=parseInt(this.getAttribute('index'));獲取,注意轉化為數值。

效果為:


總的程式碼如下:

<!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>switcherDemo</title>
<style type="text/css">
   *{margin:0;padding:0;}
   .clearfix: after{ content:"";display:block;clear:both;}
   #banner{width:725px;height:360px;margin:0 auto;overflow:hidden;margin-top:50px;position:relative;}
   #banner:hover>.spanner_arrow #pre{background-color:rgba(10,10,10,0.3);}
   #banner:hover>.spanner_arrow #next{background-color:rgba(10,10,10,0.3);}
   #banner_imgs {width:5075px;height:360px;position:absolute;}  
   #banner_imgs img{width:725px;height:360px;display:inline-block;float:left;position:relative;}
   .banner_buttons{position:absolute;width:725px;text-align:center;bottom:5px;left:0px;}
   .banner_buttons span{width:20px;height:20px;background-color:rgba(20,20,20,0.3);
   display:inline-block;border-radius:20px;margin:2px 5px;}
   .banner_buttons .on{background-color:#F63;}
   #pre{width:50px;height:50px;float:left;background-color:rgba(10,10,10,0.1);text-align:center;line-height:50px;color:#FFF;cursor:pointer;position:absolute;left:10px;top:150px;}
   #next{width:50px;height:50px;float:right;background-color:rgba(10,10,10,0.1);text-align:center;line-height:50px;color:#FFF;cursor:pointer;position:absolute;right:10px;top:150px;}
   
</style>

<script type="text/javascript">
   window.onload=function(){
	    var banner=document.getElementById('banner');
	    var pre=document.getElementById('pre');
		var next=document.getElementById('next');
		var banner_imgs=document.getElementById('banner_imgs');
		var buttons_list=document.getElementsByClassName('banner_buttons');
		var buttons= buttons_list.item(0).getElementsByTagName('span');		
		var index=1;
		var animated=false;
		var timer;
		function showButtons(){
		     for(var i=0;i<buttons.length;i++){
			     if(buttons[i].className=='on'){
				      buttons[i].className='';
					  break;	 
				}
			 }	  
			 buttons[index-1].className='on';
		}
		function animate(offset){
			animated=true;
			var newList= parseInt(banner_imgs.style.left)+offset;		
			function go(){
			    var time=500;
		        var interval=100;
			    var speed=offset/(time/interval);
				if((speed<0&&parseInt(banner_imgs.style.left)>newList)||(speed>0&&parseInt(banner_imgs.style.left)<newList)){
					 banner_imgs.style.left=parseInt(banner_imgs.style.left)+speed+'px';
				     setTimeout(go,interval);
				}
				else{
				   	banner_imgs.style.left=newList+'px';
					if(newList>-725){
						banner_imgs.style.left=-3625+'px';
			        }
			        if(newList<-3625){
						banner_imgs.style.left=-725+'px';	
			        }	
					animated=false;
				}

			}
			go();


	    }
		pre.onclick = function(){
				if(!animated){
				   if(index==1){
				   index=5;	
				   }
				   else{
				   index -= 1;
				   }
                   showButtons();
				   animate(725);
				}			
	    }
		next.onclick = function(){
			if(!animated){
			    if(index==5){
				   index=1;
				}
				else{
				  index += 1;
				}
		        showButtons();
				animate(-725);
			}
		     
	
		}
		for(var i=0;i<buttons.length;i++){
			 if(!animated){
		      buttons[i].onclick=function(){
				 if(this.className=='on'){
				    return;	 
				 }				 
				 var currentIndex=parseInt(this.getAttribute('index'));
			     var offset=-725*(currentIndex-index);
				 
				 	 animate(offset);
				 	
			     index=currentIndex;
                 showButtons();	 
		       }
		    }
	   }
	   function play(){
		 timer = setInterval(function(){
			      next.onclick();
			   },3000);
	   }
	   function stop(){
	      clearInterval(timer); 
	   }
	   banner.onmouseover=stop;
	   banner.onmouseout = play;
	   play(); 
  }
</script>
</head>
<body>
   <div id='banner' class="comWidth">
       <div id="banner_imgs" style="left:-725px;" class="clearfix">
           <a href="#"><img src="images/5.jpg" alt=""></a>
           <a href="#"> <img src="images/1.png" alt=""></a>
           <a href="#"><img src="images/2.jpg" alt=""></a>           
           <a href="#"><img src="images/3.jpg" alt=""></a>
            <a href="#"><img src="images/4.png" alt=""></a>
            <a href="#"><img src="images/5.jpg" alt=""></a>
            <a href="#"><img src="images/1.png" alt=""></a>
       </div>
       <div class="banner_buttons">
          <span index="1" class="on"></span>
          <span index="2"></span>
          <span index="3" ></span>
          <span index="4" ></span>
          <span index="5"></span>
       </div>
       <div class="spanner_arrow clearfix">
          <span id="pre"><</span>
          <span id="next">></span>
       </div>
   </div>

</body>
</html>

相關推薦

javascript實現圖片

有兩點需要注意:①css中的left屬性不能用xxx.style.left獲得,把該屬性寫在html中的style中就可以獲得。②自定義屬性獲取方法:   如 <span index="2"></span>可以用var currentIndex=par

JavaScript學習之陣列實現圖片

js程式碼: <script type="text/javascript"> //定義num為0 var num=0; //定義一個數組,其中元素為要實現輪播的圖片

JavaScript實現圖片和滑鼠懸停顯示

例: 提前放好了四張圖片,並編號。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www

原生javascript實現圖片效果

         最近學習javascript實現動畫效果,就用原生的javascript程式碼實現了圖片輪播的效果,供大家參考學習。 1.首先設定圖片輪播的地方(id=banner) 2.然後是一個圖片組 3.然後是一個按鈕層,用來定點陣圖片組( ul-->li)

jquery實現圖片

CSS樣式: *{ margin: 0; padding: 0; } ul{ list-style:none; } .slideShow{ width: 620px; height: 700px; /*其實就是圖片的高度*/

JavaScript實現圖片

<!DOCTYPE html> <html> <head> <script > var time; function init(){ //設定定時操作 time=setInterval("show()",0); //3秒執行一

JavaScript 實現圖片

今天給大家介紹下怎麼用 JS 實現圖片輪播效果。 原理描述: 使用JS實現輪播的原理是這樣的:  假設初始的情況,下圖一個網格代表一個圖,初始時,顯示1 : 當進行一次輪播後,顯示變為下圖 顯示2: 依次類推。 程式碼實現: 1 JS 程式碼: &

原生JS實現 圖片切換 功能

效果如圖:程式碼如下:<!DOCTYPE HTML><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title

javascript 超簡單程式碼實現圖片功能

一  利用setInterval()方法 1. <script type="text/javascript"> var tus=["1.jpg","2.jpg","3.jpg","4.jp

使用原生javascript和css實現圖片效果

<!DOCTYPE HTML> <html lang="zh-CN"> <head> <meta charset="utf-8"> <title>圖片輪播</title>

iOS開發項目實戰——Swift實現圖片與瀏覽

0.10 上網 timer類 開發項目 cas hub string obj tle 近期開始開發一個新的iOS應用,自己決定使用Swift。進行了幾天之後,發現了一個非常嚴峻的問題。那就是無論是書籍,還是網絡資源,關於Swift的實在是太少了,隨便一

jq實現簡單

cti 標簽 function radi har mil ott ava 懸停 一個簡單的實例: css代碼: <style type="text/css">@charset "utf-8";*{ padding:0px; border:

JavaScript實現

n) undefined add tom als one lin 例如 fun 當初學習JavaScript的時候,想學習輪播圖是怎麽寫的,結果在百度搜了半天也很難搜出一個完整的輪播圖案例。現在就分享一個用js寫的輪播圖供大家參考和學習,有什麽錯誤的地方或有更好

CSS/HTML/JS實現圖片

class fff 瀏覽器 tro back 全局 實現圖 func 原理 實現原理 將點擊的a標簽的href屬性值賦給img標簽的src屬性,這樣有個好處,就是如果瀏覽器不支持js的話,點擊a標簽也可跳轉到圖片地址看到圖片,不會影響內容的呈現 註:需要導入jquery

原生JavaScript實現無縫

原生 原生js ted 結束 阻止 time == 實現圖 put 無縫輪播圖是頁面常用的特效之一,然而在實際的開發過程中,大部分的開發者都會使用插件來對輪播圖進行開發,那麽它的底層到底是怎麽實現的呢,本文章將圍繞這一問題展開探討。 在討論如何利用原生JS實現圖片之間無縫切

使用JQuery實現圖片效果

left 簡述 flow href 集合 jpg -i round 輪播 【效果如圖】 【原理簡述】 這裏大概說一下整個流程: 1,將除了第一張以外的圖片全部隱藏, 2,獲取第一張圖片的alt信息顯示在信息欄,並添加點擊事件 3,為4個按鈕添加點擊偵聽,點擊相應的按鈕,用

原生JS實現圖片

讓其 gin 偏移量 adding char 效率 lin doc 動畫效果 <!doctype html> <html lang="en"> <head> <meta charset="UTF-8">

Flexslider插件實現圖片、文字圖片相結合滑動切換效果

remove 12px body 類型 ons art cal 選項 csharp 插件下載:   點擊下載 密碼: fbeg Flexslider具有以下特性: 支持滑動和淡入淡出效果。 支持水平、垂直方向滑動。 支持鍵盤方向鍵控制。 支持觸控滑動。 支

使用Ajax+jQuery來實現前端收到的數據在console上顯示+簡單的主頁設計與bootstrap插件實現圖片

value size 靠譜 實現圖 active length oot function 想要 1.實現前端輸入的數據在console上顯示 上一篇是解決了在前端的輸入信息在cygwin上顯示,這次要給前臺們能看見的數據,因為數據庫裏插入的數據少,所以寫的語句翻來覆去就那幾

C# winform窗體實現圖片

1、定義一個方法設定控制元件 和執行緒時間 /// <summary> /// 改變圖片 /// </summary> /// <param name="img">圖片</param>