鼠标小尾巴特效

BOM中的event子对象

浏览器的子对象event事件对象中
获取相对文档的距离 水平: event.clientX() 垂直: event.clientY()
获取相对屏幕的距离 水平: event.screenX() 垂直: event.screenY()
获取相对当前父级元素的距离 水平: event.offsetLeft() 垂直: event.offsetTop()

要获取鼠标的位置,即 水平: event.clientX() 垂直: event.clientY()

   var body = document.getElementsByTagName("body")[0];
   //给整个文档绑定一个鼠标移动事件
    document.onmousemove = function(event){
    // 设置兼容性
    	var event = event || window.event;
    //获取鼠标相对稳当的距离 x  y
    	var x = event.clientX;
    	var y = event.clientY;
    // 在页面创建一个标签,(这里是创建一个自定义标签abc )
        var abc = document.createElement("div");
    // 设置标签的样式
        abc.style.border = "3px solid  rgba(150,150,150,0.5)";
        abc.style.borderRadius = "50%";
    // 由于要设置动画,设置left 和top,因此,必须要设置定位
        abc.style.position = 'absolute'
    // 设置标签的初始位置,即鼠标的当前位置
    	abc.style.top = y + "px";
        abc.style.left = x + "px";
    // 将新建的标签加到页面的 body标签中
        body.appendChild(abc);
    // 设置溢出隐藏,为了防止鼠标在移动的过程中会触发上下滚动条
    //但是在文档中有超出的地方就会不显示,,所以,尽量绑定到页面的大盒子中,而别绑定到body上
        body.style.overflow = 'hidden';
    	var count = 0;
        var timer = setInterval(function(){
     // 设置定时器 ,让每一次生成的标签,在一定的时间内增加宽度和高度,以及 相应的透明度 
        	count += 5;
            abc.style.width = count +"px";
            abc.style.height = count +"px";
            abc.style.opacity = (80-count)/80 ;
               
        }, 30)
    // 设置延时定时器, 在一定的时间后清除上面的定时器,让创建的标签不再进行变化
        setTimeout(function(){
            clearInterval(timer);
   // 并且删除创建的标签 ,当鼠标每一次在移动后,都会清除上一次创建的标签
            body.removeChild(abc)
        },300)
    }

注:定时器的作用:
循环定时器:是在鼠标移动的同时来改变创建的一个标签的样式;
延时定时器:是在鼠标移动同时,清除上一次所创建的标签,同时清除上面的循环定时器

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值