原生js实现鼠标跟随效果
发布时间 - 2026-01-10 23:19:30 点击率:次话不多说,请看代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>鼠标跟随效果</title>
<style type="text/css">
*{margin: 0;padding: 0;}
img{position:absolute;top:0;left:0;}
</style>
</head>
<body>
<img src="http://www.qdfuns.com/misc.php?mod=attach&genre=editor&aid=21984166dad229792b21c2e1277bece5" height="50" width="50" alt="" id="img">
</body>
<script type="text/javascript">
(function(window){
// 获取对象
var img = document.getElementById("img");
// 为页面添加单击事件,鼠标点击时图片滑动到鼠标所在位置
document.onclick = function(event){
var event = event || window.event;
// 获取鼠标在页面上的坐标
var pageX = event.pageX || event.clientX + document.documentElement.scrollLeft;
var pageY = event.pageY || event.clientY + document.documentElement.scrollTop;
// 减去图片自身宽高的一半,使鼠标在图片中间
pageX = pageX - img.offsetWidth/2;
pageY = pageY - img.offsetWidth/2;
animate(img,{"left":pageX,"top":pageY});
};
// 封装缓动函数
function animate(obj,json,fn){
clearInterval(obj.timer);
obj.timer = setInterval(function(){
var flog = true ;
for( k in json ){
if( k === "zindex" ){
obj.style[k] = json[k];
}else if( k === "opacity" ){
var leader = getStyle(obj,k) * 100;
var target = json[k] * 100;
var step = ( target - leader ) / 10 ;
step = step > 0 ? Math.ceil( step ) : Math.floor( step );
leader = leader + step ;
obj.style[k] = leader / 100;
}else{
var leader = parseInt( getStyle(obj,k) );
var target = json[k];
var step = ( target - leader) / 10 ;
step = step > 0 ? Math.ceil( step ) : Math.floor( step );
leader = leader + step;
obj.style[k] = leader + "px";
};
if( leader !== target ){
flog = false;
}
}
if( flog ){
clearInterval(obj.timer);
if( fn ){
fn();
};
};
}, 15)
};
// 封装获取计算后样式的函数
function getStyle(obj,attr){
if( window.getComputedStyle ){
return window.getComputedStyle(obj,null)[attr];
}else{
return obj.currentStyle[attr];
};
};
})(window)
</script>
</html>
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
# js鼠标跟随效果
# 鼠标跟随效果
# js实现简单鼠标跟随效果的方法
# 简单实现js鼠标跟随效果
# js鼠标跟随运动效果
# javascript鼠标跟随运动3种效果(眼球效果
# 苹果菜单
# 方向跟随)
# Js鼠标跟随代码小手点击实例方法
# JS实现的简单鼠标跟随DiV层效果完整实例
# JS实现的鼠标跟随代码(卡通手型点击效果)
# js实现鼠标跟随运动效果
# JavaScript实现的鼠标跟随特效示例【2则实例】
# js实现鼠标跟随小游戏
# 鼠标
# 多说
# 单击
# 鼠标点击
# qdfuns
# php
# misc
# www
# left
# top
# absolute
# http
# src
# body
# height
# width
# aid
# attach
# mod
# amp
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何在云主机快速搭建网站站点?
浅谈javascript alert和confirm的美化
香港服务器租用每月最低只需15元?
谷歌浏览器如何更改浏览器主题 Google Chrome主题设置教程
Internet Explorer官网直接进入 IE浏览器在线体验版网址
详解CentOS6.5 安装 MySQL5.1.71的方法
如何快速完成中国万网建站详细流程?
Laravel怎么实现API接口鉴权_Laravel Sanctum令牌生成与请求验证【教程】
重庆市网站制作公司,重庆招聘网站哪个好?
Laravel怎么配置自定义表前缀_Laravel数据库迁移与Eloquent表名映射【步骤】
如何用AI帮你把自己的生活经历写成一个有趣的故事?
Laravel如何配置任务调度?(Cron Job示例)
HTML 中动态设置元素 name 属性的正确语法详解
Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程
Laravel Session怎么存储_Laravel Session驱动配置详解
Java类加载基本过程详细介绍
详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)
动图在线制作网站有哪些,滑动动图图集怎么做?
Laravel如何安装Breeze扩展包_Laravel用户注册登录功能快速实现【流程】
Laravel如何创建自定义Facades?(详细步骤)
如何在Ubuntu系统下快速搭建WordPress个人网站?
使用Dockerfile构建java web环境
手机网站制作与建设方案,手机网站如何建设?
Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能
历史网站制作软件,华为如何找回被删除的网站?
实现点击下箭头变上箭头来回切换的两种方法【推荐】
如何彻底卸载建站之星软件?
简单实现Android验证码
如何用好域名打造高点击率的自主建站?
Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全
PHP 500报错的快速解决方法
Laravel N+1查询问题如何解决_Eloquent预加载(Eager Loading)优化数据库查询
javascript读取文本节点方法小结
详解MySQL数据库的安装与密码配置
laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法
Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程
Windows11怎样设置电源计划_Windows11电源计划调整攻略【指南】
如何在沈阳梯子盘古建站优化SEO排名与功能模块?
如何快速打造个性化非模板自助建站?
Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道
如何在不使用负向后查找的情况下匹配特定条件前的换行符
Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】
Laravel如何编写单元测试和功能测试?(PHPUnit示例)
Laravel Debugbar怎么安装_Laravel调试工具栏配置指南
jQuery validate插件功能与用法详解
奇安信“盘古石”团队突破 iOS 26.1 提权
Laravel如何处理CORS跨域请求?(配置示例)
东莞市网站制作公司有哪些,东莞找工作用什么网站好?
音乐网站服务器如何优化API响应速度?
微信小程序 HTTPS报错整理常见问题及解决方案

