html5 用canvas實現圖片自動滑動切換
轉自:http://blog.csdn.net/iamke1987/article/details/9886707
圖片自動滑動效果很多網站都要用,最近在學html5就拿這個練練手,發現用canvas實現起來其實很簡單。程式碼比較粗糙,有很多改進的地方,不過還是先記錄一下。
一. html檔案
- <!DOCTYPE html>
- <htmllang="en">
- <head>
- <metacharset="utf-8"/>
- <title>HTML5 Images Slider</title>
-
<script
- <scriptsrc="test.js"></script>
- <linkhref="style.css"rel="stylesheet"/>
- </head>
- <body>
- <divid="container">
- <canvasid="imgs"width="500"height="300"onclick="canvasClick()"></canvas>
-
</div
- <divclass="imgGallery">
- <spanclass="cover"><imgsrc="1.jpg"id="img1"width="125"height="150"onclick="iconClick(this.id)"></span>
- <imgsrc="2.jpg"id="img2"width="125"height="150"onclick="iconClick(this.id)">
-
<imgsrc="3.jpg"id="img3"width="125"height="150"onclick
- <imgsrc="4.jpg"id="img4"width="125"height="150"onclick="iconClick(this.id)">
- </div>
- </body>
- <footer>
- </footer>
- </html>
二. js檔案,名字test.js
[javascript] view plaincopy- var images = new Array();
- var cIndex = 0;
- var speed = 5;
- var context;
- var canvas;
- var currentImage;
- var width=300;
- var height=300;
- var stopX = 95;
- var stopY = 0;
- var autoTimeout;
- var manuTimeout;
- var interval;
- var img1;
- var img2;
- var img3;
- var img4;
- var timeoutInterval = 5;
- function slideImage(id,x,y,imgObj){
- this.speed = speed;
- this.preImage = null;
- this.nextImage = null;
- this.imgObj=imgObj;
- this.x=x;
- this.y=y;
- this.direction="right";
- this.id = id;
- }
- function buttonNext(x,y,bwidth,bheight){
- this.x = x;
- this.y = y;
- this.width = bwidth;
- this.height = bheight;
- }
- $(document).ready(
- function(){
- InitImages();
- canvas = document.getElementById("imgs");
- context = canvas.getContext("2d");
- //移動圖片
- context.drawImage(currentImage.imgObj,currentImage.x,currentImage.y,width,height);
- context.drawImage(currentImage.preImage.imgObj,currentImage.preImage.x,currentImage.preImage.y,width,height);
- context.drawImage(currentImage.nextImage.imgObj,currentImage.nextImage.x,currentImage.nextImage.y,width,height);
- context.fillStyle="rgba(100,150,185,0.5)";
- context.fillRect(0,0,100,height);
- context.fillRect(400,0,100,height);
- interval = setTimeout("intervalSlide()", 20);
- }
- );
- function drawFrame(){
- context.clearRect(0,0,canvas.width,canvas.height);
- //呼叫beginPath()確保不會接著上次繪製的圖形繪製
- context.beginPath();
- context.drawImage(currentImage.imgObj,currentImage.x,currentImage.y,width,height);
- context.drawImage(currentImage.preImage.imgObj,currentImage.preImage.x,currentImage.preImage.y,width,height);
- context.drawImage(currentImage.nextImage.imgObj,currentImage.nextImage.x,currentImage.nextImage.y,width,height);
- context.drawImage(currentImage.preImage.preImage.imgObj,currentImage.preImage.preImage.x,currentImage.preImage.preImage.y,width,height);
- //遮罩
- context.fillStyle="rgba(100,150,185,0.5)";
- context.fillRect(0,0,100,height);
- context.fillRect(400,0,100,height);
- //每一幀的位置變動
- currentImage.x -= speed;
- currentImage.preImage.x -= speed;
- currentImage.nextImage.x -= speed;
- currentImage.preImage.preImage.x -= speed;
- if(currentImage.x == 200){
- currentImage.nextImage.x = 500;
- }
- //到達指定位置停止變動
- if(currentImage.x != stopX){
- autoTimeout = setTimeout("drawFrame()",timeoutInterval);
- }
- else{
- }
- }
- function InitImages(){
- img1 = new slideImage("img1",-200,0,document.getElementById("img1"));
- img2 = new slideImage("img2",100,0,document.getElementById("img2"));
- img3 = new slideImage("img3",400,0,document.getElementById("img3"));
- img4 = new slideImage("img4",700,0,document.getElementById("img4"));
- img1.preImage = img4;
- img1.nextImage = img2;
- img2.preImage= img1;
- img2.nextImage= img3;
- img3.preImage=img2;
- img3.nextImage=img4;
- img4.preImage = img3;
- img4.nextImage = img1;
- currentImage=img2;
- hilightSelectedImg();
- }
- function canvasClick(){
- currentImage = currentImage.nextImage;
- manuTimeout = setTimeout("drawFrame()",timeoutInterval);
- }
- function intervalSlide(){
-
相關推薦
html5 用canvas實現圖片自動滑動切換
轉自:http://blog.csdn.net/iamke1987/article/details/9886707 圖片自動滑動效果很多網站都要用,最近在學html5就拿這個練練手,發現用canvas實現起來其實很簡單。程式碼比較粗糙,有很多改進的地方,不過還是先記錄一
HTML5 file API加canvas實現圖片前端JS壓縮並上傳 (轉載)
www. 手機 回調 pre lan 瀏覽器中 rdp 效果 二進制 一、圖片上傳前端壓縮的現實意義 對於大尺寸圖片的上傳,在前端進行壓縮除了省流量外,最大的意義是極大的提高了用戶體驗。 這種體驗包括兩方面: 由於上傳圖片尺寸比較小,因此上傳速度會比較快,交互會更
js實現圖片自動切換
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>圖片切換</title> <sty
純css3實現圖片自動切換
實現圖片自動切換需要用到的主要是css3裡面的過渡這一節的內容。 大致思路是這樣的: 1、將圖片設定為li的背景圖片; 2、規定一個@keyframes的規則使得圖片按照這個規則進行切換; 3、設定每
用原生JS實現 圖片輪播切換 功能
效果如圖:程式碼如下:<!DOCTYPE HTML><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title
HTML5 canvas實現圖片拉伸、壓縮與裁剪
前言: 我們在網頁中經常會用到圖片展示,通常情況下會給一個固定的寬高來顯示這個圖片,然而從伺服器端上傳的圖片大小是不確定的,如果直接按預設填充這個框有時候就會特別醜orz。作為一個完(wai)美(mao)主(xie)義(hui)者,讓圖片們儘可能優美
HTML5+canvas實現圖片的壓縮上傳
1.圖片上傳輸入框<input type="file" name="" class="fileUpload" accept="image/*" capture="camera"/>2.上面時候觸發onchange$('.fileUpload').on('chang
android學習——實現歡迎介面圖片動畫滑動切換
剛學習的時候想做兩個activity之間滑動切換的效果,就查了幾個部落格寫了之前的一篇“activity實現動畫切換”,現在看來這個功能好水,難看且基本不會有用到的。 但第一次啟動APP歡迎介面滑動進入的效果很常見,所以就查資料寫了這麼一個。 首先要了解一下ViewPa
用html5的canvas生成圖片並儲存到本地
前端的程式碼: function drawArrow(angle) { //Init canvas var canvas = $('#cv_Arrow')[0]; var context = canvas.getContext('2d'); var width =
原生js+css3實現圖片自動切換,圖片輪播
運用CSS3transition及opacity屬性 製作圖片輪播動畫 自己這兩天根據用js來控制觸發CSS3中transition屬性,從而寫出來的以CSS3動畫為基礎,js控制過程的圖片輪播
Android中實現類似探探中圖片左右滑動切換效果
偶然之間發現探探的左右滑動的圖片挺好玩,試著去做了下,再到後來,看到許多大神也推出了同樣仿探探效果的部落格,從頭到尾閱讀下來,寫得通俗易懂,基本上沒什麼問題。於是,實現仿探探效果的想法再次出現在腦海中。那麼,還猶豫什麼,趁熱來一發吧!就這麼愉快地決定了。
HTML5中canvas轉圖片實現截圖DEMO
首先 做一個 要截圖的容器,也就是包頁面的div, <div id = 'shareContent'> </div> <div id='img'></div> 再容器中正常寫入內容,如果頁面中有圖片元素的情況下,圖片內容
用CSS實現圖片幻燈片式的切換(所有圖片輪流顯示,每次顯示一張)
HTML 部分<div id="img-wrap"> <img src="img/1.jpg"> <img src="img/2.jpg"> <img src="img/3.jpg"> <i
用JavaScript實現點選迴圈切換圖片
<!DOCTYPE html> <html><head><meta charset="UTF-8"><title>單擊迴圈切換圖片</title><script>var i = 1;func
趙雅智_運用Bitmap和Canvas實現圖片顯示,縮小,旋轉,水印
bitmap raw 圖形 res efault ast bmp 運用 放置 上一篇已經介紹了Android種Bitmap和Canvas的使用,以下我們來寫一個詳細實例 http://blog.csdn.net/zhaoyazhi2129/article/details
ubuntu下用expect實現密碼自動輸入
echo 遠程 shell ## 告訴 linux inux word linux下 每次筆記本一開機啟動,總會連用不著且礙事的觸摸板也一塊啟動。便想寫個腳本,讓電腦啟動時關閉觸摸板。(當然,我想更好的辦法是,修改系統啟動時的加載模塊,讓觸摸板不自動加載,但是目前還不知道用
微信小程序滾動Tab實現左右可滑動切換
-h RR -i lse img url 判斷 active AR --------------------------------------------------------wxml-------------------------------------------
學習 | canvas實現圖片懶加載 && 下滑底部加載
window back mov code 圖片 wim .com rod pro 用canvas實現圖片的懶加載並且下滑到據底部60px的時候再次加載數據,模仿UC瀏覽器的新聞加載。 完整代碼:https://github.com/dirkhe1051931999
用js實現圖片(小球)在屏幕上上下左右移動
tin doctype ctx eight doc itl 左右 idt ext <html> <head> <title>Document</title> </head> <body style
【Unity】用Shader實現圖片的區域遮罩,支援半透明,實現地圖動態上色功能
一個專案,做世界地圖時,希望未開啟的地塊是線稿,新地塊開啟時,做一個上色處理。 想到的方案就是:上了色的彩圖蓋線上稿上,然後用mask 控制彩圖的區域性顯隱。 網上找了一個,可以半透明遮罩的shader:https://www.jianshu.com/p/1d9d439c28fa 要控制不同區塊