Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说前端工程师:JavaScript特效,希望能够帮助你!!!。
先来看看特效是什么样子的吧,鼠标滑过图片原地向四周扩大,鼠标离开图片缩小
再来看看源代码
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>无标题文档</title> <script type="text/javascript" src="js/move.js"></script> <style> #ul { width: 300px; height: 300px; position: relative; display: block; margin: 0 auto; } li { list-style: none; width: 90px; height: 90px; margin: 10px 0 0 10px; background-color: yellow; float: left; } </style> </head> <body> <ul id="ul"> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> </ul> <script> window.onload = function() { var oUl = document.getElementById('ul'); var oLi = document.getElementsByTagName('li'); var arr = []; for(var i = 0; i < oLi.length; i++) { oLi[i].index = i; //提前保存好元素最开始的位置 arr.push({ left: oLi[i].offsetLeft, top: oLi[i].offsetTop }) } for(var i = 0; i < oLi.length; i++) { //定位后浮动效果就是失效了 oLi[i].style.position = 'absolute'; //重新设置li的位置 oLi[i].style.left = arr[i].left + 'px'; oLi[i].style.top = arr[i].top + 'px'; //因为元素保存后的位置就是偏移后的,所以要把外边距清除掉 oLi[i].style.margin = 0; oLi[i].onmouseover = function() { startMove(this, { width: 150, height: 150, left: arr[this.index].left - 40, top: arr[this.index].top - 40 }); } oLi[i].onmouseout = function() { startMove(this, { width: 90, height: 90, left: arr[this.index].left, top: arr[this.index].top }); } } } </script> </body> </html>
有什么建议或者疑问可以评论留言,如果小编的文章您觉得有用就给个关注啦~~
今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。