>我們將箭頭添加到我們的旋轉木馬中,以允許用戶在不同的項目之間導航,現在是時候讓它們有用的JavaScript。
>在本教程的延續中,我們將學習如何正確包含我們的腳本,然後我們編寫一個腳本,該腳本將啟動一個函數,該函數在用戶擊中箭頭時會為項目動畫。>鏈接JavaScript文件
>在這裡,我們將使用JavaScript使我們的箭頭有用。至於CSS部分,創建一個新文件。我稱其為carousel.js,並將其放在插件文件夾的根部。
>前兩個參數與WP_ENQUEUE_STYLE()相同。然後我們找到一個數組。此數組列出了依賴項,我們的腳本需要工作的腳本。我選擇使用jQuery來解決瀏覽器兼容性問題,因此我向WordPress表示我想使用它:正如我們在文章中看到的有關WordPress中的腳本('jquery'的腳本)中所見,“ jQuery”是WordPress的公認價值。
。
第四參數是腳本的版本編號。這裡不是很重要(有關更多信息,請參見之前鏈接的文章),但是我們需要使用最後一個參數並將其設置為true,以便我們的腳本將包含在頁腳中。<span>wp_enqueue_script('carousel', plugin_dir_url(__FILE__) . 'carousel.js', array('jquery'), '1.0', true);</span>
選擇頁腳而不是標題的優點是,我們可以在任何地方使用WP_ENQUEUE_SCRIPT()。與WP_ENQUEUE_STYLE()一樣,我們沒有在WP_head()之前使用它的約束。然後,我們只有在必要時才能夠包含我們的腳本:僅當我們顯示旋轉木馬時。
>放置wp_enqueue_script()的最佳場所,因此在我們的display_carousel()函數的條件下。我們只有在有項目顯示時才顯示旋轉木馬,因此我們將包含具有相同條件的腳本。>
<span>wp_enqueue_script('carousel', plugin_dir_url(__FILE__) . 'carousel.js', array('jquery'), '1.0', true);</span>
>
我們想做什麼?
<span>function display_carousel() { </span> <span>// … </span> <span>// Here we retrieve the links </span> <span>// … </span> <span>if (!empty($links)) { </span> <span>wp_enqueue_script(/* parameters listed above */); </span> <span>// … </span> <span>// Display </span> <span>// … </span> <span>} </span><span>}</span>
>
> 為了顯示第二個項目,我們必須將UL塊移到左側,以便將第二個項目的左側與旋轉木馬塊的左側對齊。這可以通過負左側邊緣來實現。為了測試我們需要使用的值,我們可以嘗試一些CSS代碼(我們不需要它,我們就立即刪除了它)。
>這條簡單的線應該得到解釋。如果測試它,則應該看到未顯示第一項,而是看到第二個項目。您可以測試另一個值,以更好地了解發生了什麼。使用-50px,我們將UL塊50像素移向左側。我在上面的CSS中向您展示的值,因為輪播的寬度為900像素,我可以顯示第二個項目,值為-900px。
<span>jQuery(function($) { </span> <span>// The code we will write must be placed here </span><span>});</span>
>
首先,我們將編寫將顯示另一個項目的功能。這個將接受一個參數,方向。如果我們要顯示上一項,則必須將此方向設置為-1,並且,如果要顯示下一個項目,則必須將其設置為1。
<span>wp_enqueue_script('carousel', plugin_dir_url(__FILE__) . 'carousel.js', array('jquery'), '1.0', true);</span>
>
<span>function display_carousel() { </span> <span>// … </span> <span>// Here we retrieve the links </span> <span>// … </span> <span>if (!empty($links)) { </span> <span>wp_enqueue_script(/* parameters listed above */); </span> <span>// … </span> <span>// Display </span> <span>// … </span> <span>} </span><span>}</span>
> 為了實現這一目標,我們獲得了邊距左側屬性的當前值。問題在於,此值大約是-200%,我們希望一個數字:要刪除“%”,我們使用ParseInt()函數將值轉換為整數(例如'-200%'變為-200)。由於我們想要一個積極的整數,我們添加了一個“減”標誌(例如,從-200獲得200個),然後除以100,以獲取所需的價值(例如2,而不是200)。
>您可能會想知道為什麼我們不使用UL.CSS('Margin-Left')獲取邊距左側屬性的價值。實際上,.css()是一種jQuery方法,在我們的背景下,似乎是一個更好的主意。問題是這種方法不會給我們一個百分比。使用與上述相同的值,如果當前項目是第三個項目,則保證金左派屬性設置為-200%,而.css()方法將返回-1800px。要使用像素中的此值來計算當前項目,然後我們需要使用大容器的寬度,我更喜歡僅使用UL塊。。
>現在我們可以計算出要顯示的項目的索引,這要歸功於我們功能的參數中給出的方向。
新項目是否存在?
在顯示新項目之前,我們需要測試它是否存在。如果new_link小於或等於-1,或者大於或等於項目總數,則它不存在,我們無法顯示,因此移動UL塊不是一個好主意。請注意,此測試似乎是多餘的,因為當我們無法進一步走時不會顯示箭頭,但是確保實際上可以完成某件事總是一個好主意。<span>jQuery(function($) { </span> <span>// The code we will write must be placed here </span><span>});</span>
>
<span>wp_enqueue_script('carousel', plugin_dir_url(__FILE__) . 'carousel.js', array('jquery'), '1.0', true);</span>
>
一些更實際用途的別名>
<span>function display_carousel() { </span> <span>// … </span> <span>// Here we retrieve the links </span> <span>// … </span> <span>if (!empty($links)) { </span> <span>wp_enqueue_script(/* parameters listed above */); </span> <span>// … </span> <span>// Display </span> <span>// … </span> <span>} </span><span>}</span>
>
顯示“下一個”項目的函數完全相同,但1作為carousel_show_another_link()的參數為1。我選擇稱其為carousel_next_link()。附加事件
我們要將carousel_previous_link()函數附加到每個“以前”箭頭。使用旋轉木馬的DOM樹,我們可以輕鬆地檢索它們,就像我們想在CSS中造型時檢索它們一樣。
<span>jQuery(function($) { </span> <span>// The code we will write must be placed here </span><span>});</span>
然後,我們可以以相同的方式將carousel_next_link()函數連接到右箭頭(#carousel ul a.carousel-next)。
><span><span>#carousel ul</span> { </span> <span>margin-left: -100%; </span><span>}</span>
為了防止此錯誤,我們可以初始化此屬性的值。仍在文檔準備就緒時調用的函數(例如,在附加事件之前),添加以下行。
>將UL塊的邊距左屬性設置為0,為默認值。現在將存在此屬性,而無需移動塊。
>>您現在可以單擊箭頭,旋轉旋轉木馬已完成!
總結<span>function carousel_show_another_link(direction) { </span><span>}</span>
>
在結束時,我會說,即使我們保留了生成的HTML代碼,也可以選擇許多不同的方法來構建轉型旋轉木馬:我們可以選擇不同的樣式或編寫腳本的不同方法。實際上,我們在這裡寫的腳本只是一個示例,我們可以編寫一個完全不同的結果。
>您可以自己決定是否喜歡我們在此處使用的代碼。如果沒有,請不要猶豫編輯!>
即使您喜歡我們在這裡所做的事情,您仍然可以增強結果。例如,訪問者必須擊中箭頭才能查看其他項目:您可以嘗試使用function settimeout()。如果您想查看完成的代碼,或者自己嘗試插件,則可以在此處下載。
以上是構建WordPress旋轉木製插件:第3部分的詳細內容。更多資訊請關注PHP中文網其他相關文章!