摘要:這主要是沿著軸進(jìn)行旋轉(zhuǎn),顧名思義就是橫向不動(dòng),肉眼看見的圖形應(yīng)該是上下翻轉(zhuǎn)的效果定義沿著軸的旋轉(zhuǎn)。
本節(jié)主要講的是元素跟隨鼠標(biāo)旋轉(zhuǎn)主要是用到了原生js更改css的transform屬性,這個(gè)屬性下有很多方法,下面就只講關(guān)于本節(jié)內(nèi)容的幾種方法,其他的可以私下自己去看一看translate(x,y) 轉(zhuǎn)換2D
translate(x,y)水平方向和垂直方向同時(shí)移動(dòng)(也就是X軸和Y軸同時(shí)移動(dòng)) translateX(x)僅水平方向移動(dòng)(X軸移動(dòng)) translateY(Y)僅垂直方向移動(dòng)(y軸移動(dòng)) 效果:
鏈接描述
rotate(angle) 定義2D旋轉(zhuǎn),旋轉(zhuǎn)角度在參數(shù)中定義通過指定rotate內(nèi)設(shè)置角度參數(shù)對(duì)元素進(jìn)行一個(gè)2D的旋轉(zhuǎn),設(shè)置正數(shù)元素則順時(shí)針旋轉(zhuǎn)參數(shù)內(nèi)的角度,設(shè)置負(fù)數(shù)則逆時(shí)針旋轉(zhuǎn)參數(shù)內(nèi)的角度 transform-origin可以定義旋轉(zhuǎn)的原點(diǎn),不設(shè)置的話會(huì)按中心點(diǎn)進(jìn)行旋轉(zhuǎn),這個(gè)屬性的參數(shù)也分為 x軸 y軸 z軸(偏移量) 效果:
鏈接描述
rotateX(angle) 定義沿著 x 軸的 3D 旋轉(zhuǎn)。這主要是沿著X軸進(jìn)行旋轉(zhuǎn),顧名思義就是橫向不動(dòng),肉眼看見的圖形應(yīng)該是上下翻轉(zhuǎn)的效果rotateY(angle) 定義沿著 Y 軸的 3D 旋轉(zhuǎn)。
這主要是沿著Y軸進(jìn)行旋轉(zhuǎn),顧名思義就是垂直不動(dòng),肉眼看見的圖形應(yīng)該是左右翻轉(zhuǎn)的效果,盜個(gè)圖吧,作者看見別怪!rotateZ(angle) 定義沿著 Z 軸的 3D 旋轉(zhuǎn)。
Z軸我個(gè)人的理解就是按照你設(shè)置的旋轉(zhuǎn)原點(diǎn),繞圈旋轉(zhuǎn) 下面就是x,y,z 軸的圖解
鏈接描述
另外還有最重要的就是transform的矩陣matrix(n,n,n,n,n,n)里面的六個(gè)值分別代表不同的屬性,這里就不說它,沒啥好說的自己下去看看吧!!!
利用上一篇文章所講的坐標(biāo)來計(jì)算鼠標(biāo)移動(dòng)的時(shí)候計(jì)算角度
獲取旋轉(zhuǎn)元素的中心點(diǎn)
設(shè)置默認(rèn)旋轉(zhuǎn)的中心X原點(diǎn)以及Y的中心原點(diǎn),根據(jù)元素的位置計(jì)算,利用元素的width + 元素的偏移量 計(jì)算 旋轉(zhuǎn)原點(diǎn),鼠標(biāo)點(diǎn)擊 時(shí)獲取 centerX = n.offsetLeft + n.offsetWidth / 2 centerY = n.offsetTop + n.offsetHeight / 2
這里會(huì)用到計(jì)算弧度Math.atan2
獲取旋轉(zhuǎn)的角度centerx
static angle (centerx, centery, endx, endy) { // 鼠標(biāo)移動(dòng)獲取鼠標(biāo)移動(dòng)的e.client - 鼠標(biāo)點(diǎn)擊時(shí)的client var diff_x = endx - centerx, // 拿到計(jì)算弧度的差值 diff_y = endy - centery // Math.atan2利用x,y坐標(biāo)計(jì)算角度 // 360 * Math.atan2(diff_y, diff_x) 映射到360度 // 一個(gè)完整的圓的弧度是2π,所以:2π rad = 360° // / (2 * Math.PI) 轉(zhuǎn)換成角度 var c = 360 * Math.atan2(diff_y, diff_x) / (2 * Math.PI) // 其實(shí)在這里就分逆時(shí)針和順時(shí)針旋轉(zhuǎn)了,(360 + -c)逆時(shí)針 // 如果為-90 = 360 + -90 ,如果為-80 = -80 + 90 c = c <= -90 ? (360 + c) : c // 補(bǔ)上-90度的差值 return c + 90 }
例如:
centerx:40,centery:30 取的都是中心點(diǎn)的值 endx: 80, endy: 60
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/53202.html
摘要:這主要是沿著軸進(jìn)行旋轉(zhuǎn),顧名思義就是橫向不動(dòng),肉眼看見的圖形應(yīng)該是上下翻轉(zhuǎn)的效果定義沿著軸的旋轉(zhuǎn)。 本節(jié)主要講的是元素跟隨鼠標(biāo)旋轉(zhuǎn)主要是用到了原生js更改css的transform屬性,這個(gè)屬性下有很多方法,下面就只講關(guān)于本節(jié)內(nèi)容的幾種方法,其他的可以私下自己去看一看 translate(x,y) 轉(zhuǎn)換2D translate(x,y)水平方向和垂直方向同時(shí)移動(dòng)(也就是X軸和Y軸同時(shí)移...
摘要:常用三角函數(shù)前面我們簡(jiǎn)單的介紹了三角函數(shù)的表示方法以及的坐標(biāo)系統(tǒng)。總結(jié)這節(jié)你應(yīng)該學(xué)會(huì)了如何運(yùn)用三角函數(shù),控制物體的旋轉(zhuǎn)。 本節(jié)主要內(nèi)容有: 三角函數(shù)介紹 常用三角函數(shù)解析 鼠標(biāo)跟隨角度旋轉(zhuǎn) 看到三角函數(shù),勾股定理這樣的數(shù)學(xué)名詞是不是有種雙腿打顫的感覺啊!好吧,就算你已經(jīng)嚇尿了,也不能否認(rèn)我們中學(xué)學(xué)習(xí)的知識(shí)終于有了用武之地,挽起袖子,開整!!! 1、三角函數(shù) 什么是三角函數(shù)呢?簡(jiǎn)單的...
摘要:常用三角函數(shù)前面我們簡(jiǎn)單的介紹了三角函數(shù)的表示方法以及的坐標(biāo)系統(tǒng)。總結(jié)這節(jié)你應(yīng)該學(xué)會(huì)了如何運(yùn)用三角函數(shù),控制物體的旋轉(zhuǎn)。 本節(jié)主要內(nèi)容有: 三角函數(shù)介紹 常用三角函數(shù)解析 鼠標(biāo)跟隨角度旋轉(zhuǎn) 看到三角函數(shù),勾股定理這樣的數(shù)學(xué)名詞是不是有種雙腿打顫的感覺啊!好吧,就算你已經(jīng)嚇尿了,也不能否認(rèn)我們中學(xué)學(xué)習(xí)的知識(shí)終于有了用武之地,挽起袖子,開整!!! 1、三角函數(shù) 什么是三角函數(shù)呢?簡(jiǎn)單的...
摘要:我們先看下最后的效果實(shí)現(xiàn)思路要實(shí)現(xiàn)眼睛隨鼠標(biāo)一起運(yùn)動(dòng),我們必須先求出眼睛的坐標(biāo),也就是它的和值為了取到和值,我們只要知道角的內(nèi)三角形的對(duì)邊和鄰邊的長(zhǎng)度即可為了取到對(duì)邊和鄰邊,我們只需要知道角的弧度即可角的弧度,我們可能通過圖中邊和邊,再使用 我們先看下最后的效果 showImg(https://segmentfault.com/img/bVTp6V?w=1106&h=924); 實(shí)現(xiàn)思...
閱讀 756·2023-04-26 01:30
閱讀 3307·2021-11-24 10:32
閱讀 2193·2021-11-22 14:56
閱讀 1988·2021-11-18 10:07
閱讀 561·2019-08-29 17:14
閱讀 632·2019-08-26 12:21
閱讀 3111·2019-08-26 10:55
閱讀 2947·2019-08-23 18:09