国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

transform - CSS3的3D變換多次變換如何保持坐標軸不動,或者有矩陣算法可以實現否

瀏覽:115日期:2023-06-18 08:50:02

問題描述

我用CSS3構建了一個正方體,想用鼠標控制正方體的旋轉(X軸與Y軸)

查看頁面

旋轉的核心代碼大概是這樣的:

var box = $('#box'); //box是3D對像的容器; var option_n = 0.5; //靈敏度 box.on(’mousedown’,function(e){if(e.button === 0){ mouse_left(e); return false;} }) function mouse_left(e){ //合并旋轉值,有bugvar x,y;var zb_b = [e.pageX,e.pageY];var oldt = box.css(’transform’);$(document).on(’mousemove.dh’,function(e){ var zb_e = [e.pageX,e.pageY]; y = ((zb_e[0] - zb_b[0]) * option_n); x = (-(zb_e[1] - zb_b[1]) * option_n); var transform = ’rotateY(’+y+’deg)’ +’ rotateX(’+x+’deg)’; dom.css(’transform’,oldt + transform);}).on(’mouseup.dh’,function(e){ $(document).off(’mousemove.dh’); $(document).off(’mouseup.dh’);}) }

出現的問題是這樣的,第一次操作沒有問題,后面就會有問題,原因是旋轉操作貌似旋轉的是整個坐標軸,導致后續再旋轉就出問題了.

頁面中有一個'模式切換'按鈕, 切換之后的效果就是我想要的,但是這個實現是每次旋轉都要嵌套兩個父結點,旋轉的都是父結點來達到效果的,多次控制之后DOM層級就會非常深,這樣肯定是不行的.

肯請大神指點一二

問題解答

回答1:

http://runjs.cn/code/urduzcae

var transformChage = top.transformChage = function(dom,transform){ var oldt = dom.css(’transform’); oldt = oldt == 'none' ? '' : oldt+' '; dom.css(’transform’, transform + oldt)}

改成左乘即可。

理解這個問題,不需要了解太多矩陣的知識,可以把矩陣實現當成黑盒,來看一下矩陣計算順序和父子矩陣影響:

計算累計變換矩陣 accumulated 3D transformation matrix

從單位矩陣開始,對于從3D渲染上下文(每個聲明了preseve-3d的元素)的根元素到當前元素的每一個包含快:

累積變換矩陣乘以其包含塊上的perspective矩陣

累積變換矩陣乘以當前塊相對其包含塊的水平、垂直位移矩陣

累積變換矩陣乘以變換矩陣

直到計算到當前元素,得到最終累積變換矩陣。

——W3C CSS Transform WD: 6.1 3D Transform Rendering

需要關注的是第3步,按照這樣的標準,如果我們要做出這樣的變換,左側變換即是:

transform - CSS3的3D變換多次變換如何保持坐標軸不動,或者有矩陣算法可以實現否

當然,如果對矩陣實現感興趣,我也在《前端中的變換矩陣》中粗淺地介紹了。這個問題的核心是矩陣乘法在大部分情況下都不符合乘法交換律。

標簽: CSS
主站蜘蛛池模板: 亚洲欧美国产精品专区久久 | 亚洲国产成人精品激情 | 亚洲精品国产一区二区图片欧美 | 国产精品久久久久久久久岛 | 日韩在线 中文字幕 | 欧美深夜在线 | 久久日本三级韩国三级 | 手机在线观看一级午夜片 | 亚洲精品久久久久中文字幕一区 | 久久免费视频在线观看 | 91精品自在拍精选久久 | 在线视频一区二区三区四区 | 黄色毛片视频网站 | 伊人蜜桃 | 萌白酱喷水福利视频在线 | 欧美成人免费午夜全 | 成a人片亚洲日本久久 | 免费在线观看一区二区 | 国产午夜免费福利红片 | 中文欧美一级强 | 国产精品激情丝袜美女 | 国产精品亚洲四区在线观看 | 国产成人在线免费观看 | 国产日韩欧美在线观看不卡 | 国产三级在线观看视频 | 三级网址在线观看 | 免费人成黄页网站在线观看国产 | 国产成人精品亚洲77美色 | 午夜影院黄色 | 精品欧美一区视频在线观看 | 色资源二区在线视频 | 91最新地址永久入口 | 欧美黄视频在线观看 | 久久久久久色 | 亚洲欧美自拍一区 | 俄罗斯一级毛片免费播放 | 国产成人精品亚洲2020 | 天天躁天天碰天天看 | 国产成人综合手机在线播放 | 国产成人久久综合二区 | 91久久国产成人免费观看资源 |