如何透過3個簡單的步驟構建javascript幻燈片

今天我將向您展示如何從頭開始構建Javascript幻燈片--讓我們開始吧!...

如果你讀過我們的網站**指南,你可能想知道下一步該怎麼做才能提高你的技能。**照片幻燈片是一項非常簡單的任務,它可以教會你獲得編程工作所需的寶貴技能。

javascript-slideshow-featured

今天我將向您展示如何從頭開始構建JavaScript幻燈片。我們直接跳進去!

先決條件

在開始編寫代碼之前,您需要知道一些事情。除了您選擇的合適的web瀏覽器和文本編輯器(我推薦Sublime text),您還需要一些HTML、CSS、JavaScript和jQuery方面的經驗。

如果你對自己的技能不太自信,請確保閱讀了我們的指南,使用文檔對象模型和這些技巧來學習CSS。如果您對JavaScript很有信心,但從未使用過jQuery,那麼請查看我們的jQuery基本指南。

1入門

此幻燈片需要幾個功能:

  1. 支持圖像
  2. 更改圖像的控件
  3. 文本標題
  4. 自動模式

這似乎是一個簡單的功能列表。自動模式將自動將圖像前進到序列中的下一個圖像。以下是我在編寫任何代碼之前所做的粗略草圖:

code planning

如果你想知道為什麼要費心計劃,那麼看看這些歷史上最嚴重的編程錯誤。這個項目不會讓任何人喪命,但在編寫更大的代碼之前,對代碼和規劃過程有一個紮實的瞭解是至關重要的——即使它只是一個粗略的草圖。

這是您開始使用的初始HTML。將其保存到具有適當名稱的文件中,例如索引.html:

<!DOCTYPE html><html> <head> <style> </style> <title>MUO Slideshow</title> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js" type="text/javascript"></script> <script type="text/javascript"> </script> </head> <body> <div id="showContainer"> <div class="imageContainer" id="im_1"> <img src="Images/1.jpg" /> <div class="caption"> Windmill </div> </div> <div class="imageContainer" id="im_2"> <img src="Images/2.jpg" /> <div class="caption"> Plant </div> </div> <div class="imageContainer" id="im_3"> <img src="Images/3.jpg" /> <div class="caption"> Dog </div> </div> <div class="navButton" id="previous">&#10094;</div> <div class="navButton" id="next">&#10095;</div> </div> </body></html>

代碼如下:

tutorial initial webpage

有點垃圾,不是嗎?先把它分解再改進。

此代碼包含“標準”HTML、head、style、script和body標記。這些部分是任何網站的重要組成部分。JQuery是通過GoogleCDN包含的——到目前為止沒有什麼獨特或特別的。

主體內部是一個id為showContainer的div。這是用於存儲幻燈片的包裝或外部容器。稍後將使用CSS對此進行改進。在這個容器中,有三塊代碼,每一塊都有相似的用途。

父類定義為imageContainer的類名稱:

<div class="imageContainer" id="im_1">

它用於存儲一張幻燈片--圖像和標題存儲在此容器中。每個容器都有一個唯一的id,由字符im\和一個數字組成。每個容器都有不同的編號,從1到3。

最後一步,引用圖像,並將標題存儲在具有caption類的div中:

<img src="Images/1.jpg" /><div class="caption"> Dog</div>

我用數字文件名創建了圖像,並將它們存儲在名為images的文件夾中。你可以調用你喜歡的任何東西,只要你更新HTML來匹配。

如果您希望幻燈片中有更多或更少的圖像,只需使用imageContainer類複製、粘貼或刪除代碼塊,記住根據需要更新文件名和ID。

最後,創建導航按鈕。這些允許用戶瀏覽圖像:

<div class="navButton" id="previous">&#10094;</div><div class="navButton" id="next">&#10095;</div>

這些HTML實體代碼用於顯示向前和向後箭頭,與圖標字體的工作方式類似。

2css

現在核心結構已經就位,是時候讓它看起來漂亮了。下面是新代碼之後的樣子:

tutorial slideshow first css

在樣式標記之間添加此CSS:

