最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript庫之vanilla-tilt使用教程(一個平滑的3D傾斜庫)

 更新時間:2023年02月13日 10:21:46   作者:兩個月亮  
vanilla-tilt.js是Javascript中一個平滑的3D傾斜庫,可以讓網(wǎng)頁的一些控件變得動態(tài)起來,下面這篇文章主要給大家介紹了關(guān)于JavaScript庫之vanilla-tilt使用的相關(guān)資料,需要的朋友可以參考下

參考

項目描述
GitHub前往
Vanilla-tilt.js前往

描述

項目描述
操作系統(tǒng)Windwos 10 專業(yè)版
Edge108.0.1462.54 (正式版本) (64 位)
vanilla-tilt.js1.8.0

獲取

npm install vanilla-tilt

vanilla-tilt

vanilla-tilt.js 是 JavaScript 中的一個平滑的 3D 傾斜庫,該庫存在 JQuery 版本——Tilt.js 。

效果

特點

vanilla-tilt 存在以下特點:

  • 輕量級
  • 無依賴項
  • 使用簡單
  • 60 FPS
  • 絲滑

使用

示例

<!DOCTYPE html>
<html lang="en">
<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>vanilla-tilt</title>
    <style>
        *{
            /* 去除元素默認的內(nèi)外邊距 */
            margin: 0px;
            padding: 0px;
        }

        body{
            /* 設(shè)置顯示區(qū)域的最小高度值為顯示窗口的高度值 */
            min-height: 100vh;
            /* 使 body 中的元素居中顯示 */
            display: flex;
            justify-content: center;
            align-items: center;
        }
        
        #card{
            /* 為目標元素指定寬高并為其設(shè)置漸變背景顏色 */
            width: 200px;
            height: 200px;
            background: linear-gradient(to right bottom, rgb(108, 240, 255), rgb(118, 255, 180));
        }
    </style>
</head>
<body>
    <!-- 需要添加 3D 傾斜特效的元素 -->
    <div id="card"></div>

	<!-- 導入 vanilla-tilt.js -->
	<script src="./vanilla-tilt.js"></script>
	<script>
    	VanillaTilt.init(document.querySelector('#card'), {
        	max: 15 // 設(shè)置傾斜的最大角度
    	});
	</script>
</body>
</html>

效果:

效果

使用

為目標元素應(yīng)用傾斜樣式可以有兩種方式。

1. data-tilt

我們可以通過為元素添加屬性 data-tilt 來指定該元素為目標元素并為其應(yīng)用默認的傾斜配置。如果對默認的傾斜配置中的某個選項不滿,需要對其進行更換,則可以通過為目標元素添加合適的屬性并為其設(shè)置滿意的屬性值即可。

如下示例將設(shè)置 #card 元素為目標元素并將其 max 配置選項的值設(shè)置為 25。

<!DOCTYPE html>
<html lang="en">
<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>vanilla-tilt</title>
    <style>
        *{
            /* 去除元素默認的內(nèi)外邊距 */
            margin: 0px;
            padding: 0px;
        }

        body{
            /* 設(shè)置顯示區(qū)域的最小高度值為顯示窗口的高度值 */
            min-height: 100vh;
            /* 使 body 中的元素居中顯示 */
            display: flex;
            justify-content: center;
            align-items: center;
        }
        
        #card{
            /* 為目標元素指定寬高并為其設(shè)置漸變背景顏色 */
            width: 200px;
            height: 200px;
            background: linear-gradient(to right bottom, rgb(108, 240, 255), rgb(118, 255, 180));
        }
    </style>
</head>
<body>
    <!-- 需要添加 3D 傾斜特效的元素 -->
    <div id="card" data-tilt data-tilt-max="25"></div>

	<!-- 導入 vanilla-tilt.js -->
	<script src="./vanilla-tilt.js"></script>
</body>
</html>

效果:

效果

2. VanillaTilt.init()

VanillaTilt.init() 函數(shù)接收兩個參數(shù),第一個參數(shù)為需要添加傾斜效果的元素對象,第二個參數(shù)則是用于添加傾斜效果的配置對象。

如下示例將設(shè)置 #card 元素為目標元素并將其 max 配置選項的值設(shè)置為 25。

<!DOCTYPE html>
<html lang="en">
<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>vanilla-tilt</title>
    <style>
        *{
            /* 去除元素默認的內(nèi)外邊距 */
            margin: 0px;
            padding: 0px;
        }

        body{
            /* 設(shè)置顯示區(qū)域的最小高度值為顯示窗口的高度值 */
            min-height: 100vh;
            /* 使 body 中的元素居中顯示 */
            display: flex;
            justify-content: center;
            align-items: center;
        }
        
        #card{
            /* 為目標元素指定寬高并為其設(shè)置漸變背景顏色 */
            width: 200px;
            height: 200px;
            background: linear-gradient(to right bottom, rgb(108, 240, 255), rgb(118, 255, 180));
        }
    </style>
