麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > CSS > 正文

如何使用CSS3制作炫酷帶方向感應的鼠標滑過圖片3D動畫

2020-03-22 18:23:22
字體:
來源:轉載
供稿:網友
這篇文章主要為大家詳細介紹了CSS3制作炫酷帶方向感應的鼠標滑過圖片3D動畫,具有一定的參考價值,并兼容目前最新的各類主流瀏覽器,感興趣的小伙伴們可以參考一下

這是一款使用CSS3和一點JS來制作的炫酷帶方向感應的鼠標滑過圖片3D動畫特效。在特效中,當用戶的鼠標滑過網格中的圖片時,網格中的內容遮罩層會出現3D翻轉動畫,并且帶有方向感應,能夠從鼠標進入的方向開始翻轉,效果非常的酷。


在線預覽 源碼下載

使用方法

HTML結構

該方向感應鼠標滑過動畫的HTML結構采用html' target='_blank'>無序列表的HTML結構來制作網格布局,每一個 li 元素是一個網格。每個網格中使用一個 svg 元素來進行占位,實際上它是一個圖片的小圖標。另外p.info是要進行3D翻轉的遮罩層。

 p >

CSS樣式

整個網格布局使用無序列表來制作,所有的li元素都采用左浮動。

ul {  padding: 0;  margin: 0 0 50px; ul:after {  content:  display: table;  clear: both; li {  position: relative;  float: left;  width: 200px;  height: 200px;  margin: 5px;  padding: 0;  list-style: none; li a {  display: inline-block;  vertical-align: top;  text-decoration: none;  border-radius: 4px; }

同時為了制作3D效果,為每一個li元素添加透視屬性。

li {  -webkit-perspective: 400px;  perspective: 400px; }

用于制作3D翻轉的遮罩層p.info默認設置為100%的寬度和100%的高度,使用絕對定位,開始時位于左上角位置。然后使用rotate3d()函數將它沿X軸順時針旋轉90度,使其不可見。

.info {  -webkit-transform: rotate3d(1, 0, 0, 90deg);  transform: rotate3d(1, 0, 0, 90deg);  width: 100%;  height: 100%;  padding: 20px;  position: absolute;  top: 0;  left: 0;  border-radius: 4px;  pointer-events: none;  background-color: rgba(26, 188, 156, 0.9); }

最后在CSS樣式中為鼠標從上下左右4個方向進入和離開時預設了class類,這些class是在鼠標進入網格時,使用JavaScript來檢測鼠標的進入方向,然后為其添加相應的class類。

.in-top .info {  -webkit-transform-origin: 50% 0%;  transform-origin: 50% 0%;  -webkit-animation: in-top 300ms ease 0ms 1 forwards;  animation: in-top 300ms ease 0ms 1 forwards; .in-rightright .info {  -webkit-transform-origin: 100% 0%;  transform-origin: 100% 0%;  -webkit-animation: in-rightright 300ms ease 0ms 1 forwards;  animation: in-rightright 300ms ease 0ms 1 forwards; .in-bottombottom .info {  -webkit-transform-origin: 50% 100%;  transform-origin: 50% 100%;  -webkit-animation: in-bottombottom 300ms ease 0ms 1 forwards;  animation: in-bottombottom 300ms ease 0ms 1 forwards; .in-left .info {  -webkit-transform-origin: 0% 0%;  transform-origin: 0% 0%;  -webkit-animation: in-left 300ms ease 0ms 1 forwards;  animation: in-left 300ms ease 0ms 1 forwards; .out-top .info {  -webkit-transform-origin: 50% 0%;  transform-origin: 50% 0%;  -webkit-animation: out-top 300ms ease 0ms 1 forwards;  animation: out-top 300ms ease 0ms 1 forwards; .out-rightright .info {  -webkit-transform-origin: 100% 50%;  transform-origin: 100% 50%;  -webkit-animation: out-rightright 300ms ease 0ms 1 forwards;  animation: out-rightright 300ms ease 0ms 1 forwards; .out-bottombottom .info {  -webkit-transform-origin: 50% 100%;  transform-origin: 50% 100%;  -webkit-animation: out-bottombottom 300ms ease 0ms 1 forwards;  animation: out-bottombottom 300ms ease 0ms 1 forwards; .out-left .info {  -webkit-transform-origin: 0% 0%;  transform-origin: 0% 0%;  -webkit-animation: out-left 300ms ease 0ms 1 forwards;  animation: out-left 300ms ease 0ms 1 forwards; }

JavaScript

該特效中使用JavaScript來獲取鼠標進入網格的方向,為相應的網格動畫添加相應的class類。其中getDirection()函數為獲取方向函數。

var getDirection = function (ev, obj) {  var w = obj.offsetWidth,  h = obj.offsetHeight,  x = ev.pageX - obj.offsetLeft - w / 2 * (w h ? h / w : 1),  y = ev.pageY - obj.offsetTop - h / 2 * (h w ? w / h : 1),  d = Math.round(Math.atan2(y, x) / 1.57079633 + 5) % 4;  return d; };

然后通過遍歷所有的li元素,通過鼠標進入的方向來添加相應的class類。

var nodes = document.querySelectorAll( li ),  _nodes = [].slice.call(nodes, 0); var addClass = function (ev, obj, state) {  var direction = getDirection(ev, obj), class_suffix =  obj.className =  switch (direction) {  case 0:  class_suffix = -top  break;  case 1:  class_suffix = -right  break;  case 2:  class_suffix = -bottom  break;  case 3:  class_suffix = -left  break;  obj.classList.add(state + class_suffix); _nodes.forEach(function (el) {  el.addEventListener( mouseover , function (ev) {  addClass(ev, this, in  }, false);  el.addEventListener( mouseout , function (ev) {  addClass(ev, this, out  }, false); });

以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP !

相關推薦:

使用CSS3實現超酷的黑貓警長首頁

如何利用CSS3制作簡單的3d半透明立方體圖片

以上就是如何使用CSS3制作炫酷帶方向感應的鼠標滑過圖片3D動畫的詳細內容,PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 色播一区 | 欧美成人综合视频 | 黄色免费在线电影 | 午夜精品久久久久久久久久久久久蜜桃 | 久久国产精品久久久久久电车 | 国产精品久久久久久婷婷天堂 | 成人做爰高潮片免费视频韩国 | 污视频在线免费播放 | 色妞视频男女视频 | 欧美一级不卡视频 | 国产成人在线观看网站 | 亚洲九九爱 | 久久精品国产99久久久古代 | 国产高潮失禁喷水爽到抽搐视频 | 午夜生活理论片 | 操你逼| av在线久草| 亚洲一区二区免费 | 欧美成人黄色片 | 欧美视频一区二区三区四区 | 久久免费视频8 | 成人短视频在线观看免费 | 国产高潮失禁喷水爽到抽搐视频 | 精品久久久久久久久中文字幕 | 日本成年免费网站 | 日本黄色免费片 | 一级黄色免费观看 | 中文字幕伦乱 | 性看小视频 | 美女黄影院 | 精品视频 久久久 | 黄色影院 | 特一级毛片 | 99麻豆久久久国产精品免费 | 精品黑人一区二区三区国语馆 | 热re91久久精品国产99热 | 国产精品成人av片免费看最爱 | 一本色道久久综合狠狠躁篇适合什么人看 | 91九色网 | 久久成人福利 | 国产一区二区免费在线观看 |