錘子科技官方首頁的特效

前段時間同事給我說錘子科技的首頁特效很是驚豔,讓我看下,我一看果真炫酷http://www.smartisan.com.html

在網上查了一下,有人說用的是這個插件https://github.com/ariona/hover3d,不過我這邊GITHUB上不去沒法驗證。git

還有查到是用了parallax這個插件,查了下確實http://www.htmleaf.com/Demo/201508152420.html,不過parallax只實現了圖片層次感的視覺差效果,錘子科技的首頁特效還有個隨鼠標位置改變形狀的transform的效果.github

我找到了一位網友寫的關於這種特效的demo,請看https://imnerd.org/lab/mousemove3d.html,你們能夠用用後臺工具看原碼,我這裏貼出來web

var origin = {X: document.body.clientWidth/2, Y: document.body.clientHeight/2}, o = document.querySelector('.cover');
    document.addEventListener('mousemove', function(e) {
        var rotate = {x:e.pageY/origin.Y-1, y:1-e.pageX/origin.Y};
        var transform = "rotateX("+rotate.x*10+"deg) rotateY("+rotate.y*10+"deg)";
        o.style.webkitTransform = transform;
        o.style.transform = transform;
    });

其中核心就是工具

var rotate = {x:e.pageY/origin.Y-1, y:1-e.pageX/origin.Y};spa

var transform = "rotateX("+rotate.x*10+"deg) rotateY("+rotate.y*10+"deg)";插件

這兩行,origin是容器中心點的座標,把鼠標實時y座標和中心點Y座標的比值-1,再附給要變化的元素o的rotateX(結果乘以10再加上deg),rotateY則是倒過來,1減去鼠標實時X座標和中心點X座標的比值,而後把這些綁定到o的mousemove事件上3d

最後,把parallax視覺差和上述代碼結合起來就能實現錘子科技首頁的特效了code

相關文章
相關標籤/搜索