zoukankan      html  css  js  c++  java
  • 用js实现多个目标移动

    用js实现多个目标移动,当鼠标移上去的时候改变宽度,鼠标移出去的时候变回原来宽度。

    <!DOCTYPE html>
    <html lang="en">
    <head>
    
        <meta charset="UTF-8">
        <title> 让多个目标移动 </title>
      <style>
    body{
    	margin: 0;
    	padding: 0;
    }
    
    ul,li{
    	list-style: none;
    }
    
    ul li{
    	 200px;
    	height: 100px;
    	background: orange;
    	margin-bottom: 20px;
    	border: 4px solid black;
    }
     </style>
    
    </head>
    <body>
    <ul>
    	<li></li>
    	<li></li>
    	<li></li>
    </ul>
    
    </body>
     <script>
     	var aLi = document.getElementsByTagName('li');
    
    for(var i = 0; i < aLi.length; i++){
    	aLi[i].timer = null;
    	aLi[i].addEventListener('mouseover', function () {
    		startMove(this,400); //宽变成400(该宽包含了border)
    	});
    	
    	aLi[i].addEventListener('mouseout', function () {
    		startMove(this,200);
    	});
    }
    
    function startMove(obj,iTarget){
    	clearInterval(obj.timer);
    
    	obj.timer = setInterval(function(){
    		var speed = (iTarget-parseInt(getStyle(obj,'width')))/8;
    		speed = speed > 0? Math.ceil(speed):Math.floor(speed);
    		if(obj.offsetWidth == iTarget){
    			clearInterval(obj.timer);
    		} else {
    			obj.style.width = parseInt(getStyle(obj,'width')) + speed + 'px';
    		}
    	},30); // 每30毫秒
    }
    //获取样式
    function getStyle(obj,attr){
    	if(obj.currentStyle){
    		return obj.currentStyle[attr];
    	} else {
    		return getComputedStyle(obj,false)[attr];
    	}
    }
    
     </script>   
    
    </html>
    
  • 相关阅读:
    socket.io建立长连接
    编译性语言、解释性语言和脚本语言的区别
    回调函数
    jquery文档处理
    css--Bootstrap框架
    css--960框架
    html基础
    真的理解闭包了吗,用闭包的时候应该注意什么?
    初识reactJs 相关
    简单方便的div垂直居中。
  • 原文地址:https://www.cnblogs.com/kid2333/p/7476524.html
Copyright © 2011-2022 走看看