分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

JS之鼠标跟随

发布时间:2023-09-06 01:33责任编辑:顾先生关键词:暂无标签

需求:点击页面的任何地方,图片跟随鼠标移动到点击位置
思路:获取鼠标在页面中的位置,然后图片缓慢运动到鼠标点击的位置(兼容ie6,7做pageY和pageX)

<!DOCTYPE html><html><head><meta charset="utf-8"> ???<title></title><style type="text/css">body{ ???height: 5000px;}img{ ???position: absolute; ???padding: 10px 0; ???cursor: pointer; ???border:1px solid #ccc;}</style></head><body><img src="../images/img.jpg" width="100"/><script type="text/javascript">//需求:点击页面的任何地方,图片跟随鼠标移动到点击位置//思路:获取鼠标在页面中的位置,然后图片缓慢运动到鼠标点击的位置//兼容ie6,7做pageY和pageX//原理:鼠标在页面的位置 = 被卷去的部分 + 可视区域部分//步骤://1.老三步//2.获取鼠标在页面的位置//3.利用缓动原理,慢慢的运动到指定位置(包括左右和上下)//获取相关元素并绑定事件var img = document.getElementsByTagName("img")[0];var timer =null;var targetx = 0;var targety = 0;var leaderx = 0;var leadery = 0;//给整个文档绑定点击事件获取鼠标的位置document.onclick = function(event){ ???//兼容获取事件对象 ???event = event || window.event; ???//鼠标在页面的位置 = 被卷去的部分+可视区域部分 ???var pagex = event.pageX || scroll().left + event.clientX; ???var pagey = event.pageY || scroll().top + event.clientY; ???targety = pagey-30; ???targetx = pagex-50; ???//利用缓动动画 ???//要用定时器,先清定时器 ???clearInterval(timer); ???timer = setInterval(function(){ ???????//为盒子的位置获取X值 ???????leaderx = img.offsetLeft; ???????//获取步长 ???????var stepx = (targetx - leaderx)/10; ???????//二次处理步长 ???????stepx = stepx>0?Math.ceil(stepx):Math.floor(stepx); ???????leaderx =leaderx +stepx; ???????//赋值 ???????img.style.left = leaderx +"px"; ???????//为盒子的位置获取Y值 ???????leadery = img.offsetTop; ???????//获取步长 ???????var stepy = (targety - leadery)/10; ???????//二次获取步长 ???????stepy= stepy>0?Math.ceil(stepy):Math.floor(stepy); ???????leadery = leadery +stepy; ????????//赋值 ???????img.style.top = leadery + "px"; ???????//清除定时器 ???????if (Math.abs(targety - img.offsetTop)<=Math.abs(stepy)&&Math.abs(targetx-img.offsetLeft)<=Math.abs(stepx)) { ???????????img.style.top = targety + "px"; ???????????img.style.left = targetx +"px"; ???????????clearInterval(timer); ???????} ???},30);}</script></body></html>

JS之鼠标跟随

原文地址:https://www.cnblogs.com/creazybeauty/p/8177310.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved