JS_DOM事件之鼠标事件之随鼠标移动

导航栏背景随鼠标移动的案例

HTML:

 1 <div class="content">
 2         <nav class="navigation">
 3             <ul id="nav">
 4                 <li>首页新闻</li>
 5                 <li>公司简介</li>
 6                 <li>活动策划</li>
 7                 <li>企业文化</li>
 8                 <li>招聘信息</li>
 9                 <li>员工天地</li>
10                 <li>招聘信息</li>
11                 <li>项目企划</li>
12             </ul>
13             <div class="clearfix"></div>
14             <img src="./images/cloud.gif" class="moveObj" id="moveObj">
15         </nav>
16     </div>

CSS:

 1 <style>
 2 *{
 3     padding: 0;
 4     margin:0;
 5     box-sizing: border-box;
 6 }
 7 .clearfix{
 8     clear: both;
 9 }
10 .content{
11     background: #000;
12     width: 100%;
13     height: 630px;
14     padding-top: 100px;
15 }
16 .navigation{
17     width: 900px;
18     height: 45px;
19     margin: 0 auto;
20     border-radius:10px;
21     background:#fff url(‘../images/rss.png‘) no-repeat right center;
22     position: relative;
23 }
24 .navigation>ul{
25     list-style: none;
26     width: 666px;
27     height: 45px;
28     position: relative;
29     z-index: 10;
30 }
31
32 .navigation>ul>li{
33     float: left;
34     width: 83px;
35     height: 45px;
36     line-height: 45px;
37     text-align: center;
38     cursor: pointer;
39 }
40 .moveObj{
41     position: absolute;
42     left: 0;
43     top: 0;
44     z-index: 5;
45 }
46 </style>

common.js:

function objAnim(){

    var timer = null;

    //取消定时器
    this.stop = function(){
        clearInterval(timer);
    }

    //向左移动目标距离
    this.moveLeft = function(obj,targetDis,currentDis,time){
        var objTime = time || 100;
        var i = 1;

        var distance = targetDis - currentDis;
        var speed = distance/objTime;

        timer = setInterval(function(){
            if(i == objTime){
                obj.style.left = targetDis+"px";
                clearInterval(timer);
            }else{
                currentDis = currentDis + speed;
                obj.style.left = currentDis + "px";
                //obj.style.left = currentDis+speed*i*runSpeed+"px";
                i++;
            }
        },1)
    }

}

function.js:

 1 var animator = new objAnim();
 2
 3 //obj:移动的对象;moveLeft移动的实际距离;width移动的限制距离;maxIdx:移动的最大值
 4 function calcArguments(obj,moveLeft,width,maxIdx){
 5     var moveIdx = parseInt(moveLeft/width)<=maxIdx ? parseInt(moveLeft/width) : maxIdx;
 6     var currentDis = obj.offsetLeft;
 7     var targetDis = moveIdx*width;
 8
 9     animator.stop();
10     animator.moveLeft(obj,targetDis,currentDis);
11 }

script.js:

 1 var preTarget = null;
 2
 3 window.onload=function(){
 4     var nav = document.getElementById("nav");
 5     var moveObj = document.getElementById("moveObj");
 6     var moveObjWidth = moveObj.offsetWidth;
 7
 8     nav.onmouseover = function(event){
 9         var e = event || window.event;
10         //console.log(e.clientX+","+e.clientY)
11         var moveLeft = e.clientX - nav.parentNode.offsetLeft;
12         var maxIdx = nav.getElementsByTagName("li").length-1;
13
14         calcArguments(moveObj,moveLeft,moveObjWidth,maxIdx);
15     }
16 }

效果展示:

ul{
list-style: none;
width: 666px;
height: 45px;
position: relative;
z-index: 10;
padding:0 !important;
margin:0 !important;
}

.navigation1>ul>li{
list-style: none !important;
float: left;
width: 83px;
height: 45px;
line-height: 45px;
text-align: center;
cursor: pointer;
}
.moveObj{
position: absolute;
left: 0;
top: 0;
z-index: 5;
width:83px;
height: 42px;
background: pink;
border-radius:15px;
}
-->

  • 首页新闻
  • 公司简介
  • 活动策划
  • 企业文化
  • 招聘信息
  • 员工天地
  • 招聘信息
  • 项目企划

以上内容,如有错误请指出,不甚感激。

时间: 2024-08-26 10:39:56

JS_DOM事件之鼠标事件之随鼠标移动的相关文章

网站开发div在Jquery中的鼠标事件失去焦点

