1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
| <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style> *{ margin:0; padding:0; } body{ height:100vh; } .box{ position: absolute; bottom: 20px; left:0; right: 0; text-align: center; } ul>li{ list-style-type: none; } .box>ul{ display: inline-block; border:1px solid red; } .box>ul>li{ display: inline-block; } .box>ul>li:not(:last-child){ margin-right: 10px; } .box img{ display: inline-block; width: 80px; cursor: pointer; } </style> </head> <body> <div class="box"> <ul> <li> <img src="../1.jpg" /> </li> <li> <img src="../1.jpg" /> </li> <li> <img src="../1.jpg" /> </li> <li> <img src="../1.jpg" /> </li> <li> <img src="../1.jpg" /> </li> <li> <img src="../1.jpg" /> </li> </ul> </div> </body> </html> <script> var oUl = document.querySelector("ul"); var oLis = oUl.querySelectorAll("li"); var oDiv = document.querySelector('.box'); for(let i=0,length= oLis.length;i<length;i++){ oLis[i].left = oLis[i].offsetLeft + oLis[i].offsetWidth / 2; oLis[i].top = oLis[i].offsetTop + oDiv.offsetTop; } document.onmousemove = function(e){ var ev = e || ev; var clientX = ev.clientX; var clientY = ev.clientY;
for(let i=0,length= oLis.length;i<length;i++){ let skewX = oLis[i].left - clientX; let skewY = oLis[i].top - clientY; let skewZ = Math.sqrt(Math.pow(skewX,2) + Math.pow(skewY,2)); let rate = 1- skewZ / 600; if(rate <0.6){ rate = 0.6; } oLis[i].children[0].style.transform ="scale("+ (80*rate) / 80 + ")"; } } </script>
|