鼠标跟随效果

.mouse-container{

background: #000;

width: 800px;

margin:20px auto;

}

table > tr > td {

color:transparent;

width: 40px;

height: 40px;

border: 1px solid #000;

}

.border{

border: 1px solid #fff;

background: #333;

}

.border-gray-top{

border: 1px solid #aaa;

border-top: 1px solid #000;

background: #222;

}

.border-gray-bottom{

border: 1px solid #aaa;

border-bottom: 1px solid #000;

background: #222;

}

.border-gray-left{

border: 1px solid #aaa;

border-left: 1px solid #000;

background: #222;

}

.border-gray-right{

border: 1px solid #aaa;

border-right: 1px solid #000;

background: #222;

}

.border-top-left{

border-top: 1px solid #666;

border-left: 1px solid #666;

}

.border-top-right{

border-top: 1px solid #666;

border-right: 1px solid #666;

}

.border-bottom-left{

border-bottom: 1px solid #666;

border-left: 1px solid #666;

}

.border-bottom-right{

border-bottom: 1px solid #666;

border-right: 1px solid #666;

}

const container = document.getElementsByClassName("mouse-container")[0];

const table = document.createElement("table");

for (let i = 0; i < 20; i++) {

const tr = document.createElement("tr");

for (let j = 0; j < 20; j++) {

const td = document.createElement("td");

td.classList.add(`${i}-${j}`);

td.innerHTML = `${i}-${j}`;

tr.appendChild(td);

td.addEventListener("mouseleave",(e)=>{

if(e.target.nodeName.toLowerCase()==="td"){

e.target.classList.remove("border");

const [xAxis,yAxis] = e.target.innerHTML.split("-");

if(xAxis-1>=0){

const topTarget = document.getElementsByClassName(`${xAxis-1}-${yAxis}`)[0];

topTarget.classList.remove("border-gray-top");

}

if(xAxis*1<19){

const bottomTarget = document.getElementsByClassName(`${xAxis*1+1}-${yAxis}`)[0];

bottomTarget.classList.remove("border-gray-bottom");

}

if(yAxis-1>=0){

const leftTarget = document.getElementsByClassName(`${xAxis}-${yAxis-1}`)[0];

leftTarget.classList.remove("border-gray-left");

}

if(yAxis*1<19){

const rightTarget = document.getElementsByClassName(`${xAxis}-${yAxis*1+1}`)[0];

rightTarget.classList.remove("border-gray-right");

}

if(xAxis-1>=0 && yAxis-1>=0){

const topLeftTarget = document.getElementsByClassName(`${xAxis-1}-${yAxis-1}`)[0];

topLeftTarget.classList.remove("border-bottom-right");

}

if(xAxis*1<19 && yAxis-1>=0){

const topLeftTarget = document.getElementsByClassName(`${xAxis*1+1}-${yAxis-1}`)[0];

topLeftTarget.classList.remove("border-top-right");

}

if(xAxis-1>=0 && yAxis*1<19){

const topLeftTarget = document.getElementsByClassName(`${xAxis-1}-${yAxis*1+1}`)[0];

topLeftTarget.classList.remove("border-bottom-left");

}

if(xAxis*1<19 && yAxis*1<19){

const bottomRightTarget = document.getElementsByClassName(`${xAxis*1+1}-${yAxis*1+1}`)[0];

bottomRightTarget.classList.remove("border-top-left");

}

}

})

}

table.appendChild(tr);

}

container.appendChild(table);

table.addEventListener("mousemove",(e)=>{

if(e.target.nodeName.toLowerCase()==="td"){

e.target.classList.add("border");

const [xAxis,yAxis] = e.target.innerHTML.split("-");

if(xAxis-1>=0){

const topTarget = document.getElementsByClassName(`${xAxis-1}-${yAxis}`)[0];

topTarget.classList.add("border-gray-top");

}

if(xAxis*1<19){

const bottomTarget = document.getElementsByClassName(`${xAxis*1+1}-${yAxis}`)[0];

bottomTarget.classList.add("border-gray-bottom");

}

if(yAxis-1>=0){

const leftTarget = document.getElementsByClassName(`${xAxis}-${yAxis-1}`)[0];

leftTarget.classList.add("border-gray-left");

}

if(yAxis*1<19){

const rightTarget = document.getElementsByClassName(`${xAxis}-${yAxis*1+1}`)[0];

rightTarget.classList.add("border-gray-right");

}

if(xAxis-1>=0 && yAxis-1>=0){

const topLeftTarget = document.getElementsByClassName(`${xAxis-1}-${yAxis-1}`)[0];

topLeftTarget.classList.add("border-bottom-right");

}

if(xAxis*1<19 && yAxis-1>=0){

const topLeftTarget = document.getElementsByClassName(`${xAxis*1+1}-${yAxis-1}`)[0];

topLeftTarget.classList.add("border-top-right");

}

if(xAxis-1>=0 && yAxis*1<19){

const topLeftTarget = document.getElementsByClassName(`${xAxis-1}-${yAxis*1+1}`)[0];

topLeftTarget.classList.add("border-bottom-left");

}

if(xAxis*1<19 && yAxis*1<19){

const bottomRightTarget = document.getElementsByClassName(`${xAxis*1+1}-${yAxis*1+1}`)[0];

bottomRightTarget.classList.add("border-top-left");

}

}

});

// container.innerHTML = "看看我在哪儿"

一键复制

编辑

Web IDE

原始数据

按行查看

历史

