過去幾個月中,微軟進一步展現了對Chromium開源項目的興趣和熱情,從而為Chrome、Edge以及其他基于該項目的瀏覽器做出各種貢獻。在最新提交的提案中,希望通過部署EdgeHTML風格的滾動特性從而讓Chromium的滾動變得更加靈敏。
在最新提交的Commit中,微軟希望將Impulse-style (也就是EdgeHTML-style) 滾動動畫加入到Chromium瀏覽器中。微軟表示已經將該滾動動畫移植到基于Chromium的Edge Dev和Canary通道版本中。
Impulse-style滾動動畫在Edge瀏覽器中默認處于啟用狀態。對于Chrome用戶來說,在未來幾天可以通過啟用實驗性Flag進行啟用。微軟表示Impulse-style滾動提供了更靈敏的滾動效果。鼠標滾輪的每個刻度都試圖模仿實際物理滾動效果,頁面滾動會先快速移動然后慢慢停下來。
此外微軟正努力推薦另一項稱之為“percent-based scrolling”(基于百分比的滾動)的滾動特性,允許瀏覽器將鼠標滾輪或者鍵盤滾動解釋為預期滾動條的百分比,這意味著在啟用該功能之后滾動體驗會更加流暢。微軟表示正努力將經典版Edge瀏覽器的優秀特性移植到Chromium平臺上,而基于百分比的滾動方式只是其中之一。
SS 禁止瀏覽器滾動條的方法(轉)
1、完全隱藏 在<boby>里加入scroll="no", 可隱藏滾動條;
<boby scroll="no">
這個我用的時候完全沒效果, 不知道是什么原因! 不過好多人說這么用可以, 大概是用的位置不一樣吧
2、在不需要時隱藏 指當瀏覽器窗口寬度或高度大于頁面的寬或高時, 不顯示滾動條;反之, 則顯示:
<boby scroll="auto">
3、樣式表方法 在<boby>里加入style="overflow-x:hidden", 可隱藏水平滾動條;加入style="overflow-y:hidden", 可隱藏垂直滾動條。
被包含頁面里加入 <style> html { overflow-x:hidden; } </style> 有一段解釋是這樣說的:body{ overflow-x:hidden; }在標準 DTD 下是不可以的
我的問題是用這段代碼解決的body{overflow-y:hidden; }
4、另一種方法
<style type="text/css"> html { overflow-x:hidden; overflow-y:hidden; } </style>
5、在用ie6瀏覽有框架的xhtml頁面的時候, 默認會水平和垂直滾動條會一起出現, 這是ie6的一個bug, 在firefox上是正常的, 出現的原因是其對XHTML 1.0 transitional doctype的解釋缺陷.
對于這個bug一般有3種解決方案,
方法1: 代碼:
html { overflow-y: scroll; }
原理:強制顯示ie的垂直滾動條,而忽略水平滾動條 優點:完全解決了這個問題, 允許你保持完整的XHTML doctype.
缺點:即使頁面不需要垂直滾動條的時候也會出現垂直滾動條。
方法2: 代碼:
html { overflow-x: hidden; overflow-y: auto; }
原理:隱藏橫向滾動,垂直滾動根據內容自適應
優點:在視覺上解決了這個問題.在不必要的時候, 未強制垂直滾動條出現.
缺點:只是隱藏了水平滾動條,如果頁面真正需要水平滾動條的時候, 屏幕以外的內容會因為用戶無法水平滾動,而看不到。
方法3: 代碼:
body { margin-right: -15px; margin-bottom: -15px; }
原理:這會在margin的水平和垂直方向上添加一個負值, IE添加了該精確數值后, 便會去除對滾動條的需求假象.
優點:在視覺上解決了這個問題, 垂直滾動根據內容自適應
缺點:由于"人為創建"了15px的外邊距(margin), 所以無法使用該填充過的屏幕區域
前端開發來說,通過動畫來提升交互效果是很常見的。在很早以前,做web動畫主要通過javascript或者jquery或者flash這樣的手段,非常麻煩,自打有了ccs3,做動畫就太方便了,只需幾行css代碼就可以搞定。
這里我們就演示一個常見的循環滾動效果,任務是這樣:先準備一個圖片,平鋪到頁面上充滿整個屏幕,然后就讓畫面一直向上循環滾動,形成無邊無際的感覺。
雖然可以從網上搜到一些類似的代碼,但是魚龍混雜,無關緊要的代碼非常多,不夠純粹。如果要弄明白動畫的原理,只有自己動手做一遍才能真正消化吃透。所以我們來一步步原創這個代碼,排除所有不必要的基礎樣式,只說要點,3個步驟你就可以完全掌握其精髓!
第一步:布局
首先,滾動的圖片需要放在一個容器里,一行html代碼即可完成:
第二步:把圖片放進容器
css中body的邊界設為0,把容器設高度100%以充滿屏幕,再調用背景圖pic.png
第三部:讓畫面動起來
咱不做標題黨,循環滾動靠的就是3行css動起來的。
先是1行 -webkit-animation屬性:4個參數分別表示:動畫名稱scroll,1秒時長,移動速度為線性的,無限循環。
然后是對應的關鍵幀 @-webkit-keyframes 屬性,這是自己定義的動畫規則,只需寫2行規則即可:
原理:動畫就是畫從一個地方動到另一個地方。對普通滾動效果來說,有起點和終點這兩個節點的位置就夠了。所以我們用0%和100%分別表示起點和終點,指定2個背景圖的xy位置坐標即可。圖片會在規定時間內從起點移動到終點,并循環下去,數值是負表示是向上移動。320px正好是圖片的高度,這樣循環的時候是無縫銜接的。
好了,最終完整的代碼如下,是不是很精練呢?保存成 index.html 即可
代碼寫完了,還要記得在當前目錄要有pic.png這個圖片哦,我隨便畫了幾筆,絕無觀賞性,建議自己找個好看點的圖片來代替。
現在用瀏覽器打開index.html即可看到效果,比較魔性的地方在于,如果你盯著看久了,關閉窗口以后會出現幻覺,仿佛整個顯示器都在向上飛,哈哈!
最后我們來說說瀏覽器兼容性問題:
大家可能注意到了,前面那2個古怪的 -webkit-animation, @-webkit-keyframes 這里的-webkit-其實是一個前綴,animation和@keyframes才是CSS的標準屬性。
當加上-webkit-后,就形成了一個針對特殊瀏覽器的專有屬性,表示用在谷歌的chrome和蘋果的safari瀏覽器上。此外還有-moz前綴代表針對firefox瀏覽器的私有屬性。
所以我們在用到css3的一些特性的時候,經常使用一大堆的重復性的代碼,比如我們今天的這個代碼,有人會寫成這個樣子:
一個簡單的動畫就要寫這么多冗余的代碼,為的只是支持一些舊的瀏覽器,有必要嗎?為什么在這個例子中我們僅僅采用了-webkit-而沒有使用其它專有屬性呢?
因為現在已經是2019年了!谷歌蘋果的瀏覽器是主流,占據了絕大部分,而其它小眾瀏覽器也大多能夠兼容他們,在版本上,大部分人安裝瀏覽器是直接下載新版本安裝使用,而非找出家里陳年的老軟盤、老光盤去安裝,家中的老電腦也早已升級不知多少回了,所以也幾乎沒有機會使用低版本的瀏覽器了!
至于微軟的IE,就更別提了,IE9以前不支持動畫的,只能用js或者jquery來寫動畫,直到IE10才支持css動畫,隨后IE被放棄,主推Edge,搞了幾天越來越頭大干脆也放棄,現在直接使用chrome內核了,所以針對ie的兼容性除非有特殊要求已經無需考慮。
你在網上能看到的范例代碼,如果有寫成那么復雜臃腫的,估計也都是3-5年前發的老文,或者抄來抄去不做思考的搬磚工留下的“初學者”筆記。
我們不仿測試一下幾款主流瀏覽器的情況看看,結論:
測試結果表明,-webkit-的寫法在4款不同內核的瀏覽器上都能正常使用,所以我們的代碼因此能得以簡化。
當然,這個例子也有局限性,比如你看,只有蘋果safari不支持標準寫法,萬一將來他改邪歸正了呢?畢竟標準寫法才是眾望所歸不是?使用針對個別瀏覽器的私有屬性寫法,雖可用但畢竟有些怪怪的,將來怎么樣還很難說呢。這樣看來,如果使用古老的處理辦法,重復N次為每個專屬瀏覽器各寫一份代碼,除了辣眼睛也真沒什么錯。
瀏覽器的兼容問題涉及面實在是非常廣,三言兩語還真說不完,以后會專門來講。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。