1. 程式人生 > >原生javascript實現圖片輪播效果

原生javascript實現圖片輪播效果

         最近學習javascript實現動畫效果,就用原生的javascript程式碼實現了圖片輪播的效果,供大家參考學習。

1.首先設定圖片輪播的地方(id=banner)

2.然後是一個圖片組

3.然後是一個按鈕層,用來定點陣圖片組( ul-->li)

4.最後為按鈕層設定背景以及顯示圖片的alt資訊

可以先構造出html結構

<span style="font-family:SimSun;"><div id="main">
	
	<div id="banner">
		<img src="images/T_1.png"alt="第一張圖" />
		<img src="images/T_2.png"alt="第二張圖" />
		<img src="images/T_3.png"alt="第三張圖" />
		<img src="images/T_4.png"alt="第四張圖" />
		<img src="images/T_5.png"alt="第五張圖" />
		<img src="images/T_6.png"alt="第六張圖" />
		<ul>
			<li>●</li>
			<li>●</li>
			<li>●</li>
			<li>●</li>
			<li>●</li>
			<li>●</li>
		</ul>
		<span> </span>
		<strong> </strong>
	</div>
</div></span>

至於CSS樣式,附件原始碼中已給出。接著介紹封裝的函式,直接看原始碼

//獲取某組節點的數量
Base.prototype.length = function () {
	return this.elements.length;
};

//獲取某一個節點的屬性   ******
Base.prototype.attr = function (attr) {
	return this.elements[0][attr];
};

//獲取某一個節點在整個節點組中是第幾個索引  ******
Base.prototype.index = function () {
	var children = this.elements[0].parentNode.children;
	for (var i = 0; i < children.length; i ++) {
		if (this.elements[0] == children[i]) return i;
	}
};

//獲取某一個節點,並且Base物件  *******
Base.prototype.eq = function (num) {
	var element = this.elements[num];
	this.elements = [];
	this.elements[0] = element;
	return this;
};



//設定CSS
Base.prototype.css = function (attr, value) {
	for (var i = 0; i < this.elements.length; i ++) {
		if (arguments.length == 1) {
			return getStyle(this.elements[i], attr);
		}
		this.elements[i].style[attr] = value;
	}
	return this;
};

//設定innerHTML
Base.prototype.html = function (str) {
	for (var i = 0; i < this.elements.length; i ++) {
		if (arguments.length == 0) {
			return this.elements[i].innerHTML;
		}
		this.elements[i].innerHTML = str;
	}
	return this;
};



//設定滑鼠移入移出方法   ******
Base.prototype.hover = function (over, out) {
	for (var i = 0; i < this.elements.length; i ++) {
		addEvent(this.elements[i], 'mouseover', over);
		addEvent(this.elements[i], 'mouseout', out);
	}
	return this;
};



//設定顯示
Base.prototype.show = function () {
	for (var i = 0; i < this.elements.length; i ++) {
		this.elements[i].style.display = 'block';
	}
	return this;
};

//設定隱藏
Base.prototype.hide = function () {
	for (var i = 0; i < this.elements.length; i ++) {
		this.elements[i].style.display = 'none';
	}
	return this;
};
原生的javascript實現圖片輪播完整程式碼,有部分註釋,其中有些註釋的部分是自己的除錯過程。
$(function () {
	//輪播器初始化
	$('banner img').css('display','none');
	//alert();
	$('#banner img').eq(0).css('display', 'block');
	$('#banner ul li').eq(0).css('color', '#333');
	//$('#banner strong').html('asfsdc');
	$('#banner strong').html($('#banner img').eq(0).attr('alt'));  //獲取alt的屬性值
	
	//輪播器計數器
	var banner_index = 1;
	//自動輪播
	var banner_timer = setInterval(banner_fn,1000);
	
	//手動輪播器
	$('banner ul li').hover(function () {
	//var num = $(this).index();
	 // alert(num);
	    clearInterval(banner_timer);    //清理計時器,停止播放
	   //	alert($(this).css('color'));
	  	banner(this);
		
	},function () {
	  banner_index = $(this).index() + 1;
	  banner_timer = setInterval(banner_fn,1000);
	});
	
		
	function banner(obj) {
		$('#banner img').css('display', 'none');
		$('#banner img').eq($(obj).index()).css('display', 'block');
		$('#banner ul li').css('color', '#999');
		$(obj).css('color', '#333');
		$('#banner strong').html($('#banner img').eq($(obj).index()).attr('alt'));
	}
	
	function banner_fn() {
		if (banner_index >= $('#banner ul li').length()) banner_index = 0;
		banner($('#banner ul li').eq(banner_index).first());   //傳遞本體
		banner_index++;
	}
});
上張效果圖<img src="https://img-blog.csdn.net/20160610121559382?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

 總結;目前實現了自動輪播和手動暫停的功能,接下來的想法是設定滾動動畫功能,並可以計入上下輪播選擇,持續更新中.....
原始碼地址:http://pan.baidu.com/s/1eSg8rr8




相關推薦

原生javascript實現圖片效果

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

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

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

原生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">

html中使用JS實現圖片效果

HTML 部分 <div id="bannner" class="main_center_bannar">

html+css+js簡單實現圖片效果

<script>  index=0;function show_img(){             imgs=document.getElementById("shidian_img").children; //獲取所以圖片 並且儲存到陣列imgs數組裡             for(i =0

原生JS實現 圖片切換 功能

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

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

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

JS原生程式碼實現圖片無縫切換的一種思路

JS實現圖片輪播是個老生常談的問題,也是新手的必由之路,在這裡提供一種思路,供大家參考: 1.生成DIV做外框,並設定overflow:hidden;  // 每個方法都必須有的 2.建立一個數組arr,放置圖片地址 3.生成兩個並排的圖片img1,img2,初始化圖片地址

+【CSS3】使用純css程式碼實現圖片效果

 使用純CSS3程式碼實現簡單的圖片輪播。 基本思路: 以5張圖片為例: 1.基本佈局: 將5張圖片左浮動橫向並排放入一個div容器(#photos)內,圖片設定統一尺寸,div寬度設定5個圖片的總尺寸,然後放入相框容器div(#frame),相框設定1個圖片

javascript實現圖片

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

【Android基礎知識】使用Gallery和ImageSwitcher實現圖片效果

使用Gallery和ImageSwitcher實現滑動Gallery,切換ImageSwitcher的圖片。 佈局檔案 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

HTML+CSS+JQ實現圖片效果

焦點圖廣泛運用於主頁的醒目位置放置廣告,簡單好用,加上效果也很好看。 實現的效果: 5張圖片每兩秒輪播一次,右下角的數字隨圖片而變換,滑鼠放在數字上圖片停止,移走滑鼠繼續播放。 實現步驟: 1

Android實現圖片效果

註明:轉載請註明本文連結MainActivity.javapackage com.example.carr.advertisement; import android.content.Intent; import android.os.Environment; import

JS實現圖片效果(自動和手動)

本次輪播效果圖如下:具有以下功能:1.自動播放(滑鼠進入顯示區域時停止播放) 2.左右焦點切換  3.底下小按鈕切換以下為實現程式碼:首先是html程式碼:<!DOCTYPE html> <html lang="en"> <head>

原生JavaScript實現水平

<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8" /> <script src="日常封裝函式.js" type="text/javascrip

JavaScript實現圖片

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

JavaScript 實現圖片

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

實現廣告圖片效果-AndroidImageSild

left anim wpa img listener pri des indicator ext 在AS中的使用: 1.在build文件中進行配置 compile ‘com.squareup.picasso:picasso:2.3.2‘ comp