整合營銷服務(wù)商

          電腦端+手機端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          程序員的10行笑臉代碼,能讓你在冰塊中超神!收獲就在后面

          TMLl5加CSS3技術(shù)繪制的笑臉動畫,眼睛跟隨鼠標(biāo)轉(zhuǎn)動。

          純CSS3實現(xiàn)的笑臉動畫,在面部滑動鼠標(biāo),觸及笑臉的小眼睛嘴巴會動起來,看上去是一種幸災(zāi)樂禍的得意的微笑效果,還挺搞笑的。

          動態(tài)效果圖如下:

          這是笑臉動畫特效的部分javascript源碼,其布局css源碼我就沒上傳給大家看了,如果想要整個項目源碼的可以加HTMl5學(xué)習(xí)群:621071874,已經(jīng)上傳群文件,只要想學(xué)習(xí)前端的都?xì)g迎。

          當(dāng)程序員在冰塊的周圍敲代碼,會是一種什么樣的感受呢?前端HTMl5學(xué)習(xí)裙621071874,里面有各種項目案例,想學(xué)習(xí)前端的都可以進(jìn)來。下圖就是文件里的部分項目,有需要的可以自動下載。

          天氣炎熱,小編告訴大家注意防暑喲!冰塊的世界里,你不懂。冰火兩重天的地方在哪里?

          咪容器

          • 咱們每次畫一個圖片,肯定先要確定一個容器,幾確定一下圖形的位置和大小。

            <div class="mao_box">

          畫喵咪的頭部和頭部的花紋

          • 按照繪畫習(xí)慣,我們肯定是先畫最大的頭部,頭部確定了,耳朵嘴巴的位置才能確定。

            <!-- 貓咪的頭部框架 -->

          • 貓咪頭部.png

          畫貓咪的耳朵部分

          • 貓咪的耳朵分布在頭部的左右兩邊,所以肯定是由兩個div畫成,為了不顯得那么僵硬,我們可以把兩邊的耳朵稍微畫的不一樣大。

          • 大家肯定會想:耳朵的形狀這么奇怪,到時是怎么畫的呢?其實很簡單,就是通過矩形然后設(shè)置各個角度的border-radius就會形成一種尖角的效果,再旋轉(zhuǎn)相應(yīng)的角度跟頭部貼合就可以了。

          • 最后將耳朵隱藏在臉部的后面,露出一點點耳尖就可以了。

            <!--繪制耳朵的容器-->

          • 耳朵.jpg

          畫貓咪的眼睛部分

          • 眼睛部分有點復(fù)雜喲,不經(jīng)過仔細(xì)的一番研究和強大的想象力是很難畫出來的:解剖一下就是上下兩個橢圓重疊而成,多余的部分隱藏,中間的褐色眼珠是在上面圓形中的一個黑色矩形。

            <div class="yanjing">

          • 貓咪眼睛.jpg

          畫貓咪的臉部花紋

          • 喵咪的胡須可是很重要的喲,如果不小心把它剪了可是很嚴(yán)重的,貓咪就再也無法測量自己可以鉆進(jìn)多大的洞里了,哈哈。

          • 仔細(xì)觀察花紋其實就是由左右各5條線條組成,畫出線條再做相應(yīng)的變換就可以了。

            <div class="face_huawen">

          • 貓咪臉部花紋.jpg

          畫貓咪的鼻子

          • 感覺這是整個貓咪最好畫的地方了,簡單的一個半圓就可以解決問題啦~啦啦啦啦~

            <div class="bizi">

          • 貓咪的鼻子.png

          畫貓咪的嘴巴

          • 咦?是不是感覺畫著畫著就到了最后一部分了,哈哈哈哈哈,好開心啊~又吃成長快樂了~

          • 嘴巴就像兩撇小胡子,用兩個矩形邊框就可以實現(xiàn)了。

            <div class="zuiba_box">

          • 貓咪嘴巴.jpg

          各個部位拼接成一個完整的小貓

          • 各個部位都畫好之后,又到了像大白一樣的拼圖時間了,哈哈~大家一起拼出一個萌萌噠小貓吧~(主要是對transition屬性的運用,設(shè)置:hover之后的屬性,然后用transition設(shè)置屬性完成變化的過渡時間)

          • 拼圖咯--哈哈.jpg

          制作鼠標(biāo)移動上去的動態(tài)效果

          • 我們家毛球可是個動如脫兔的家伙哦,所以我們來給貓咪加點特效吧~(^__^)

          • 鼠標(biāo)移動上去之后兩耳耳朵左右擺動

          • 眼睛瞇瞇呈現(xiàn)笑臉的形狀

          PS:眼睛瞇起來之后下面出現(xiàn)了一部分紅暈,就是兩個背景顏色半透明的小橢圓組成的,只要在鼠標(biāo)移動上去只會把橢圓顯示出來就可以了。

          眼睛下面的紅暈.png

          • 嘴角上揚

            /*鼠標(biāo)浮動耳朵樣式*/.mao:hover .erduo > div:first-child { left: -10px; transform: rotate(0deg); -ms-transform: rotate(0deg); -moz-transform: rotate(0deg); -webkit-transform: rotate(0deg); -o-transform: rotate(0deg); border-radius: 4% 80% 0% 60%;

          學(xué)習(xí)過程中遇到什么問題或者想獲取學(xué)習(xí)資源的話,歡迎加入學(xué)習(xí)交流群

          343599877,我們一起學(xué)前端!

          我們?yōu)g覽淘寶或者京東網(wǎng)站的時候,當(dāng)你用鼠標(biāo)移動到產(chǎn)品詳細(xì)頁上面的圖片時,圖片上會顯示小的方框,在圖片的右邊則顯示出更大的圖片方便瀏覽者可以看到更詳細(xì)的產(chǎn)品細(xì)節(jié)。本文章我們就模擬下淘寶、京東產(chǎn)品放大鏡效果。

          <!DOCTYPE html>
          <html lang="zn">
          <head>
              <meta charset="UTF-8">
              <meta http-equiv="X-UA-Compatible" content="IE=edge">
              <meta name="viewport" content="width=device-width, initial-scale=1.0">
              <title>京東放大鏡</title>
              <style>
                  .box {
                      width: 450px;
                      height: 450px;
                      border: 1px solid #ccc;
                      float: left; /*設(shè)置浮動使得兩個盒子在一排顯示*/
                      position: relative;/*設(shè)置定位 根據(jù)自身情況可以改為絕對定位 */
                      margin: 10px;
                  }
                  .big {
                      width: 600px;
                      height: 600px;
                      overflow: hidden;/*超出部分隱藏*/
                      border: 1px solid #ccc;
                      position: relative; /*設(shè)置定位 根據(jù)自身情況可以改為絕對定位 */
                      display: none;/*默認(rèn)不顯示 鼠標(biāo)經(jīng)過box時顯示*/
                  }
                  .mask {
                      width: 300px;
                      height: 300px;
                      background-color: yellow;
                      position: absolute;/*在box類里面定位 層級高于展示圖*/
                      top: 0px;
                      left: 0px;
                      opacity: .5;/*設(shè)置遮罩層的透明度*/
                      cursor: move;/*鼠標(biāo)經(jīng)過的時候變成十字拖動樣式*/
                      display: none;/*默認(rèn)不顯示 鼠標(biāo)經(jīng)過box時顯示*/
                  }
                  .img {
                      position: absolute;/*在big盒子里面絕對定位*/
          			
                      /*JavaScript需要賦值需要設(shè)置top和left值*/
                      top: 0px;
                      left: 0px;          
                  }
          		#smallpic{
          			width: 450px;
                      height: 450px;
          		}
              </style>
          </head>
          <body>
              <div class="box">
                  <img id='smallpic' src="small.jpg" alt="">
                  <div class="mask"></div>
              </div>
              <div class="big">
                  <img src="big.jpeg" alt="" class="img">
              </div>
              <script>
                  var mask = document.querySelector('.mask');
                  var box = document.querySelector('.box');
                  var big = document.querySelector('.big');
                  var img = document.querySelector('.img');
                  box.addEventListener('mouseover', function () {
                      mask.style.display = 'block';
                      big.style.display = 'block';
           
                  });
                  box.addEventListener('mouseout', function () {
                      mask.style.display = 'none';
                      big.style.display = 'none';
                  });
                  box.addEventListener('mousemove', function (e) {
                      //得到的x和y是鼠標(biāo)在盒子內(nèi)的坐標(biāo)  this指向box
                      var x = e.pageX - this.offsetLeft;
                      var y = e.pageY - this.offsetTop;
           
                    //將獲取到的鼠標(biāo)的值給遮罩層(減去一半是因為讓鼠標(biāo)在遮罩層中央) 讓它跟著鼠標(biāo)移動
                      var maskX = x - mask.offsetWidth / 2;
                      var maskY = y - mask.offsetHeight / 2;
                      //設(shè)置最大移動距離
                      var maskWidth = box.offsetWidth - mask.offsetWidth;
                      var maskHeight = box.offsetHeight - mask.offsetHeight;
                      //控制mask移動的范圍
                      if (maskX <= 0) {
                          maskX = 0;
                      } else if (maskX >= maskWidth) {
                          maskX = maskWidth;
                      }
           
                      if (maskY <= 0) {
                          maskY = 0;
                      } else if (maskY >= maskHeight) {
                          maskY = maskHeight;
                      }
                      mask.style.left = maskX + 'px';
                      mask.style.top = maskY + 'px';
                       //大圖最大移動距離
                      var imgWidth = img.offsetWidth - big.offsetWidth;
                      var imgHeight = img.offsetHeight - big.offsetHeight;
                      //大圖片的移動距離 = mask移動距離 * 大圖最大移動距離 /mask的最大移動距離  
                      var bigX = maskX * imgWidth / maskWidth;
                      var bigY = maskY * imgHeight / maskHeight;
                      //賦值
                      img.style.left = (-bigX) + 'px';
                      img.style.top = (-bigY) + 'px';
                  });
              </script>
          </body>
          </html>

          效果圖


          主站蜘蛛池模板: 亚洲av无码一区二区三区天堂古代| 无码av人妻一区二区三区四区| 色欲精品国产一区二区三区AV| 午夜性色一区二区三区不卡视频| 亚洲AV无码一区二区三区系列 | 在线观看中文字幕一区| 一区二区免费电影| 中文字幕一区视频| 韩国福利一区二区三区高清视频| 天天躁日日躁狠狠躁一区| 精品亚洲AV无码一区二区三区| 奇米精品一区二区三区在| 视频一区视频二区日韩专区| 狠狠综合久久av一区二区| 久久久无码精品人妻一区| 国产精品自拍一区| 亚洲日韩AV无码一区二区三区人 | 无码人妻品一区二区三区精99| 波多野结衣高清一区二区三区 | 国产福利一区二区三区在线视频| 中文字幕精品一区 | 波多野结衣中文一区二区免费| 国产一区二区在线观看| 国产av一区最新精品| 亚洲一区二区三区高清在线观看 | 韩国精品一区视频在线播放| 中文字幕av日韩精品一区二区| 国产精品久久久久久麻豆一区| 亚洲午夜电影一区二区三区| 极品人妻少妇一区二区三区| 2021国产精品视频一区| 亚洲一本一道一区二区三区| 国产精品亚洲一区二区麻豆| 亚洲国产欧美一区二区三区| 色国产在线视频一区| 亚洲AV无码一区二区三区在线观看| 精品一区二区三区免费观看| 国产精品亚洲一区二区三区在线| 风间由美性色一区二区三区| 亚洲va乱码一区二区三区| 成人H动漫精品一区二区|