鼠标跟随 html,鼠标跟随效果.html相关推荐

  1. 鼠标跟随动画,粒子效果

    鼠标跟随动画,粒子效果 canvas动画,鼠标跟随 项目下载地址:项目包下载 实现逻辑: a.需要引入创建粒子背景的 JavaScript 库: particles.js b. 配置动画参数,鼠标跟随 ...

  2. 通过触摸屏幕/鼠标 图片跟随手指 加滑动效果

    <领导关怀版本 需求3> 一:图片本地加载,打字效果,循环播放 二:通过触摸屏幕/鼠标 滑动 三:跟随手指,滑动效果 版本系列(一):实现了读取本地图片,循环播放功能 版本系列(二):原来 ...

  3. html鼠标点击切换图片,js鼠标点击图片切换效果代码分享

    本文实例讲述了js鼠标点击图片切换效果.分享给大家供大家参考.具体如下: 实现原理很简单,其实是多张图片叠加起来,点击图片后依次赋予图片一个class,使其看起来在表面而已,点击图片,可以实现图片的不 ...

  4. android 小球效果,Android开发实现跟随手指的小球效果示例

    本文实例讲述了android开发实现跟随手指的小球效果.分享给大家供大家参考,具体如下: 配置drawview类用于绘制小球 public class drawview extends view { ...

  5. DW里面html鼠标点击特效,dw制作鼠标经过时图像放大鼠标离开图像回原形效果

    网页制作图片特效有很多种,其中鼠标经过图片,可以有图片变大或切换图片的效果,在一些网购平台上我们就可能会看到将鼠标放置在一个商品上时,商品的图片可能会变大或变成商品其他角度的图片了,这其实就是两个比较 ...

  6. [读码][js,css3]能感知鼠标方向的图片遮罩效果

    效果图: 无意间看到过去流行的一个效果:[能感知鼠标方向的图片遮罩效果] 近来不忙,就仔细的看了一看 看到后来发现,网上有好多版本,谁是原著者似乎已经无法考证. 读码就要读比较全面的,读像是原著的代码 ...

  7. JavaScript-鼠标事件(鼠标点击松开移动效果)

    鼠标和键盘事件是在页面操作中使用最频繁的操作,可以利用鼠标事件在页面中实现鼠标移动.单击时的特殊效果,也可以利用键盘来制作页面的快捷键等. 鼠标的单击事件 单击事件(onclick)是在鼠标单击时被触 ...

  8. css 侧栏跟随_简单代码实现智能侧边栏跟随固定浮动的效果

    很多网站博客都喜欢用"侧栏跟随"的效果,也就是随着滚动条的滚动,而跟着滑动或者固定的效果:感觉非常的人性化,一来可以弥补当一个页面很长,但侧边栏太短的时候的空白,二来可以合理利用空 ...

  9. css 侧栏跟随_如何实现博客的侧栏跟随(滚动条)效果

    现在许多web2.0风格的网站都喜欢用"侧栏跟随"的效果,就是当一个页面很长的时候,设定侧栏内容会跟随滚动条,这种效果适用于评论较多.内容较长的网站. 这种特效对提高网站浏览量.文 ...

  10. html怎么给图片加鼠标滑过效果,jquery给图片添加鼠标经过时的边框效果

    一哥们儿要给图片添加鼠标经过时的边框效果,可惜出发点错了,直接加在了IMG外的A标签上致使 鼠标经过时图片产生塌陷,实则应该将边框控制直接加在IMG标签上即可 错误代码如下:注意红色部分设置 (出发点 ...

最新文章

  1. Class 'PDO' not found 错误
  2. delphi 串口通信发送_STM32第五章串口通讯详解
  3. java并发核心知识体系精讲_JVM核心知识体系
  4. python等值面图平滑_离散点插值方法、等值线的绘制及平滑技巧
  5. ASP.NET数据库访问系列教程01-概述篇 创建数据访问层(下)
  6. Linux在超级计算机领域一统天下
  7. MongoDB基本用法
  8. java 托盘开发_基于java开发之系统托盘的应用
  9. linux系统启动报错:[contains a file system with errors, check forced]的解决方法参考【ZT】
  10. SAP License:系统退货处理流程
  11. 【7-4使用inception-v3做各种图像的识别】
  12. java 实体类重写排序,对自定义对象进行排序(C++/Java) | 学步园
  13. (转载) MTK之NVRAM研究[三]
  14. 机器学习- 吴恩达Andrew Ng Week8 知识总结 Dimensionality Reduction
  15. 笑得肚痛!程序猿的 46 张 GIF 搞笑图
  16. Backup Exec启动时,系统报“CLR20r3“错误
  17. 仿QQ音乐(HTML+CSS)
  18. Kettle详细使用教程
  19. Win10系统任务栏出现假死现象的解决办法
  20. python字典包含字典_Python字典教学

热门文章

  1. JQuery 动画滑动显示和隐藏方式 slideDown\slideUp\slideToggle
  2. Windows下Apache安装步骤(一看就会)
  3. 【一步一个脚印】从零开始搭建SSM框架-- 1.1 配置JDK
  4. Origin如何绘制三维离散点并拟合曲面?
  5. 写文章登录Nature子刊:基于深度学习预测家族性阿尔兹海默症患者临床前功能性脑老化
  6. 二叉树的锯齿形层序遍历
  7. 和pink老师学习CSS
  8. 三分钟了解Spring Cloud Gateway路由转发之自动路由
  9. 分割蛋糕c语言实验报告,蛋糕制作实验报告.doc
  10. 什么是i口碑,企业做好口碑营销有什么用?