整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          如何使用CSS過渡創建逼真的運動模糊效果

          如何使用CSS過渡創建逼真的運動模糊效果

          是否曾經拍攝過某些物體快速移動的照片,尤其是在光線不足的情況下,并變成了模糊的條紋?還是整個相機都晃了晃,整個鏡頭變成了一系列條紋?這是運動模糊,是相機工作原理的副產品。

          運動模糊101

          想象一下相機。它有一個百葉窗,一扇門打開以允許光線進入,然后關閉以阻止光線進入。從它打開到關閉的時間是一張照片或一幅運動圖像。

          如果在按下快門期間框架的對象在移動,我們最終會拍攝到物體移動的照片。在電影上,這表現為穩定的涂片,對象在其起點到終點之間處于無限多個位置。運動對象最終也變成半透明的,在它后面可以看到部分背景。

          計算機要偽造的方法是對幾個子幀進行建模,然后以不透明度的一小部分將它們組合在一起。將同一對象的大量副本沿運動路徑放置在稍有不同的位置,可以創建令人信服的運動模糊傳真。

          視頻合成應用程序傾向于對其運動模糊應具有的細分設置進行設置。如果將此值設置得非常低,則可以確切地看到該技術的工作原理,例如,一個簡單的白點動畫的幀,每幀四個樣本:

          每幀四個樣本。

          每幀有12個樣本。

          到我們每幀有32個樣本時,它已經接近于完全真實了,尤其是以每秒多個幀的速度觀看時。

          運動模糊所需的樣本數量完全與內容有關。邊緣鋒利的小東西移動得很快,將需要很多子幀。但是一些模糊的動作緩慢移動可能只需要幾個。通常,使用更多會產生更令人信服的效果。

          用CSS做到這一點

          為了在CSS中近似這種效果,我們需要創建大量相同的元素,使它們成為半透明的,并將它們的動畫偏移一秒鐘。

          首先,我們將使用CSS過渡為想要的動畫設置基礎。我們將使用一個簡單的黑點,然后將其分配給懸停時的變換(如果您在移動設備上,則點按)。我們還將為邊框半徑和顏色設置動畫,以顯示此方法的靈活性。

          這是沒有運動模糊的基本動畫:

          HTML:

          <div class="container">
            Hover / Tap
            <div class="dot"></div>
          </div>
          .container {
                  width: 300px;
                  height: 100px;
                  position: relative;
                  margin: 100px auto;
                  border-radius: 50px;
                  border: 3px dotted #eee;
                  text-align: center;
                  font-family: sans-serif;
                  padding-top: 10px;
                }
          
          .dot {
                  position: absolute;
                  background: black;
                  width: 50px;
                  height: 50px;
                  border-radius: 50%;
                  transform: rotate(0deg);
                  top: 25px;
                  left: 25px;
                  transition: all 0.75s cubic-bezier(.71,0,.33,1.56) 0ms;
                }
          
                .container:hover .dot {
                  transform: rotate(360deg);
                  border-radius: 0%;
                  left: 225px;
                  background: pink;
                }

          效果圖:

          現在,讓我們制作黑點的20個相同的副本,并將它們完全放置在具有絕對位置的完全相同的位置。每個副本的不透明度為10%,比數學上正確的數字略高一些,但是我發現我們需要使它們更加不透明以看起來足夠牢固。

          下一步就是奇跡發生的地方。我們為點對象的每個克隆添加一個稍微增加的過渡延遲值。它們都將運行完全相同的動畫,但是它們各自將偏移三毫秒。

          HTML代碼:

          <div class="container">
            Hover / Tap
                    <div class="dot one"><br></div>
                  <div class="dot two"><br></div>
                  <div class="dot three"><br></div>
                  <div class="dot four"><br></div>
                  <div class="dot five"><br></div>
                  <div class="dot six"><br></div>
                  <div class="dot seven"><br></div>
                  <div class="dot eight"><br></div>
                  <div class="dot nine"><br></div>
                  <div class="dot ten"><br></div>
                  <div class="dot eleven"><br></div>
                  <div class="dot twelve"><br></div>
                  <div class="dot thirteen"><br></div>
                  <div class="dot fourteen"><br></div>
                  <div class="dot fifteen"><br></div>
                  <div class="dot sixteen"><br></div>
                  <div class="dot seventeen"><br></div>
                  <div class="dot eighteen"><br></div>
                  <div class="dot nineteen"><br></div>
                  <div class="dot twenty"><br></div>
          </div>

          CSS代碼:

          .container {
                  width: 300px;
                  height: 100px;
                  position: relative;
                  margin: 100px auto;
                  border-radius: 50px;
                  border: 3px dotted #eee;
                  text-align: center;
                  font-family: sans-serif;
                  padding-top: 10px;
                }
          
          .dot {
                  position: absolute;
                  background: black;
                  width: 50px;
                  height: 50px;
                  border-radius: 50%;
                  transform: rotate(0deg);
                  top: 25px;
                  left: 25px;
                  opacity: 0.1;
                  transition: all 0.75s cubic-bezier(.71,0,.33,1.56) 0ms;
                }
          
                .container:hover .dot {
                  transform: rotate(360deg);
                  border-radius: 0%;
                  left: 225px;
                  background: pink;
                }
          
          .dot.two {
                  transition-delay: 3ms;
                }
                .dot.three {
                  transition-delay: 6ms;
                }
                .dot.four {
                  transition-delay: 9ms;
                }
                .dot.five {
                  transition-delay: 11ms;
                }
                .dot.six {
                  transition-delay: 14ms;
                }
                .dot.seven {
                  transition-delay: 17ms;
                }
                .dot.eight {
                  transition-delay: 20ms;
                }
                .dot.nine {
                  transition-delay: 23ms;
                }
                .dot.ten {
                  transition-delay: 26ms;
                }
                .dot.eleven {
                  transition-delay: 29ms;
                }
                .dot.twelve {
                  transition-delay: 32ms;
                }
                .dot.thirteen {
                  transition-delay: 35ms;
                }
                .dot.fourteen {
                  transition-delay: 38ms;
                }
                .dot.fifteen {
                  transition-delay: 41ms;
                }
                .dot.sixteen {
                  transition-delay: 44ms;
                }
                .dot.seventeen {
                  transition-delay: 47ms;
                }
                .dot.eighteen {
                  transition-delay: 50ms;
                }
                .dot.nineteen {
                  transition-delay: 53ms;
                }
                .dot.twenty {
                  transition-delay: 56ms;
                }

          效果圖:

          這種方法的優點在于,它創建了適用于大量不同動畫的偽運動模糊效果。我們可以在那里進行顏色更改,縮放過渡,奇數定時,并且運動模糊效果仍然有效。

          使用20個對象克隆可用于大量快速動畫和慢速動畫,但是使用較少的克隆仍可以產生合理的運動模糊感。您可能需要調整克隆對象的數量,它們的不透明度以及過渡延遲的數量,以使用您的特定動畫。我們剛剛看過的演示具有稍微超乎想象的模糊效果,使其更加突出。

          最終,隨著計算機功能的發展,我希望某些主要的瀏覽器可能會開始在本地提供這種效果。然后,我們就可以消除擁有20個相同對象的荒謬之處。同時,這是一種逼真的逼真的運動模糊的合理方法。

          lass和 ID 選擇器

          • 我們之前給一個段落中添加斜體的標識的時候我們會在CSS里面這樣做,這次我們將學習使用ID選擇器來實現這項功能


          • 我們在之前的代碼中給標簽添加id
           <p id="author">
                    <strong>勞拉·瓊斯 (Laura Jones)</strong> 于 2027 年 6 月 21
                    日星期一發布
                  </p>


          • CSS代碼是這樣的,相信你能明白這是什么意思,相當于給這個段落起名字一樣
          #author {
            font-style: italic;
            font-size: 18px;
          }
          

          相同的道理,我們給版權信息也用這種方法去寫;如下所示:

              <footer><p id="copyright">版權所有 ? 2027 sbz</p></footer>


          類選擇器

          • 除了id選擇器,還有類選擇器。那么這兩個選擇器有什么區別呢?id選擇器不允許id名字有相同的,而類選擇器可以多種元素使用同一個這樣的選擇器。
          • 舉個例子,我們現在將下方的幾個作者添加同樣的類選擇器
                  <li>
                    <img
                      src="img/related-1.jpg"
                      alt="related-1"
                      width="75px"
                      height="75px"
                    /><a href="#">如何去學習網頁開發</a>
                    <p class="related-author">作者:喬納斯·施梅德特曼</p>
                  </li>
                  <li>
                    <img
                      src="img/related-2.jpg"
                      alt="related-2"
                      width="75px"
                      height="75px"
                    />
                    <a href="#">CSS 的未知力量</a>
                    <p class="related-author">作者:吉姆.狄龍</p>
                  </li>
                  <li>
                    <img
                      src="img/related-3.jpg"
                      alt="related-3"
                      width="75px"
                      height="75px"
                    />
                    <a href="#">為什么 JavaScript 很棒</a>
                    <p class="related-author">作者:瑪蒂爾達</p>
                  </li>


          在CSS上,我們這樣寫

          .related-author {
            font-size: 18px;
            font-weight: bold;
          }



          • 如上圖所示,這些無序列表的黑點看上去實在難看,如何將它去除呢?如下
          ul {
            list-style: none;
          }
          



          但是如果html中有多個無序列表,這個時候我們就需要使用類選擇器去做這件事情了

          HTML代碼如下:

          <ul class="related">
                  <li>
                    <img
                      src="img/related-1.jpg"
                      alt="related-1"
                      width="75px"
                      height="75px"
                    /><a href="#">如何去學習網頁開發</a>
                    <p class="related-author">作者:喬納斯·施梅德特曼</p>
                  </li>
                  <li>
                    <img
                      src="img/related-2.jpg"
                      alt="related-2"
                      width="75px"
                      height="75px"
                    />
                    <a href="#">CSS 的未知力量</a>
                    <p class="related-author">作者:吉姆.狄龍</p>
                  </li>
                  <li>
                    <img
                      src="img/related-3.jpg"
                      alt="related-3"
                      width="75px"
                      height="75px"
                    />
                    <a href="#">為什么 JavaScript 很棒</a>
                    <p class="related-author">作者:瑪蒂爾達</p>
                  </li>
                </ul>

          CSS代碼如下:

          .related {
            list-style: none;
          }
          


          • 疑問:為啥上面的不用id選擇器,而是用class呢?
          • 因為當我們不止一個元素需要使用CSS樣式的時候,我們通常都會選擇類選擇器


          注:在實際的生活中,我們都會使用類選擇器,因為在id選擇器只能使用一次,如果你后續使用同樣的css樣式會增加你的代碼量,所以即使是一個CSS,也建議使用類選擇器,而不是id選擇器。

          tml

          • 概念
          • 前端最核心的技術 HTML + CSS + javascript
          • HTML - 結構 - 骨架
          • CSS - 樣式 - 效果
          • JAVASCRIPT - (用戶)行為 - 做的事情
          • 超文本標記語言
          • 超文本
          • 文本(txt文件) - 瀏覽器可以直接打開
          • 如果具有中文,可能出現亂碼問題
          • 標記
          • 語法結構 - <標簽名>
          • 注意 - 瀏覽器解析標記(規定的標記內容)
          • 注意
          • HTML是不嚴格的語言
          • 允許不用編寫所有內容
          • 標簽名沒有明確的規定(大小寫)
          • 建議標簽名使用小寫
          • XHTML
          • 解釋為嚴格意義的HTML

          HTML結構

          HTML結構

          <!DOCTYPE html> - 聲明:當前頁面使用的是哪個HTML版本

          <html lang="en">- 根標簽:有且僅有一個

          <head>- 用于設置當前頁面的信息

          <meta charset="UTF-8"> - 設置當前頁面的編碼

          <title>Title</title> - 當前頁面的標題

          </head>

          <div>- 用于顯示在瀏覽器中

          </div>

          </html>

          聲明

          • 注意 - 必須在HTML文檔的 0 行 0 列
          • 記住 - HTML5的聲明<!DOCTYPE html>
          • 作用 - 告訴瀏覽器當前HTML頁面使用的版本
          • 不同的HTML版本支持不同的標記(標簽)內容

          根標簽

          • <html></html>
          • 除聲明以外,所有內容全部被包含在根標簽中
          • 注意 - 有且僅有一個
          • 標記(標簽)
          • 起始標簽 - 有開始,有結束
          • 開始標簽 - <標簽名>
          • 結束標簽 - </標簽名>
          • 空標簽 - 只有開始標簽
          • <br/>- 換行標簽
          • 注意 - 建議使用小寫

          <meta>元素

          • 第一個作用 - 設置當前HTML頁面的編碼格式
          • <meta charset="UTF-8">
          • 第二個作用 - 設置當前HTML頁面的關鍵字
          • <meta name="keywords" content="HTML, CSS, XML, XHTML, JavaScript">
          • 第三個作用 - 設置當前HTML頁面的描述(很少)
          • <meta name="description" content="Free Web tutorials on HTML and CSS">
          • 第四個作用 - 設置當前HTML頁面的作者
          • <meta name="author" content="King">

          HTML屬性

          • 出現在標簽中的開始標簽中,而不是結束標簽
          • 格式
          • 屬性名=屬性值
          • 屬性值 - 必須使用雙引號包裹

          HTML頁面被搜索引擎抓取

          • <title>元素 - 頁面的標題
          • <meta name="keywords">元素 - 頁面的關鍵字
          • <h1>元素 - 標題

          分類

          • 私有屬性 - 當前標簽獨有的屬性
          • 標準屬性 - 幾乎所有標簽都有的屬性
          • 事件屬性 - 標準事件(了解)

          HTML標題

          • <h1> ~ <h6> - 從最大到最小
          • 并不關心標題顯示的效果 - 可以通過 CSS 完成
          • 關心標題的 語義化
          • 語義化 - 當前標簽的含義

          HTML列表

          • 有序列表

          <ol>

          <li></li>

          </ol>

          • 默認情況下 - 1,2,3,4,5...
          • 無序列表

          <ul>

          <li></li>

          </ul>

          • 默認情況下 - 黑點
          • 定義列表

          <dl>

          <dt>列表名稱</dt>

          dd>列表項</dd>

          </dl>

          • HTML鏈接

          <a href="地址"></a>

          鏈接元素<a>

          • 作用
          • 用于從當前頁面跳轉到另一個(指定)頁面
          • 實現錨點效果
          • 實現回到頂部效果
          • 實現發送郵件功能(了解)
          • href="mailto:郵件地址"
          • 路徑(地址)
          • 絕對路徑 - 查找的開始位置是固定
          • 相對路徑 - 查找的開始位置是變化
          • 在實際開發中,使用更多
          • 完整的地址
          • http:// localhost : 8080 /day02 #name
          • 網絡協議 IP地址 端口號 相對路徑 錨點
          • localhost - 等價于 127.0.0.1 - 表示本機
          • 網絡訪問 - 通過互聯網
          • http://192.168.10.165:63342/D...
          • file:///C:/0507/DAY02/CODE/00.html

          C:07\DAY02\CODE>C:\0507\DAY02\CODE\00.html<.html

          • 本地訪問 - 和網絡無關

          圖片元素

          • <img> - 空標簽,沒有結束標簽
          • 必要屬性 - src屬性

          可選屬性

          • width
          • height
          • 單位
          • 像素值
          • 百分值

          HTML表格

          • 概念 - 具有行和列(單元格)
          • 行 - 表示水平方向(多個單元格)
          • 列 - 表示垂直方向(多個單元格)
          • HTML表格
          • 表示為表格
          • 作用
          • 表格的語義化 - 配合 CSS 可以實現漂亮的表格效果
          • 利用表格的行和列的概念 - 實現頁面元素的布局
          • HTML表單
          • <form>標簽
          • 語義化 - 表示為表單
          • 容器元素 - 瀏覽器中不會有任何顯示效果
          • 文件的編碼格式 - UTF-8
          • HTML頁面的編碼格式 - UTF-8
          • <meta charset="UTF-8">
          • 設置當前HTML頁面的編碼格式
          • 在瀏覽器運行當前HTML頁面時,告訴瀏覽器當前的編碼格式
          • 字符集
          • 概念 - 存放所使用的所有的字符(漢字)

          分類

          • ANSI - 美國
          • ISO-8859-1 - 歐洲
          • GBK - 中國
          • GB2312
          • Unicode - 萬國碼
          • UTF-8 - 主要使用
          • UTF-16
          • 計算機的存儲方式
          • 利用二進制方式 - 1和0
          • 中國
          • 存儲 - 將漢字 "中國" 轉換成 二進制 進行存儲 - GBK
          • 讀取 - 將 二進制 轉換成 "中國" 進行顯示 - UTF-8

          主站蜘蛛池模板: 久久一区二区精品综合| 亚洲中文字幕无码一区二区三区| 日本精品一区二区三区在线视频 | 亚洲变态另类一区二区三区| 亚洲A∨无码一区二区三区| 国精产品一区一区三区| 国产激情无码一区二区| 久热国产精品视频一区二区三区| 激情无码亚洲一区二区三区| 日韩精品一区二三区中文| 国产一区二区视频在线观看| 精品无码国产一区二区三区AV| 亚洲综合一区国产精品| 国产一区二区三区在线视頻 | 麻豆AV天堂一区二区香蕉| 日韩视频免费一区二区三区| 熟女性饥渴一区二区三区| 久久精品一区二区三区AV| 内射女校花一区二区三区| 国产第一区二区三区在线观看| 中文字幕一区二区三区免费视频| 精品人妻无码一区二区三区蜜桃一| 精品一区二区三区在线观看l| 国产成人一区二区在线不卡 | 亚洲欧美成人一区二区三区| 四虎一区二区成人免费影院网址 | 国产一区内射最近更新| 国产精品自拍一区| 国产精品乱码一区二区三| 五月婷婷一区二区| 精品国产AV无码一区二区三区| 天海翼一区二区三区高清视频| 中日韩精品无码一区二区三区| 精品一区二区三区东京热 | 国产精品第一区揄拍| 91在线一区二区三区| 亚洲欧美日韩一区二区三区在线| 久久精品无码一区二区无码| 2021国产精品一区二区在线 | 亚洲午夜一区二区电影院| 亚洲美女一区二区三区|