</head>
<body>
    <!-- 需要添加 3D 傾斜特效的元素 -->
    <div id="card"></div>

    <!-- 導入 vanilla-tilt.js -->
    <script src="./vanilla-tilt.js"></script>
    <script>
        VanillaTilt.init(document.querySelector('#card'), {
            max: 25
        })
    </script>
</body>
</html>

優(yōu)先級

當使用 data-tilt-{option}VanillaTilt.init() 同時對配置選項進行設(shè)置時,將優(yōu)先使用 data-tilt-{option} 提供的配置,VanillaTilt.init() 的所有配置都將失效。

示例

<!DOCTYPE html>
<html lang="en">
<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>vanilla-tilt</title>
    <style>
        *{
            /* 去除元素默認的內(nèi)外邊距 */
            margin: 0px;
            padding: 0px;
        }

        body{
            /* 設(shè)置顯示區(qū)域的最小高度值為顯示窗口的高度值 */
            min-height: 100vh;
            /* 使 body 中的元素居中顯示 */
            display: flex;
            justify-content: center;
            align-items: center;
        }
        
        #card{
            /* 為目標元素指定寬高并為其設(shè)置漸變背景顏色 */
            width: 200px;
            height: 200px;
            background: linear-gradient(to right bottom, rgb(108, 240, 255), rgb(118, 255, 180));
        }
    </style>
</head>
<body>
    <!-- 需要添加 3D 傾斜特效的元素 -->
    <div id="card" data-tilt data-tilt-max="70"></div>

    <!-- 導入 vanilla-tilt.js -->
    <script src="./vanilla-tilt.js"></script>
    <script>
        VanillaTilt.init(document.querySelector('#card'), {
            max: 10,
            scale: 2 // 在鼠標懸停于目標元素之上時,將目標元素放縮指定倍數(shù) 
        })
    </script>
</body>
</html>

效果:

效果

可以看到目標元素使用了 data-tilt-max 所設(shè)定的配置選項的值,忽視了 VanillaTilt.init() 提供的 maxscale 。

配置選項

項目默認值描述
reversefalse反轉(zhuǎn)傾斜方向(設(shè)置為 true 時,鼠標在目標元素懸浮時該處會向屏幕內(nèi)測傾斜,默認向屏幕外側(cè)傾斜)
max35最大傾斜角度。
scale1設(shè)置鼠標懸浮于目標元素時,目標元素的放縮倍數(shù)。
glarefalse如果設(shè)置為 True,則會在鼠標懸停的位置制造反光效果,反光效果僅出現(xiàn)在目標元素的下面部分。
max-glare1設(shè)置反光強度,取值范圍為 0~1,該配置選項的值越是接近于 1 反光強度越大。反光強度的大小可以理解為 照到目標元素的那束光的光照強度 。該配置選項為 0 時與 glare 設(shè)置為 false 時的效果無異。
axisnull設(shè)置被激活的坐標軸,被禁用的坐標軸將不會產(chǎn)生傾斜效果。該配置選項的取值有 x、ynull。其中 null 表示同時激活 xy 軸。
resettrue當該選項設(shè)置為 false 時,鼠標若離開目標元素,目標元素將維持鼠標離開前的狀態(tài)(傾斜狀態(tài)及放縮狀態(tài))。若該選項設(shè)置為 true,鼠標若離開目標元素,目標元素將被去除傾斜狀態(tài)及放縮狀態(tài)。
startX0設(shè)置目標元素在 x 軸上的初始默認狀態(tài)。若要使用該選項,需要保證配置選項 resetreset-to-start 的值均為 true
startY0設(shè)置目標元素在 y 軸上的初始默認狀態(tài)。若要使用該選項,需要保證配置選項 resetreset-to-start 的值均為 true 。
reset-to-starttrue若該選項設(shè)置為 true,鼠標離開目標元素時,目標元素的傾斜狀態(tài)將恢復至配置選項 startXstartY 指定的傾斜狀態(tài)。
full-page-listeningfalse當該配置選項設(shè)置為 true 時,目標元素將響應(yīng)當前頁面的任何鼠標移動(鼠標即使沒有懸停在目標元素中,也可以通過鼠標移動控制目標元素的傾斜狀態(tài))。

其他

配置選項中還存在其他選項,但目前這些選項我并沒有弄清楚他們的用法。為避免誤人子弟,我并沒有對這些選項進行翻譯,請見諒。

