Swiper with lightbox 輪播插件結合燈箱

Swiper 是一個功能豐富且流行的 JavaScript 輪播插件,廣泛應用於網站和行動應用程式的圖片輪播、幻燈片和滑塊展示。它提供了豐富的配置選項和自定義功能,非常容易擴充,不僅如此還有完整的Example,可讓開發者快速開始輕鬆創建出優雅且互動性強的輪播效果。

為何要加入燈箱功能

在很多使用場景下,只有輪播功能可能無法完全滿足需求,特別是當用戶想要更專注地放大圖片並細看細節時,我發現 Swiper 沒有預設這樣的功能,所以在這樣的情況下,將 Lightbox(燈箱)功能加入 Swiper 是一個明智的選擇。Lightbox 是一種常見的互動式圖片展示方式,它可以讓用戶單擊圖片時在一個彈出視窗中放大圖片,以提供更好的使用者體驗。這種結合可以為用戶提供更大的圖片展示空間,更方便地觀看圖片細節,並增加了互動性和使用便利性。

如何合併燈箱功能

這部分我已經實作在CodePen上,有興趣的可以參考下列程式碼,並可以直接在codePen上看執行結果,這樣最快

See the Pen
Untitled
by VECTOR.cool 威得數位 (@ann71727)
on CodePen.

[……]

閱讀更多

CSS 選取同層偶數元素,當 nth-child(even) 不起作用

在編輯網頁的時候很常會遇到這種情況,讓單數列與偶數列交錯,這次修改HTML不是我自己產生的,是由WordPress產生的,因此要透過CSS選擇器選取偶數列,將偶數的欄反轉,HTML結構大致如下,內容我省略

HTML:

CSS:

上述CSS不起作用,有點納悶查了一下,改用下列方法,就成功了

有遇到這問題的朋友可以試試看喔

[……]

閱讀更多

CSS RWD square 正方形

純 CSS 製作自適應 RWD 正方形,可隨容器寬度大小改變,自動調整容器高度,維持正方形比例,而正方形容器中一樣可以有內容,不受影響

HTML:

CSS:

example:

See the Pen
CSS RWD square 正方形
by VECTOR.cool 威得數位 (@ann71727)
on CodePen.

Refrance:
https://spin.atomicobject.com/2015/07/14/css-responsive-square

[……]

閱讀更多

HTML5 a tag force download

希望強制讓使用者下載檔案,但是在a標籤將網址指向檔案,在一些常用檔案例如:jpg、png、PDF,常會被瀏覽器直接開啟,無法直接下載,比較正規的做法是在發送 headers 時做這件事,但有時我們在處理靜態網頁就可以用偷吃步,在HTML5 a 標籤中多了一個download屬性,就可以用強制檔案用下載的方式讓使用者下載a標籤連結中的檔案,但這偷吃步要小心瀏覽器相容性

點我看效果 download PNG

[……]

閱讀更多

Fix An invalid form control with name=’…’ is not focusable

今天在開發一個表單程式,表單一直無法發送,開始來找問題,開啟 Chrome 開發者工具,在 Console 面板中,每送出一次表單,就會出現一個這個訊息:

An invalid form control with name=’…’ is not focusable

原因是 Chrome 阻止設定為 required 的欄位隱藏

也對拉!! 必填欄位又隱藏起來,怎麼填? 表單送出前會做一個簡單的表單驗證

這樣也不行:

<input type="text" style="display:none" required>

這樣當然也不行:

<input type="text" id="example" required>
<script>
	$('#example').hide();
</script>

這樣可以:

大概是原本就是隱藏欄位了,所以沒有特別去驗證

<input type="hidden" required>

解決方法:

開發者會去隱藏欄位當然是有原因的,有時候會因為條件判斷而顯示不同輸入欄位,例如:居住地下拉選單,但使用者可能住於國外,所以表單設計在下拉選單尾端加一個”海外”的選項,選擇了海外,就出現一個自行輸入的文字欄位,像這樣的需求其實蠻常見的,這些輸入欄位通常都只是隱藏起來,依照判斷來顯示,這種欄位當然有可能顯示出來就是必填,下方介紹幾個解決方法來解決這個問題。

novalidate

在 form 屬性加上 novalidate,關閉預設的表單驗證,表單內的所有欄位都不會進行驗證,除非有其他方式進行表單驗證,不然不建議這麼做。

<form novalidate>
    <input type="text" id="example" style="display:none" required>
    <input type="submit" value="submit">
</form>

jQuery prop(‘required’,true)

在顯示的時候,再加上 required,如此,不管隱藏的文字欄位顯示與否,表單都可以正確送出,文字欄位顯示時,就必須填寫。

<form>
    <input type="text" id="example" style="display:none">
    <input type="submit" value="submit">
</form>
<hr>
<input type="button" id="show" value="show">
<script>
$('#show').click(function(e){
	$('#example').css('display','block').prop('required',true);;
});
</script>

這是一個簡單的提示,實務上的做法就看大家如何發揮創意了

 [……]

閱讀更多