网站div在Jquery中的鼠标事件失去焦点,今天在做网站开发的时候遇到了个问题,就是我在用Jquery做导航的时候,用到了Jquery的鼠标事件mouseout,但问题出来了,我有两个div,A的div包含了B的div,本来我是想当鼠标移出A的div的时候隐藏div,可是当我的鼠标移到B的div在移出的时候也会触发jquery的隐藏事件,这让人很头痛. 在网上搜了下,找到了解决的法子,就是直接把mouseout换成了mouseleave就可以了,具体的问题请大家参考Jquery的开发文档吧

selenium python (三)鼠标事件

# -*- coding: utf-8 -*-#鼠标事件 #ActionChains类中包括:context_click()  右击:                        # double_click() 双击:                        # drag_and_drop() 拖动:                        # move_to_element()鼠标悬停在一个元素上:                        # click_and_hold

javascript基础——鼠标事件,系统对话框等

1.鼠标事件 (1).onclick:用户点击鼠标左键,以及当焦点在一个按钮上时,用户按Enter键时,发生onclick事件 (2).ondblclick:用户双击鼠标左键时,发生ondblclick事件 (3).onmousedown:用户按下任意鼠标按钮的时候,发生onmousedown事件 (4).onmouseout:当光标在一个元素上,并且用户将其移出元素边界时,发生onmouseout事件 (5).onmouseover:当光标在一个元素之外,并且用户将移动到该元素上时,发生onm

基于OpenGL编写一个简易的2D渲染框架-07 鼠标事件和键盘事件

这次为程序添加鼠标事件和键盘事件 当检测到鼠标事件和键盘事件的信息时,捕获其信息并将信息传送到需要信息的对象处理.为此,需要一个可以分派信息的对象,这个对象能够正确的把信息交到正确的对象. 实现思路: 要实现以上的功能,需要几个对象: 事件分派器:EventDispatcher,负责将 BaseEvent 分派给 EventListener 对象 事件监听器:EventListener,这只是一个接口类,接受 BaseEvent 的对象,真正的处理在它的子类中实现 事件:BaseEvent,储存

JQuery 鼠标事件简介

mouseover事件于用户把鼠标从一个元素移动到另外一个元素上时触发,mouseout事件于用户把鼠标移出一个元素时触发. 下面为你详细介绍下jquery中的鼠标事件: (1):click事件:click事件于用户在元素敲击鼠标左键,并在相同元素上松开左键时触发: $('p').click(function(){ alert('click function is running !'); }); (2):dblclick:dbclick事件在用户完成迅速连续的两次点击之后触发,双击的速度取决于

jQuery事件之鼠标事件

鼠标事件是在用户移动鼠标光标或者使用任意鼠标键点击时触发的.   (1):click事件:click事件于用户在元素敲击鼠标左键,并在相同元素上松开左键时触发.        $('p').click(function(){                alert('click function is running !');              });    (2):dbclick事件:dbclick事件在用户完成迅速连续的两次点击之后触发,双击的速度取决于操作系统的设置.一般双击事件

[javaSE] GUI(鼠标事件)

调用Button对象的addMouseListener方法,参数:MouseListener对象,这个类是个接口,需要实现以下方法 mouseClicked mousePressed mouseReleased mouseEntered mouseExited 找实现子类MouseAdapter,覆盖mouseClicked()方法,传递进参数:MouseEvent对象 调用MouseEvent对象的getClickCount()方法,得到点击次数 这个事件比action事件先执行,但是acti

JavaScript 鼠标事件

鼠标事件是Web开发中最常用的一类事件. DOM3级事件中定义了9个鼠标事件,分别如下: click.dbclick.mousedown.mouseenter.mouseleave.mousemove.mouseover.mouseout.mouseup. click:在用户单击鼠标按钮时,或者按下回车键时触发.这点对确保易访问性很重要,意味着onclick时间处理程序既可以通过键盘也可以通过鼠标执行.

JavaScript的事件对象_鼠标事件

鼠标事件是 Web 上面最常用的一类事件,毕竟鼠标还是最主要的定位设备.那么通过事件对象可以获取到鼠标按钮信息和屏幕坐标获取等. 一.鼠标按钮 只有在主鼠标按钮被单击时(常规一般是鼠标左键)才会触发 click 事件,因此检测按钮的信息并不是必要的. 但对于 mousedown 和 mouseup 事件来说,则在其 event 对象存在一个 button 属性,表示按下或释放按钮. <script type="text/javascript"> window.onload

Extjs 窗体居中,双重窗体弹出时清除父窗体的鼠标事件

这个是监控窗体缩放的事件 缩放中居中主要在 'beforeshow' 和 'destroy'两个事件里面监控 var EditTempWindow; Ext.EventManager.onWindowResize(function() { if (EditTempWindow) { EditTempWindow.center() } }); Ext.define("Define.Class.EditWindow", { id: 'RoomEditWin', xtype: 'window