在网页设计中,许多动画效果都可以为网站增加趣味性,鼠标跟随效果是其中一种较为常见的效果之一。鼠标跟随效果可以为网站带来一种立体感和动态感,能够吸引更多用户访问网站。本文主要介绍如何编写鼠标跟随代码,帮助想要学习这种设计效果的网页设计者更好地掌握技能。
1、了解鼠标跟随效果
鼠标跟随效果,正如其名所示,指的是鼠标移动到页面中某个位置时,页面上的元素会跟随鼠标移动。在一些小型的网站中,鼠标跟随效果可以被用于在页面周围绘制一些简单的图形,以吸引用户的眼球。在更为复杂的网站中,鼠标跟随效果可以被用于创建动态的导航效果、悬停效果等。
2、编写鼠标跟随代码
要编写鼠标跟随代码,最好先确定要使用的网页元素,比如一个简单的圆圈。在网页设计中,鼠标跟随效果通常是基于JavaScript编写的。下面是一个使用JavaScript实现的基本鼠标跟随效果的代码:
```javascript
var ball = document.getElementById( 'ball' );
document.onmousemove = function( ev ) {
var oEvent = ev || event;
ball.style.left = oEvent.clientX + 'px';
ball.style.top = oEvent.clientY + 'px';
}
```
解释一下上面的代码。首先,我们使用document.getElementById()函数获取了一个id为“ball”的元素。然后,我们使用document.onmousemove()函数来监听鼠标移动事件。每次鼠标移动时,我们都会调用一个小函数,这个小函数会修改ball元素的left和top属性,以使其出现在鼠标的当前位置。由于我们要在整个页面上监听鼠标移动事件,因此需要使用document对象。
3、实现更高级的鼠标跟随效果
上面的代码主要实现了一个基本的鼠标跟随效果,但是实际上我们可以使用更多的技巧和代码来实现更为复杂的效果。例如,我们可以实现一个带有缓冲运动的鼠标跟随效果。这种效果会使得页面元素移动更加平滑,并且可以让用户感到更加自然。
```javascript
var oDiv = document.getElementById('div1');
document.onmousemove = function( ev ) {
var oEvent = ev || event;
var x = oEvent.clientX - oDiv.offsetWidth / 2;
var y = oEvent.clientY - oDiv.offsetHeight / 2;
var iMaxX = document.documentElement.clientWidth - oDiv.offsetWidth;
var iMaxY = document.documentElement.clientHeight - oDiv.offsetHeight;
x = x > iMaxX ? iMaxX : x < 0 ? 0 : x;
y = y > iMaxY ? iMaxY : y < 0 ? 0 : y;
startMove(oDiv, x, y);
}
//缓冲运动函数
function startMove(obj, iTargetX, iTargetY) {
clearInterval(obj.timer);
obj.timer = setInterval(function() {
var iSpeedX = (iTargetX - obj.offsetLeft) / 5;
var iSpeedY = (iTargetY - obj.offsetTop) / 5;
iSpeedX = iSpeedX > 0 ? Math.ceil(iSpeedX) : Math.floor(iSpeedX);
iSpeedY = iSpeedY > 0 ? Math.ceil(iSpeedY) : Math.floor(iSpeedY);
if (iTargetX == obj.offsetLeft && iTargetY == obj.offsetTop) {
clearInterval(obj.timer);
} else {
obj.style.left = obj.offsetLeft + iSpeedX + 'px';
obj.style.top = obj.offsetTop + iSpeedY + 'px';
}
}, 20);
}
```
上述代码可以实现一个带有缓冲运动的鼠标跟随效果。当用户鼠标移动到页面中某个位置时,网页元素会平滑地跟随鼠标移动。在实现这种效果时,我们首先需要获取鼠标的当前位置,通过计算出元素的目标位置,并使用缓冲运动函数,让元素逐渐地到达目标位置。
总之,鼠标跟随效果是一种相对较为简单但十分实用的动画效果。在网页设计中,我们可以使用简单的JavaScript代码或者更为复杂的动画效果,来实现不同的鼠标跟随效果,为用户提供更加优质的使用体验。