項目默認值描述
gyroscopetrueBoolean to enable/disable device orientation detection.
gyroscopeMinAngleX-45This is the bottom limit of the device angle on X axis, meaning that a device rotated at this angle would tilt the element as if the mouse was on the left border of the element.
gyroscopeMaxAngleX45This is the top limit of the device angle on X axis, meaning that a device rotated at this angle would tilt the element as if the mouse was on the right border of the element.
gyroscopeMinAngleY-45This is the bottom limit of the device angle on Y axis, meaning that a device rotated at this angle would tilt the element as if the mouse was on the top border of the element.
gyroscopeMaxAngleY45This is the top limit of the device angle on Y axis, meaning that a device rotated at this angle would tilt the element as if the mouse was on the bottom border of the element.
mouse-event-elementnullcss-selector or link to HTML-element what will be listen mouse events.
glare-prerenderfalsefalse = VanillaTilt creates the glare elements for you, otherwise you need to add .js-tilt-glare>.js-tilt-glare-inner by yourself.
easingcubic-bezier(.03,.98,.52,.99)Easing on enter/exit.
speed300Speed of the enter/exit transition.
perspective1000Transform perspective, the lower the more extreme the tilt gets.
transitiontrueSet a transition on enter/exit.

總結(jié)

到此這篇關(guān)于JavaScript庫之vanilla-tilt使用教程的文章就介紹到這了,更多相關(guān)JS庫vanilla-tilt使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 純JS實現(xiàn)監(jiān)控本地文件變化

    純JS實現(xiàn)監(jiān)控本地文件變化

    你是否曾夢想擁有一個能夠?qū)崟r監(jiān)控本地文件變化的網(wǎng)頁應(yīng)用,現(xiàn)在,這個夢想即將成為現(xiàn)實,本文將通過純JS實現(xiàn)這一功能,感興趣的小伙伴可以了解下
    2025-04-04
  • layui 實現(xiàn)表格某一列顯示圖標

    layui 實現(xiàn)表格某一列顯示圖標

    今天小編就為大家分享一篇layui 實現(xiàn)表格某一列顯示圖標的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • 原生js添加節(jié)點appendChild、insertBefore方式

    原生js添加節(jié)點appendChild、insertBefore方式

    這篇文章主要介紹了原生js添加節(jié)點appendChild、insertBefore方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • JS 實現(xiàn)可停頓的垂直滾動實例代碼

    JS 實現(xiàn)可停頓的垂直滾動實例代碼

    下面小編就為大家?guī)硪黄狫S 實現(xiàn)可停頓的垂直滾動實例代碼。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-11-11
  • js實現(xiàn)鼠標點擊飄愛心效果

    js實現(xiàn)鼠標點擊飄愛心效果

    這篇文章主要為大家詳細介紹了js實現(xiàn)鼠標點擊飄愛心效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • Jquery+javascript實現(xiàn)支付網(wǎng)頁數(shù)字鍵盤

    Jquery+javascript實現(xiàn)支付網(wǎng)頁數(shù)字鍵盤

    這篇文章主要為大家詳細介紹了Jquery+javascript實現(xiàn)支付網(wǎng)頁數(shù)字鍵盤,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • document.all與getElementById、getElementsByName、getElementsByTagName用法區(qū)別-getElementById

    document.all與getElementById、getElementsByName、getElementsByT

    HTML DOM 定義了多種查找元素的方法,除了 getElementById() 之外,還有 getElementsByName() 和 getElementsByTagName()。
    2008-12-12
  • JavaScript數(shù)組reduce常見實例方法

    JavaScript數(shù)組reduce常見實例方法

    reduce方法在數(shù)組的每個元素上執(zhí)行用戶提供的回調(diào)函數(shù),即"reducer",它傳入對前一個元素進行計算的返回值,結(jié)果是單個值,它是在數(shù)組的所有元素上運行reducer的結(jié)果,下面這篇文章主要給大家介紹了關(guān)于JavaScript數(shù)組reduce常見實例方法的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • javascript實現(xiàn)移動端觸屏拖拽功能

    javascript實現(xiàn)移動端觸屏拖拽功能

    這篇文章主要為大家詳細介紹了javascript實現(xiàn)移動端觸屏拖拽功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • 關(guān)于前端小程序中.env?文件夾示例詳解

    關(guān)于前端小程序中.env?文件夾示例詳解

    這篇文章主要給大家介紹了關(guān)于前端小程序中.env?文件夾的相關(guān)資料,.env文件夾允許開發(fā)者在不同的環(huán)境中配置不同的變量值,以便在小程序的不同階段或環(huán)境中使用,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-05-05

最新評論

新平| 宁蒗| 长兴县| 旅游| 赤壁市| 柳州市| 桐梓县| 托克逊县| 绥化市| 田阳县| 泰和县| 汨罗市| 平昌县| 汉寿县| 张家港市| 西吉县| 丰原市| 中西区| 天峻县| 理塘县| 牡丹江市| 宜兰市| 曲靖市| 栾川县| 霍城县| 织金县| 广东省| 射阳县| 报价| 咸丰县| 和平区| 盐边县| 无极县| 西华县| 绿春县| 仪陇县| 通榆县| 安化县| 承德市| 汤阴县| 自治县|