html { font-family: helvetica, arial;}#showContainer { /* Main wrapper for all images */ width: 670px; padding: 0; margin: 0 auto; overflow: hidden; position: relative;}.navButton { /* Make butt*** look nice */ cursor: pointer; float: left; width: 25px; height: 22px; padding: 10px; margin-right: 5px; overflow: hidden; text-align: center; color: white; font-weight: bold; font-size: 18px; background: #000000; opacity: 0.65; user-select: none;}.navButton:hover { opacity: 1;}.caption { float: right;}.imageContainer:not(:first-child) { /* Hide all images except the first */ display: none;}

現在看起來好多了,對吧?我們來看看代碼。

我使用的示例圖像都是670 x 503像素,所以這個幻燈片主要是圍繞這個尺寸的圖像設計的。如果您想使用不同大小的圖像,則需要適當地調整CSS。我建議您將圖像調整為匹配的大小--不同尺寸的不同圖像會導致樣式問題。

大多數CSS都是不言自明的。有代碼來定義容器的大小以存儲圖像,居中對齊所有內容,指定字體,以及按鈕和文本顏色。有幾種你以前可能從未見過的款式:

  1. 光標:指針——當您將光標移動到按鈕上時,它將光標從箭頭更改為指向性手指。
  2. 不透明度:0.65——這會增加按鈕的透明度。
  3. user select:none——這確保您不會意外地突出顯示按鈕上的文本。

您可以在按鈕中看到大部分代碼的結果:

tutorial button hover effect

這裡最複雜的部分是這條奇怪的線條:

.imageContainer:not(:first-child) {

它可能看起來很不尋常,但它是相當不言自明的。

首先,它針對具有imageContainer類的任何元素。語法:not()表示括號內的任何元素都應該排除在此樣式中。最後,第一個子語法聲明,這個CSS應該針對任何匹配名稱的元素,但忽略第一個元素。原因很簡單。由於這是幻燈片,一次只需要一個圖像。這個CSS除了第一個CSS之外隱藏所有的圖像。

三。javascript

最後一塊拼圖是JavaScript。這是使幻燈片功能正確的邏輯。

將此代碼添加到腳本標記:

$(document).ready(function() { $('#previous').on('click', function(){ // Change to the previous image $('#im_' + currentImage).stop().fadeOut(1); decreaseImage(); $('#im_' + currentImage).stop().fadeIn(1); }); $('#next').on('click', function(){ // Change to the next image $('#im_' + currentImage).stop().fadeOut(1); increaseImage(); $('#im_' + currentImage).stop().fadeIn(1); }); var currentImage = 1; var totalImages = 3; function increaseImage() { /* Increase currentImage by 1. * Resets to 1 if larger than totalImages */ ++currentImage; if(currentImage > totalImages) { currentImage = 1; } } function decreaseImage() { /* Decrease currentImage by 1. * Resets to totalImages if **aller than 1 */ --currentImage; if(currentImage < 1) { currentImage = totalImages; } }});

這似乎有悖常理,但我將跳過最初的代碼塊,直接從一半開始解釋代碼——別擔心,我解釋了所有代碼!

你需要定義兩個變量。(以下是如何在JavaScript中定義變量。)這些變量可以看作幻燈片的主要配置變量:

var currentImage = 1;var totalImages = 3;

它們存儲幻燈片中的圖像總數以及要開始播放的圖像數。如果有更多圖像,只需將totalImages變量更改為圖像總數。

這兩個函數增加圖像和減少圖像前進或後退當前圖像變量。如果此變量低於1或高於totalImages,則會重置為1或totalImages。這樣可以確保幻燈片在到達結尾時循環播放。

回到代碼的開頭。此代碼“針對”下一個和前面的按鈕。單擊每個按鈕時,它會調用適當的增減方法。完成後,它只需淡出屏幕上的圖像,並在新圖像中淡出(如currentImage變量定義的那樣)。

stop()方法內置於jQuery中。這將取消任何掛起的事件。這確保了每個按鈕的按下是順利的,這意味著你沒有100個按鈕按下所有等待執行,如果你有點瘋狂的鼠標。fadeIn(1)和fadeOut(1)方法根據需要淡入或淡出圖像。該數字指定淡入淡出的持續時間(毫秒)。嘗試將此更改為更大的數字,如500。數值越大,轉換時間越長。然而,走得太遠,你可能會開始看到奇怪的事件或圖像變化之間的“閃爍”。以下是幻燈片:

tutorial slideshow example

自動推進

這張幻燈片現在看起來很不錯,但還需要最後一次潤色。自動前進是一個功能,將真正使這個幻燈片發光。在設定的時間段後,每個圖像將自動前進到下一個圖像。不過,用戶仍然可以向前或向後導航。

使用jQuery這是一項簡單的工作。需要創建一個計時器,以便每X秒執行一次代碼。然而,與編寫新代碼相比,最簡單的方法是模擬“單擊”下一個圖像按鈕,並讓現有代碼完成所有工作。

下面是您需要的新JavaScript--在decreaseImage函數之後添加以下內容:

window.setInterval(function() { $('#previous').click();}, 2500);

這裡發生的事情不多。這個window.setInterval文件方法將按末尾指定的時間定期運行一段代碼。時間2500(以毫秒為單位)意味著該幻燈片放映將每2.5秒進行一次。一個較小的數字意味著每個圖像將以更快的速度前進。click方法觸發按鈕來運行代碼,就像用戶用鼠標單擊按鈕一樣。

如果您準備好迎接下一個JavaScript挑戰,請嘗試使用Gat**yJS之類的靜態網站生成器或Vue之類的前端框架構建網站。如果你是一個Ruby學習者,Jekyll也是一個選擇。下面是傑基爾和蓋茨比的比賽情況。

圖片來源:Tharanat Sardsri viaShutterstock.com網站

  • 發表於 2021-03-13 17:20
  • 閱讀 ( 52 )
  • 分類:程式設計

你可能感興趣的文章

如何在谷歌幻燈片中新增音訊

... 如何在谷歌幻燈片中新增音訊 ...

  • 發佈於 2021-03-11 01:09
  • 閲讀 ( 54 )

使用activepresenter的5個螢幕捕獲培訓影片提示

...一項有用的技能。也許你是一個工程師,想教一個新員工如何配置一些東西,一個主管試圖為員工**公司培訓影片,或者是一個藝術家**YouTube影片,向人們展示你如何創作自己的傑作。 ...

  • 發佈於 2021-03-11 17:12
  • 閲讀 ( 47 )

8谷歌幻燈片提示你應該知道在你的下一次演講

... 問答功能可透過演示者檢視訪問。只需單擊“訪問群體工具”下的“啟用新物件”。 ...

  • 發佈於 2021-03-13 03:44
  • 閲讀 ( 42 )

如何在windows中製作幻燈片

...己的音樂和自定義過渡。我已經做了一個簡短的影片演示如何快速建立一個幻燈片使用影象和音樂從您的電腦。 ...

  • 發佈於 2021-03-17 08:43
  • 閲讀 ( 59 )

你今天應該掌握的5種javascript陣列方法

...設計師到編碼專家,所有技能級別的Web開發人員都認識到JavaScript在開發現代網站中的重要性。JavaScript是如此的優勢,所以知道是否要建立應用程式是一項關鍵技能。 ...

  • 發佈於 2021-03-18 11:00
  • 閲讀 ( 52 )

如何在ipados上使用多工和文字編輯手勢

當蘋果決定將iPadOS作為自己的iPad實體時,該公司推出了一些新功能,使iPad的工作和遊戲都比以前更好。 ...

  • 發佈於 2021-03-19 07:31
  • 閲讀 ( 54 )

如何在谷歌幻燈片中建立驚人的圖表

... 為了簡單起見,下面介紹如何在googleslides中建立圖表,以及一些基本的圖形設計技巧,以確保您儘可能構建最佳的資料視覺化效果。 ...

  • 發佈於 2021-03-19 09:33
  • 閲讀 ( 51 )

microsoft office最佳流程圖模板

... 可以透過選擇形狀、右鍵單擊開啟彈出視窗,然後從“填充”選項中選擇顏色來更改顏色。 您可以透過單擊然後在形狀內部編輯文字。 透過選擇...

  • 發佈於 2021-03-20 04:27
  • 閲讀 ( 59 )

如何為google幻燈片演示建立過渡

... 下面是如何為您的Google幻燈片演示建立一個過渡。 ...

  • 發佈於 2021-03-20 11:46
  • 閲讀 ( 40 )

如何在谷歌幻燈片中建立簡報

...不熟悉谷歌幻燈片。為了澄清其中的一些誤解,下面介紹如何從頭到尾建立一個基本的簡報。 ...

  • 發佈於 2021-03-20 16:19
  • 閲讀 ( 51 )