錘子商城首頁banner圖滑鼠跟隨及視覺差效果

来源:http://www.cnblogs.com/tian0o0/archive/2017/11/18/7857728.html
-Advertisement-
Play Games

我發現現在很多網站都使用了這種效果,比如說錘子官網、elementui官網、秒味課堂等,不單單有滑鼠跟隨的效果,隨著滑鼠的移動還有視覺差的效果,看起來很高大上的技術,其實實現起來很簡單,主要利用css3的transform-style和persperctive屬性。 廢話不多說直接上代碼: html ...


我發現現在很多網站都使用了這種效果,比如說錘子官網、elementui官網、秒味課堂等,不單單有滑鼠跟隨的效果,隨著滑鼠的移動還有視覺差的效果,看起來很高大上的技術,其實實現起來很簡單,主要利用css3的transform-style和persperctive屬性。

廢話不多說直接上代碼:

html:

複製代碼
<div class="perspective">
        <div class="preserve3d">
            <span class="preserve3d_img"></span>
            <span class="preserve3d_text">以傲慢與偏執<br/>回敬傲慢與偏見</span>
        </div>
</div>
複製代碼

css:

關鍵設置:

   1、為外層容器設置perspective屬性,這個屬性值可以自定義可以是數值、top/bottom等

2、把你想要設置為視覺差的元素設置為絕對定位,並且添加transform:tanslateZ(deg)屬性

複製代碼
    * {
        font-family: "Microsoft YaHei";
        transition: all .3s;
        -webkit-transition: all .3s;
        transition-timing-function: linear;
        -webkit-transition-timing-function: linear;
    }

    .perspective {
        perspective: 800px;
    }

    .preserve3d {
        position: relative;
        width: 600px;
        height: 300px;
        margin: 100px auto;
        background: url("http://static.smartisanos.cn/index/img/store/home/banner-3d-item-1-box-1_61bdc2f4f9.png") center no-repeat;
        background-size: 100% 100%;
        border-radius: 10px;
        transform-style: preserve-3d;
    }

    .preserve3d_img {
        position: absolute;
        width: 100%;
        height: 100%;
        bottom: 11px;
        left: 0;
        background: url("http://static.smartisanos.cn/index/img/store/home/banner-3d-item-1-box-3_8fa7866d59.png") center no-repeat;
        background-size: 95% 100%;

        -webkit-transform: translateZ(60px);
    }

    .preserve3d_text {
        position: absolute;
        top: 20%;
        right: 10%;
        font-size: 30px;
        color: #fff;
        text-align: right;
        font-weight: lighter;

        -webkit-transform: translateZ(40px);
    }
複製代碼

js:

複製代碼
 $('.preserve3d').on('mouseenter', function() {
          var thisPX = $(this).offset().left;
          var thisPY = $(this).offset().top;
          var boxWidth = $(this).outerWidth();
          var boxHeight = $(this).outerHeight();
          $(this).addClass("smart_3d");

          })
          .on('mousemove', function(event) {
          var mouseX = event.pageX - thisPX;
          var mouseY = event.pageY - thisPY;
          var X = mouseX - boxWidth/2;
          var Y = boxHeight/2 - mouseY;
          $(this).css({
            "-webkit-transform": "rotateY(" + X / 50 + "deg) " + "rotateX(" + Y / 50 + "deg)"
          });
          })
          .on('mouseleave', function() {
            $(this).removeClass("smart_3d");
            $(this).css({
              "-webkit-transform": "rotateY(0deg) rotateX(0deg)"
            })

          })     
複製代碼

ok,就是這麼簡單~還可以直接做成jQuery插件,具體參考: https://github.com/tian0o0/html5/tree/master/smart_banner


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 參考鏈接: - https://www.zhihu.com/question/64414628 php fpm 進程數和併發數是什麼關係? - https://segmentfault.com/q/1010000005942449/a-1020000012063637 php不支持多線程所以不用考慮 ...
  • http://blog.chinaunix.net/uid-28458801-id-4200573.html 一、typeof詳解: 前言: typeof關鍵字是C語言中的一個新擴展,這個特性在linux內核中應用非常廣泛。(其實這和C++的auto關鍵字和可以推斷decltype關鍵字相當類似) ...
  • 一、單系統登錄機制1、http無狀態協議 web應用採用browser/server架構,http作為通信協議。http是無狀態協議,瀏覽器的每一次請求,伺服器會獨立處理,不與之前或之後的請求產生關聯,這個過程用下圖說明,三次請求/響應對之間沒有任何聯繫 但這也同時意味著,任何用戶都能通過瀏覽器訪問 ...
  • Struts2 框架入門及結合Intellj idea完成登陸demo測試 ...
  • 雙向鏈表中的每一個元素都由3部分組成:除了數據成員、next指針外,每個元素還包含一個指向其前驅元素的指針,稱為prev指針。雙向鏈表的組成是這樣的:將一些元素鏈接在一起,使得每個元素的next指針都指向其後繼的元素,而每個元素的prev指針都指向其前驅元素。 ...
  • 閑話多說 免費報名:http://www.genshuixue.com/teacher/classCourseDetail/171117794648 .Net Core來了,帶給我們的是什麼?跨平臺,無疑是最大的亮點! Docker橫空出世,讓開發者和運維者都嘗到了甜頭! Jenkins持久集成,功 ...
  • <style> body{ text-align:center} div{ margin:50px auto}</style><script type="text/javascript"> function clik(t){ //獲取所有的img標簽 var imgs = document.getE ...
  • 剛入園,以此來記錄有關學習html過程中的問題和理解。零基礎,現在在看教學視頻,剛看完html5.問題不大,作為前端開發最基礎的一塊,大致內容也就是記一些符號分別表示什麼。期間有一個問題就是,直接複製粘貼有時候行不通哦,代碼還是得自己一個一個敲啊,不要想著省事。記得之前是複製粘貼了一段話,而沒有那個 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...