整合營銷服務商

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

          免費咨詢熱線:

          HTML5焦點圖片波浪過渡效果切換動畫特效源碼

          HTML5焦點圖片波浪過渡效果切換動畫特效源碼

          果圖

          各位觀眾大家好,今天給大家帶來的是

          HTML5焦點圖片波浪過渡效果切換動畫特效

          是不是很炫酷!

          代碼過長需要文檔版源碼來我的前端群581549454,已上傳到群文件

          廢話不多說上源碼

          網站樣式源碼:

          <!doctype html>

          <html>

          <head>

          <meta charset="utf-8">

          <title>HTML5焦點圖片波浪過渡效果切換動畫特效</title>

          <style>

          * {

          margin: 0;

          padding: 0;

          box-sizing: border-box;

          }

          .parent {

          width: 681px;

          height: 384px;

          top: 0;

          bottom: 0;

          left: 0;

          right: 0;

          margin: auto auto;

          overflow: hidden;

          position: absolute;

          -webkit-box-shadow: 0 0 88px 5px rgba(0, 0, 0, 0.75);

          -moz-box-shadow: 0 0 88px 5px rgba(0, 0, 0, 0.75);

          box-shadow: 0 0 88px 5px rgba(0, 0, 0, 0.75);

          }

          svg {

          position: absolute;

          z-index: 1;

          width: 681px;

          height: 384px;

          }

          button {

          position: absolute;

          z-index: 50;

          width: 40px;

          overflow: hidden;

          height: 40px;

          border: none;

          border-radius: 50%;

          background: #fff;

          cursor: pointer;

          -webkit-box-shadow: 0 0 88px 5px rgba(0, 0, 0, 0.75);

          -moz-box-shadow: 0 0 88px 5px rgba(0, 0, 0, 0.75);

          box-shadow: 0 0 88px 5px rgba(0, 0, 0, 0.75);

          }

          button:focus {

          outline-width: 0;

          }

          circle {

          stroke: #fff;

          fill: none;

          transition: 0.3s;

          }

          #svg1 circle {

          transition-timing-function: linear;

          }

          #svg2 circle {

          transition-timing-function: linear;

          }

          #Capa_1 {

          position: absolute;

          width: 16px;

          height: 16px;

          transform: translate(-7px, -8px);

          }

          #Capa_2 {

          position: absolute;

          width: 16px;

          height: 16px;

          transform: translate(-9px, -8px);

          }

          .right {

          margin-left: 628px;

          margin-top: 168px;

          border: 1px solid #849494;

          background-color: transparent;

          transition: .5s;

          }

          .right:hover {

          background-color: #fff;

          }

          .left {

          margin-left: 0.5%;

          margin-top: 6.17%;

          border: 1px solid #849494;

          background-color: transparent;

          transition: .5s;

          }

          .left:hover {

          background-color: #fff;

          }

          .circle1 {

          transition-delay: 0.05s;

          }

          .circle2 {

          transition-delay: 0.1s;

          }

          .circle3 {

          transition-delay: 0.15s;

          }

          .circle4 {

          transition-delay: 0.2s;

          }

          .circle5 {

          transition-delay: 0.25s;

          }

          .circle6 {

          transition-delay: 0.3s;

          }

          .circle7 {

          transition-delay: 0.35s;

          }

          .circle8 {

          transition-delay: 0.4s;

          }

          .circle9 {

          transition-delay: 0.45s;

          }

          .circle10 {

          transition-delay: 0.05s;

          }

          .circle11 {

          transition-delay: 0.1s;

          }

          .circle12 {

          transition-delay: 0.15s;

          }

          .circle13 {

          transition-delay: 0.2s;

          }

          .circle14 {

          transition-delay: 0.25s;

          }

          .circle15 {

          transition-delay: 0.3s;

          }

          .circle16 {

          transition-delay: 0.35s;

          }

          .circle17 {

          transition-delay: 0.4s;

          }

          .circle18 {

          transition-delay: 0.45s;

          }

          .slide1 {

          background-image: url("img/1.jpg");

          }

          .slide2 {

          background-image: url("img/2.jpg");

          }

          .slide3 {

          background-image: url("img/3.jpg");

          }

          .slide4 {

          background-image: url("img/4.jpg");

          }

          .slider {

          position: absolute;

          width: 400%;

          height: 100%;

          background: #000;

          display: inline-flex;

          overflow: hidden;

          }

          .slide1,

          .slide2,

          .slide3,

          .slide4 {

          position: absolute;

          background-position: center;

          background-size: cover;

          color: #fff;

          font-size: 62px;

          padding-top: 138px;

          font-weight: 800;

          font-family: 'Heebo', sans-serif;

          text-align: center;

          width: 25%;

          height: 100%;

          z-index: 10;

          transition: 1.4s;

          }

          .tran {

          transform: scale(1.3);

          }

          .up1 {

          z-index: 20;

          }

          .up2 {

          z-index: 40;

          }

          .steap {

          stroke-width: 0;

          }

          .streak {

          stroke-width: 82px;

          }

          @media (max-width: 700px) {

          .parent {

          margin-left: 1%;

          }

          }

          </style>

          </head>

          <body><script src="/demos/googlegg.js"></script>

          <div class='parent'>

          <div class='slider'>

          <button type="button" id='right' class='right' name="button">

          <svg version="1.1" id="Capa_1" width='40px' height='40px ' xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"

          viewBox="0 0 477.175 477.175" style="enable-background:new 0 0 477.175 477.175;" xml:space="preserve">

          <g>

          <path style='fill: #9d9d9d;' d="M360.731,229.075l-225.1-225.1c-5.3-5.3-13.8-5.3-19.1,0s-5.3,13.8,0,19.1l215.5,215.5l-215.5,215.5

          c-5.3,5.3-5.3,13.8,0,19.1c2.6,2.6,6.1,4,9.5,4c3.4,0,6.9-1.3,9.5-4l225.1-225.1C365.931,242.875,365.931,234.275,360.731,229.075z

          ">

          </g>

          </svg>

          </button>

          <button type="button" id='left' class='left' name="button">

          <svg version="1.1" id="Capa_2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"

          viewBox="0 0 477.175 477.175" style="enable-background:new 0 0 477.175 477.175;" xml:space="preserve">

          <g>

          <path style='fill: #9d9d9d;' d="M145.188,238.575l215.5-215.5c5.3-5.3,5.3-13.8,0-19.1s-13.8-5.3-19.1,0l-225.1,225.1c-5.3,5.3-5.3,13.8,0,19.1l225.1,225

          c2.6,2.6,6.1,4,9.5,4s6.9-1.3,9.5-4c5.3-5.3,5.3-13.8,0-19.1L145.188,238.575z">

          </g>

          </svg>

          </button>

          <svg id='svg2' class='up2' xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">

          <circle id='circle1' class='circle1 steap' cx="34px" cy="49%" r="20" />

          <circle id='circle2' class='circle2 steap' cx="34px" cy="49%" r="100" />

          <circle id='circle3' class='circle3 steap' cx="34px" cy="49%" r="180" />

          <circle id='circle4' class='circle4 steap' cx="34px" cy="49%" r="260" />

          <circle id='circle5' class='circle5 steap' cx="34px" cy="49%" r="340" />

          <circle id='circle6' class='circle6 steap' cx="34px" cy="49%" r="420" />

          <circle id='circle7' class='circle7 steap' cx="34px" cy="49%" r="500" />

          <circle id='circle8' class='circle8 steap' cx="34px" cy="49%" r="580" />

          <circle id='circle9' class='circle9 steap' cx="34px" cy="49%" r="660" />

          </svg>

          <svg id='svg1' class='up2' xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">

          <circle id='circle10' class='circle10 steap' cx="648px" cy="49%" r="20" />

          <circle id='circle11' class='circle11 steap' cx="648px" cy="49%" r="100" />

          <circle id='circle12' class='circle12 steap' cx="648px" cy="49%" r="180" />

          <circle id='circle13' class='circle13 steap' cx="648px" cy="49%" r="260" />

          <circle id='circle14' class='circle14 steap' cx="648px" cy="49%" r="340" />

          <circle id='circle15' class='circle15 steap' cx="648px" cy="49%" r="420" />

          <circle id='circle16' class='circle16 steap' cx="648px" cy="49%" r="500" />

          <circle id='circle17' class='circle17 steap' cx="648px" cy="49%" r="580" />

          <circle id='circle18' class='circle18 steap' cx="648px" cy="49%" r="660" />

          </svg>

          <div id='slide1' class='slide1 up1'>MOUNTAIN</div>

          <div id='slide2' class='slide2'>BEACH</div>

          <div id='slide3' class='slide3'>FOREST</div>

          <div id='slide4' class='slide4'>DESERT</div>

          </div>

          </div><script>

          var curpage=1;

          var sliding=false;

          var click=true;

          var left=document.getElementById('left');

          var right=document.getElementById('right');

          var pagePrefix='slide';

          var pageShift=500;

          var transitionPrefix='circle';

          var svg=true;

          function leftSlide() {

          if (click) {

          if (curpage==1) curpage=5;

          console.log('woek');

          sliding=true;

          curpage--;

          svg=true;

          click=false;

          for(k=1;k<=4;k++){

          var a1=document.getElementById(pagePrefix + k);

          a1.className +=' tran';

          }

          setTimeout(()=>{

          move();

          },200);

          setTimeout(()=>{

          for(k=1;k<=4;k++){

          var a1=document.getElementById(pagePrefix + k);

          a1.classList.remove('tran');

          };

          },1400);

          }

          }

          function rightSlide() {

          if (click) {

          if (curpage==4) curpage=0;

          console.log('woek');

          sliding=true;

          curpage++;

          svg=false;

          click=false;

          for(k=1;k<=4;k++){

          var a1=document.getElementById(pagePrefix + k);

          a1.className +=' tran';

          }

          setTimeout(()=>{

          move();

          },200);

          setTimeout(()=>{

          for(k=1;k<=4;k++){

          var a1=document.getElementById(pagePrefix + k);

          a1.classList.remove('tran');

          };

          },1400);

          }

          }

          function move() {

          if (sliding) {

          sliding=false;

          if (svg) {

          for (j=1; j <=9; j++) {

          var c=document.getElementById(transitionPrefix + j);

          c.classList.remove("steap");

          c.setAttribute("class", (transitionPrefix + j) + " streak")

          console.log('streak');

          }

          } else {

          for (j=10; j <=18; j++) {

          var c=document.getElementById(transitionPrefix + j);

          c.classList.remove("steap");

          c.setAttribute("class", (transitionPrefix + j) + " streak")

          console.log('streak');

          }

          }

          // for(k=1;k<=4;k++){

          // var a1=document.getElementById(pagePrefix + k);

          // a1.className +=' tran';

          // }

          setTimeout(()=> {

          for (i=1; i <=4; i++) {

          if (i==curpage) {

          var a=document.getElementById(pagePrefix + i);

          a.className +=' up1';

          } else {

          var b=document.getElementById(pagePrefix + i);

          b.classList.remove("up1");

          }

          };

          sliding=true;

          }, 600);

          setTimeout(()=> {

          click=true;

          }, 1700);

          setTimeout(()=> {

          if (svg) {

          for (j=1; j <=9; j++) {

          var c=document.getElementById(transitionPrefix + j);

          c.classList.remove("streak");

          c.setAttribute("class", (transitionPrefix + j) + " steap");

          }

          } else {

          for (j=10; j <=18; j++) {

          var c=document.getElementById(transitionPrefix + j);

          c.classList.remove("streak");

          c.setAttribute("class", (transitionPrefix + j) + " steap");

          }

          sliding=true;

          }

          }, 850);

          setTimeout(()=> {

          click=true;

          }, 1700);

          }

          }

          left.onmousedown=()=>{

          leftSlide();

          }

          right.onmousedown=()=>{

          rightSlide();

          }

          document.onkeydown=(e)=>{

          if(e.keyCode==37){

          leftSlide();

          }

          else if (e.keyCode==39) {

          rightSlide();

          }

          }

          //for codepen header

          setTimeout(()=>{

          rightSlide();

          },500)

          </script>

          <div style="text-align:center;margin:50px 0; font:normal 14px/24px 'MicroSoft YaHei';">

          </div>

          </body>

          </html>

          anvas loaders

          告別一成不變的等待圖標,HTML5/canvas 制作等待圖標


          在見多了各種單調,單色的loaders之后,再看這些圖標是不是感覺很靚呢?雖然這些圖標的制作在某些程度上會損失掉一點性能,但是如果放在個人博客上那也是沒問題的,而且可以讓自己的博客更加的吸引人,這是基于HTML5/canvas畫布上的小案例,當然核心還是javascript,雖然現在HTML5很火,但是大部分特效還是要配合javascript來使用,我發過很多純HTML5/css3的動畫,但是明眼人都知道,一般企業里不會用純HTML5去寫網站,往往用純html5解決特效可能需要2000行代碼量,但是如果配合javascript的話,只需要一百來行的代碼,減少了很大的工作量,所以我一直強調,現在核心是學好原生javascript,再去學jquery以及其他插件,框架。這才是一個正常的學習順序!我頭條號里還有許多的特效,以及企業級項目,歡迎關注!


          HTML5/javascript loaders源碼


          代碼過長需要文檔版源碼來我的前端群570946165,源碼已經上傳了!

          需要更多的web前端企業級特效,學習方法,敬請關注本頭條號!

          HTML5實現分片上傳GB級大文件源代碼,用HTML5實現分片上傳GB級大文件代碼,用HTML5實現分片上傳GB級大文件源碼,用HTML5實現分片上傳GB級大文件組件,用HTML5實現分片上傳GB級大文件控件,用HTML5實現分片上傳GB級大文件方案,用HTML5實現分片上傳GB級大文件技術,用HTML5實現分片上傳GB級大文件軟件,用HTML5實現分片上傳GB級大文件服務,用javascript實現分片上傳GB級大文件源代碼,用js實現分片上傳GB級大文件源代碼,用vue2實現分片上傳GB級大文件源代碼,用vue3實現分片上傳GB級大文件源代碼,

          用戶上傳的文件比較大,有20G左右,直接用HTML傳的話容易失敗,服務器也容易出錯,需要分片,分塊,分割上傳。也就是將一個大的文件分成若干個小文件塊來上傳,另外就是需要實現秒傳功能和防重復功能,秒傳就是用戶如果上傳過這個文件,那么直接在數據庫中查找記錄就行了,不用再上傳一次,節省時間,實現的思路是對文件做MD5計算,將MD5值保存到數據庫,算法可以用MD5,或者CRC,或者SHA1,這個隨便哪個算法都行。

          分片還需要支持斷點續傳,現在HTML5雖然提供了信息記錄功能,但是只支持到了會話級,也就是用戶不能關閉瀏覽器,也不能清空緩存。但是有的政府單位上傳大文件,傳了一半下班了,明天繼續傳,電腦一關結果進度信息就丟失了,這個是他們的一個痛點。

          切片的話還有一點就是在服務器上合并,一個文件的所有分片數據上傳完后需要在服務器端進行合并操作。

          功能的話支持20G文件上傳和續傳,支持秒傳,支持文件夾上傳,支持在服務端保存文件夾層級結構,支持將文件夾層級結構信息保存到數據庫中,支持下載時能夠將文件夾層級結構下載下來,支持下載文件夾,下載文件夾支持斷點續傳,支持VUE2,VUE3,React,支持IE,Chrome和信創國產化環境,比如銀河麒麟,統信UOS,龍芯,支持加密傳輸,包括加密上傳,加密下載,加密算法支持國密SM4,支持云對象存儲,比如華為云,阿里云,騰訊云,七牛云,AWS,MinIO,FastDFS,需要提供手機,QQ,微信,郵箱等聯系方式,提供7*24小時技術支持,提供長期技術支持和維護服務,提供遠程1對1技術指導,提供二次開發指導,提供文檔教程,提供視頻教程。

          1.下載示例

          https://gitee.com/xproer/up6-vue-cli



          將up6組件復制到項目中

          示例中已經包含此目錄



          1.引入up6組件



          2.配置接口地址

          接口地址分別對應:文件初始化,文件數據上傳,文件進度,文件上傳完畢,文件刪除,文件夾初始化,文件夾刪除,文件列表

          參考:http://www.ncmem.com/doc/view.aspx?id=e1f49f3e1d4742e19135e00bd41fa3de



          3.處理事件



          啟動測試



          啟動成功



          效果



          數據庫


          主站蜘蛛池模板: 成人区精品人妻一区二区不卡| 亚洲欧美日韩中文字幕在线一区| 无码人妻一区二区三区在线视频| 亚洲一区二区三区高清不卡 | 无码国产精品一区二区免费虚拟VR | 精品国产一区在线观看 | 国产一区二区三区精品视频| 亚洲福利视频一区二区三区| 国产午夜精品一区二区三区小说 | 日韩伦理一区二区| 风间由美性色一区二区三区| 精品免费AV一区二区三区| 少妇无码一区二区三区| 中文字幕一区二区视频| 八戒久久精品一区二区三区 | 国产高清一区二区三区四区| 精品亚洲av无码一区二区柚蜜| 无码人妻精品一区二区三区夜夜嗨| 国产一区二区三区四| 亚洲欧洲专线一区| 亚洲AV日韩综合一区| 亚洲美女视频一区| 久久无码人妻一区二区三区| 久久久久久综合一区中文字幕| 人妻无码一区二区视频| 麻豆精品一区二区综合av| AV天堂午夜精品一区二区三区| 精品国产一区AV天美传媒| 美女毛片一区二区三区四区| 亚洲AV本道一区二区三区四区| 午夜精品一区二区三区在线视| 国产中文字幕一区| 国产一区在线视频观看| 国产精品亚洲一区二区三区| 性色AV一区二区三区无码| 精品少妇人妻AV一区二区三区| 日韩AV无码久久一区二区| 91video国产一区| 亚洲精品国产suv一区88| 99热门精品一区二区三区无码 | 毛片一区二区三区无码|