整合營銷服務(wù)商

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

          免費咨詢熱線:

          JavaScript魔法:如何用幾行代碼實現(xiàn)令人驚艷的頁面動態(tài)效果

          著互聯(lián)網(wǎng)的發(fā)展,網(wǎng)頁的視覺效果越來越重要。為了吸引用戶的注意力和提升用戶體驗,頁面動態(tài)效果成為了不可或缺的一部分。JavaScript作為一種前端開發(fā)語言,可以幫助我們實現(xiàn)各種各樣的頁面動態(tài)效果。本文將介紹一些常見的頁面動態(tài)效果,并提供實例代碼供參考。

          一、利用CSS和JavaScript實現(xiàn)簡單的動態(tài)效果

          1.1 利用CSS過渡效果實現(xiàn)淡入淡出效果

          通過CSS的transition屬性和JavaScript的classList方法,可以實現(xiàn)元素的淡入淡出效果。下面是一個實例代碼:

          <!DOCTYPE html>
          <html>
          <head>
          <style>
          .fade-in {
            opacity: 0;
            transition: opacity 1s ease-in-out;
          }
          .fade-in.show {
            opacity: 1;
          }
          </style>
          </head>
          <body>
          <button onclick="fadeIn()">淡入</button>
          <button onclick="fadeOut()">淡出</button>
          <div id="box" class="fade-in">Hello, World!</div>
          <script>
          function fadeIn() {
            var box = document.getElementById("box");
            box.classList.add("show");
          }
          function fadeOut() {
            var box = document.getElementById("box");
            box.classList.remove("show");
          }
          </script>
          </body>
          </html>

          1.2 利用CSS動畫實現(xiàn)元素的旋轉(zhuǎn)效果

          通過CSS的@keyframes規(guī)則和JavaScript的classList方法,可以實現(xiàn)元素的旋轉(zhuǎn)效果。下面是一個實例代碼:

          <!DOCTYPE html>
          <html>
          <head>
          <style>
          .rotate {
            animation: spin 2s infinite linear;
          }
          @keyframes spin {
            from { transform: rotate(0deg); }
            to { transform: rotate(360deg); }
          }
          </style>
          </head>
          <body>
          <button onclick="rotate()">旋轉(zhuǎn)</button>
          <div id="box">Hello, World!</div>
          <script>
          function rotate() {
            var box = document.getElementById("box");
            box.classList.toggle("rotate");
          }
          </script>
          </body>
          </html>

          二、利用JavaScript實現(xiàn)更復(fù)雜的動態(tài)效果

          2.1 實現(xiàn)元素的平移和縮放

          通過JavaScript修改元素的樣式屬性,可以實現(xiàn)元素的平移和縮放效果。下面是一個實例代碼:

          <!DOCTYPE html>
          <html>
          <head>
          <style>
          #box {
            width: 100px;
            height: 100px;
            background-color: red;
            position: relative;
            transition: transform 1s ease-in-out;
          }
          </style>
          </head>
          <body>
          <button onclick="translate()">平移</button>
          <button onclick="scale()">縮放</button>
          <div id="box"></div>
          <script>
          function translate() {
            var box = document.getElementById("box");
            box.style.transform = "translate(100px, 100px)";
          }
          function scale() {
            var box = document.getElementById("box");
            box.style.transform = "scale(2)";
          }
          </script>
          </body>
          </html>

          2.2 實現(xiàn)元素的顏色變化

          通過JavaScript修改元素的樣式屬性,可以實現(xiàn)元素的顏色變化效果。下面是一個實例代碼:

          <!DOCTYPE html>
          <html>
          <head>
          <style>
          #box {
            width: 100px;
            height: 100px;
            background-color: red;
            transition: background-color 1s ease-in-out;
          }
          </style>
          </head>
          <body>
          <button onclick="changeColor()">改變顏色</button>
          <div id="box"></div>
          <script>
          function changeColor() {
            var box = document.getElementById("box");
            box.style.backgroundColor = "blue";
          }
          </script>
          </body>
          </html>

          三、注意事項與最佳時間

          3.1 優(yōu)化性能

          在實現(xiàn)動態(tài)效果時,要注意優(yōu)化性能,避免因頻繁的DOM操作導(dǎo)致頁面卡頓。可以使用節(jié)流函數(shù)來限制事件的觸發(fā)頻率,減少不必要的DOM操作,提高頁面性能。

          3.2 兼容性考慮

          在使用JavaScript實現(xiàn)動態(tài)效果時,要考慮不同瀏覽器的兼容性。可以使用現(xiàn)代化的JavaScript庫或框架來解決兼容性問題,比如jQuery、React等。

          結(jié)語:

          通過本文的介紹,相信你已經(jīng)掌握了一些利用JavaScript實現(xiàn)網(wǎng)頁動態(tài)效果的技巧。記住要優(yōu)化性能,考慮兼容性,并創(chuàng)造炸裂的動態(tài)效果來吸引用戶的注意。

          (內(nèi)容僅供參考)

          Java實現(xiàn)根據(jù)svg模版動態(tài)生成圖片

          使用場景

          需要Java語言動態(tài)生成圖片

          用流程圖簡單說明下我這邊工作中使用的場景

          僅供參考

          所以這里就需要生成證書了

          我先給大家看下最終實現(xiàn)的圖片效果

          這里要先說明一下

          • 圖片上的文字都是動態(tài)變化的即不同的訂單對應(yīng)的圖片內(nèi)容都不一樣
          • 圖片上還可以嵌入圖片哦 比如上圖的logo圖片

          下面說下我是如何解決的

          通過PhantomJS來實現(xiàn)

          這種方式是不能實現(xiàn)這個需求的

          這個的原理就是對網(wǎng)頁截圖 但只能對于靜態(tài)頁面截圖 不能根據(jù)不同的參數(shù)值動態(tài)生成圖片

          所以不提倡使用這種方式

          但也介紹下這種使用方式 朋友們根據(jù)自己的實際需求情況有選擇的使用

          通過html代碼實現(xiàn)圖片的效果 放入web容器(比如nginx)中部署

          這是h5代碼

          test文件夾下面的內(nèi)容

          安裝一個docker nginx 將test文件夾加載到nginx容器的/usr/share/nginx/html目錄下面

          docker run --name nginx80  -p 8000:80  -v /tmp/test:/usr/share/nginx/html -d docker.io/nginx
          

          訪問的頁面效果

          訪問該頁面進行截圖

          這張圖片是截圖生成的圖片 但url中的id值并沒有傳給頁面

          在h5代碼中請求后端接口獲取數(shù)據(jù)動態(tài)顯示出來也是不可以的

          所以這種方式使用局限性很窄

          簡單介紹下代碼原理

          大致原理是 通過http請求該url獲取該url的文件流然后解析h5代碼生成圖片

          通過SVG模版動態(tài)生成

          先寫svg模版(其實也是h5代碼)

          讀取svg模版 動態(tài)傳入?yún)?shù)生成圖片

          其實現(xiàn)原理大致為 讀取svg document h5代碼 將動態(tài)參數(shù)map解析到h5代碼中 轉(zhuǎn)換成字節(jié)數(shù)組 生成圖片格式

          Linux環(huán)境圖片中文亂碼

          我本地是mac系統(tǒng)沒有這個問題 在發(fā)布到測試環(huán)境linux系統(tǒng)出現(xiàn)了這個問題

          先看下問題的現(xiàn)象

          看到了沒 生成的圖片中文全是亂碼

          原因是因為linux系統(tǒng)沒有中文字體

          既然linux系統(tǒng)沒有中文字體 那么就安裝它嘛 let's 盤它!!!

          先看下mac環(huán)境的字體情況

          • 安裝字體管理工具
          brew install fontconfig
          
          • 查看支持中文
          fc-list :lang=zh    (注意‘:’前的空格)
          

          mac環(huán)境默認(rèn)會安裝很多中文字體

          再看下linux環(huán)境

          • 安裝字體管理工具
          yum -y install fontconfig
          
          • 查看支持中文
          fc-list :lang=zh
          

          果然沒有中文字體

          開始安裝中文字體

          將mac環(huán)境的宋體上傳到linux環(huán)境

          a 先在mac系統(tǒng)中找到字體安裝目錄

          /System/Library/Fonts
          

          b 找到宋體對應(yīng)的文件

          c 將該文件上傳到linux指定的目錄下

          /usr/share/fonts/chinese
          

          d 賦予文件夾操作權(quán)限

          chmod -R 755 /usr/share/fonts/chinese
          

          e 安裝ttmkfdir來搜索目錄中所有的字體信息,并匯總生成fonts.scale文件

          yum -y install ttmkfdir
          
          ttmkfdir -e /usr/share/X11/fonts/encodings/encodings.dir
          
          

          修改字體配置文件

          vi /etc/fonts/fonts.conf
          添加
          <dir>/usr/share/fonts/chinese</dir>
          

          刷新內(nèi)存中的字體緩存

          fc-cache
          

          確認(rèn)是否安裝成功

          在jdk中安裝該宋體

          a 找到j(luò)dk所在的安裝目錄

          echo $JAVA_HOME 
          

          b 將宋體文件復(fù)制過來

          cp /usr/share/fonts/chinese/STHeiti\ Light.ttc /usr/local/software/jdk1.8.0_141/jre/lib/fonts/fallback
          
          fallback代表存放后備語言的文件夾
          

          重啟java服務(wù)即可

          DEMO代碼

          https://gitee.com/pingfanrenbiji/resource/tree/master/image
          

          注意: 引入的依賴問題

            <!--phantomjs -->
            <dependency>
             <groupId>org.seleniumhq.selenium</groupId>
             <artifactId>selenium-java</artifactId>
             <version>2.53.1</version>
            </dependency>
            <dependency>
             <groupId>com.github.detro</groupId>
             <artifactId>ghostdriver</artifactId>
             <version>2.1.0</version>
            </dependency>
          
            <!--svg-->
            <dependency>
             <groupId>com.github.hui.media</groupId>
             <artifactId>svg-core</artifactId>
             <version>2.5</version>
            </dependency>
          
          

          這些依賴jar包我是上傳到了公司的私服上了

          若是朋友們下拉不下來

          我提供給大家這些底層jar包的實現(xiàn)源碼

          https://gitee.com/pingfanrenbiji/quick-media
          

          自行上傳到自己的私服即可

          、動態(tài)生成的html,樣式不生效

          //html 布局
          <view v-html="html">
            {{html}}
           </view>
          
          //動態(tài)生成的元素
          <view class="btngo" @tap="handleLink(`${ajaxlink}`)" >
            去報名
          </view>	
          //然后scoped的.btngo不生效,因為v-html創(chuàng)建的DOM內(nèi)容不受作用域內(nèi)的樣式影響,
          //于是我們?nèi)匀豢梢酝ㄟ^深度作用選擇器來為他們設(shè)置樣式。
          ::v-deep {
            .btngo{
              display: inline-block;
              width: 200px;
              height: 44px;
              line-height: 44px;
              background-image: linear-gradient(180deg, #62AFFF 0%, #007BFF 100%);
            }
          }

          2、動態(tài)生成的html,點擊事件不生效

          讓我醍醐灌頂?shù)膬煞N解決方法,我選擇了第2種。

          • 1、使用事件委托
          • 2、綁定到外面不動態(tài)的元素上等著事件觸發(fā)

          主站蜘蛛池模板: 久久久久人妻一区精品色| 无码日韩精品一区二区人妻| 2014AV天堂无码一区| 亚洲va乱码一区二区三区| 无码人妻久久一区二区三区免费丨| 久久久人妻精品无码一区| 精品久久国产一区二区三区香蕉| 精品福利一区二区三区免费视频 | 亚洲熟女乱色一区二区三区| 好吊妞视频一区二区| 国产短视频精品一区二区三区| 无码8090精品久久一区| 国产一区二区不卡老阿姨| 久久亚洲综合色一区二区三区| 日韩AV无码一区二区三区不卡| 美女毛片一区二区三区四区| 综合久久一区二区三区| 波多野结衣中文字幕一区二区三区| 乱码精品一区二区三区| 无码人妻久久一区二区三区免费 | 无码av免费毛片一区二区| 少妇人妻精品一区二区三区| 相泽亚洲一区中文字幕| 精品国产亚洲一区二区在线观看 | 日韩aⅴ人妻无码一区二区| 亚洲视频一区网站| 3D动漫精品啪啪一区二区下载| 91福利视频一区| 日本一区频道在线视频| 伊人色综合网一区二区三区 | 人妻无码视频一区二区三区| 无码精品一区二区三区在线| 久久国产视频一区| 在线观看免费视频一区| 成人免费区一区二区三区| 无码少妇一区二区三区| 欧美日韩国产免费一区二区三区| 久久精品国内一区二区三区| 日本中文字幕在线视频一区| 中文字幕一区二区日产乱码| 91在线看片一区国产|