Web 開發中,經常遇到需要固定容器大小,然后內部內容超出的情況,相信非技術的也經常會遇到這樣的場景,沒錯,幾乎打開任何一個門戶網站你使用鼠標滾輪就屬于上面的情況。
解決方案自然就是 overflow 這個 CSS 屬性。
visible 默認值。內容不會被修剪,會呈現在元素框之外。
hidden 內容會被修剪,并且其余內容是不可見的。
scroll 內容會被修剪,但是瀏覽器會顯示滾動條以便查看其余的內容。
auto 如果內容被修剪,則瀏覽器會顯示滾動條以便查看其余的內容。
inherit 規定應該從父元素繼承 overflow 屬性的值。
效果如下:
visible
上面是 visible。
hidden
上面是 hidden。
scroll 與 auto
上面是 scroll 與 auto。
注意,Chrome 系列瀏覽器都會自動隱藏滾動條,不論設置 auto 還是 scroll。
因此我們才有今天的話題。
inherit 就不舉例了,這個與父元素有關。
首先,scroll 說好的顯示,被瀏覽器給搞掉了。
其次,隱藏是好事畢竟占位置,而且當今的網民基本都本能的知道滾動操作。
最后,個人舉四肢贊成自動隱藏。
但是!!!
你總會遇到不怎么上網的網民,在看不到內容時候不知所措。
亦或者,你遇到的坑爹的老板,就是要讓你顯示(這個老板可能不怎么上網……)。
或者你們產品設計對象就是一些非網民的使用。
又或者你們設計覺得有個自定義滾動條好看。
等等等等情況,相信我,你一定會遇到這個情況的。
于是我們需要定制一個滾動條,放心,CSS 偽類已經給你提供好了。
核心代碼由 Steven Lewis:https://codepen.io/stevenlewis/pen/hubpL 提供,本人用到,精簡下順便搬運。
<div class="frame"> Foo<br /> Bar<br /> Baz<br /> Help I'm trapped in an HTML factory! </div>
上面是 HTML 代碼。
frame { overflow-y: auto; border: 1px solid black; height: 3em; width: 10em; line-height: 1em; } .frame::-webkit-scrollbar { -webkit-appearance: none; } .frame::-webkit-scrollbar:vertical { width: 11px; } .frame::-webkit-scrollbar-thumb { border-radius: 8px; border: 2px solid white; background-color: rgba(0, 0, 0, .5); }
這里是對應的 CSS 代碼。
做了對比動圖,大家看一下:
auto 或 scroll
上面是 auto(或 scroll)控制,細節是右邊的滾動條會自動隱藏。
定制
上面是經過定制的,所以不會隱藏。
.frame::-webkit-scrollbar { -webkit-appearance: none; }
隱藏默認的滾動條。
.frame::-webkit-scrollbar:vertical { width: 11px; }
設置垂直滾動條寬度。
當然也有水平滾動條配置,.frame::-webkit-scrollbar:horizontal,那么就要設置他的高度的。如下:
.frame::-webkit-scrollbar:horizontal { height: 11px; }
.frame::-webkit-scrollbar-thumb { border-radius: 8px; border: 2px solid red; background-color: rgba(0, 0, 0, .5); }
滾動條的其他樣式定制,注意,這個一定也要定制,否則就是一個透明的滾動條……
OK,建議沒有用過或者忘了的小伙伴保存一下,一定會再次用到的。
avascript中制作滾動代碼的常用屬性
1.網頁可見區域寬: document.body.clientWidth; 網頁可見區域高: document.body.clientHeight; 網頁可見區域寬: document.body.offsetWidth (包括邊線的寬); 網頁可見區域高: document.body.offsetHeight (包括邊線的寬); 網頁正文全文寬: document.body.scrollWidth; 網頁正文全文高: document.body.scrollHeight; 網頁被卷去的高: document.body.scrollTop; 網頁被卷去的左: document.body.scrollLeft; 網頁正文部分上: window.screenTop; 網頁正文部分左: window.screenLeft; 屏幕分辨率的高: window.screen.height; 屏幕分辨率的寬: window.screen.width; 屏幕可用工作區高度: window.screen.availHeight;
2.假設 obj 為某個 HTML 控件。
obj.offsetTop 指 obj 距離上方或上層控件的位置,整型,單位像素。 obj.offsetLeft 指 obj 距離左方或上層控件的位置,整型,單位像素。 obj.offsetWidth 指 obj 控件自身的寬度,整型,單位像素。 obj.offsetHeight 指 obj 控件自身的高度,整型,單位像素。
我們對前面提到的“上方或上層”與“左方或上層”控件作個說明。 例如:
“提交”按鈕的 offsetTop 指“提交”按鈕距“tool”層上邊框的距離,因為距其上邊最近的是 “tool” 層的上邊框。 “重置”按鈕的 offsetTop 指“重置”按鈕距“tool”層上邊框的距離,因為距其上邊最近的是 “tool” 層的上邊框。 “提交”按鈕的 offsetLeft 指“提交”按鈕距“tool”層左邊框的距離,因為距其左邊最近的是 “tool” 層的左邊框。 “重置”按鈕的 offsetLeft 指“重置”按鈕距“提交”按鈕右邊框的距離,因為距其左邊最近的是“提交”按鈕的右邊框。
以上屬性在 FireFox 中也有效。
3.offsetTop 與 style.top 的區別
預備知識:offsetTop、offsetLeft、offsetWidth、offsetHeight 我們知道 offsetTop 可以獲得 HTML 元素距離上方或外層元素的位置,style.top 也是可以的,二者的區別是:
(1)offsetTop 返回的是數字,而 style.top 返回的是字符串,除了數字外還帶有單位:px。 (2)offsetTop 只讀,而 style.top 可讀寫。 (3)如果沒有給 HTML 元素指定過 top 樣式,則 style.top 返回的是空字符串。
offsetLeft 與 style.left、offsetWidth 與 style.width、offsetHeight 與 style.height 也是同樣道理。 offsetWidth與style.width屬性的區別在于:如對象的寬度設定值為百分比寬度,則無論頁面變大還是變小,style.width都返回此百分比,而offsetWidth則返回在不同頁面中對象的寬度值而不是百分比值
4.scrollLeft : 對象的最左邊到對象在當前窗口顯示的范圍內的左邊的距離. 即是在出現了橫向滾動條的情況下,滾動條拉動的距離. scrollTop 對象的最頂部到對象在當前窗口顯示的范圍內的頂邊的距離. 即是在出現了縱向滾動條的情況下,滾動條拉動的距離.
今天要給大家分享10款精美的HTML5圖片輪播/切換動畫,這些動畫每一個都有自己的特點,不管你是PC端的網頁,還是移動端的H5應用,都可以嘗試使用這些動畫來提高應用的用戶體驗。
?PS:請你耐心看完,文末我提供了所有動畫的源碼打包下載鏈接,如果你喜歡這些動畫,可以按需下載,希望對你有所幫助。
這是一個簡約而實用的JS畫廊相冊組件,它的特點是可以添加無限多張相片,并且支持水平無限循環滑動。另外它還支持對畫廊中的相片進行展開和折疊,并同時動態展示相片的標題和描述。這款相冊組件主要采用了jQuery插件以及CSS3的過渡動畫特性,使用起來十分方便。
這是一個基于TweenMax動畫庫的圖片碎裂切換動畫,它的特點是點擊圖片時,圖片就會像玻璃那樣碎裂成許多塊,然后漸漸地消失,直到下一張圖片顯示為止。這款圖片碎裂動畫也可以應用在焦點圖的切換動畫中,效果非常不錯。
Swiper.js是一個流行的移動端輪播圖插件,它提供了豐富的功能和配置項。這款圖片滑塊動畫就是基于Swiper.js實現的,它的特點是圖片切換的時候,圖片上方將會出現白色背景的視差效果圖層,并且它可以適配不同的瀏覽器尺寸。
這又是一個非常酷的HTML5 Canvas圖片切換動畫,它是基于知名3D動畫庫threejs實現的。在圖片切換過程中,你也可以通過鼠標拖動來查看切換時的具體細節效果。如果將它制作成一個效果非常獨特而華麗的相冊或者焦點圖插件,相信會很不錯的。
這是一個純CSS實現的手風琴特效的圖片切換動畫,它的特點是采用了CSS濾鏡特效,首先將原圖通過濾鏡變換成黑白樣式,鼠標滑過激活圖片后,再將黑白圖轉換成原圖,從而實現圖片高亮的效果。
這同樣是一款手風琴特效的圖片切換動畫,它基于jQuery開發,是一款非常不錯的jQuery圖片輪播插件。它的特點是支持自動播放,使用簡單,對于一些商品展示的站點或者app,比較適合使用。
這是一款采用SVG遮罩來實現波浪樣式的圖片切換動畫。所有的圖片采用背景圖片的方式,圖片上方定義SVG圓形路徑,通過對圓形svg路徑的樣式渲染,實現波浪切換的動畫效果。
Slicebox是一款基于jQuery的圖片切換插件,盡管jQuery在新的web系統中使用越來越少,但我們依然可以使用它的強大插件來豐富我們現有的網站。這款圖片切換插件的特點是播放上一張或下一張圖片時,圖片會出現水平分裂或垂直分裂的3D視覺效果。
這款jQuery圖片切換插件擁有簡單的使用方法和靈活的擴展方式,支持單頁面多實例,并且可適配不同的屏幕尺寸。另外通過配置,我們可以讓圖片切換組件支持自動播放、顯示切換按鈕、鼠標滑過放大圖片等特性。
這是一款純CSS實現的圖片滾動特效,它的特點是我們可以通過滾動瀏覽器的橫向滾動條,可以讓圖片進行水平切換滾動。另外圖片排列呈現3D投影的視覺效果,同時也可以在移動端通過手指滑動來實現圖片的橫向滾動瀏覽。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。