<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>无标题页</title>
<style type="text/css">
*
{
margin:0px;
padding:0px;
}
ul
{
width:360px; position:absolute;
left:350px;
top:100px; }
ul li
{
list-style:none;
float:left;
margin:10px;
}
div
{
width:100px;
height:100px;
background:#4AA0EF;
z-index:1px; }
</style> <script src="../ajax/Move.js" type="text/javascript"></script> <script type="text/javascript">
window.onload = function(){
var oUl = document.getElementById("main"); var oLi = oUl.getElementsByTagName("li"); var mixZIndex= 2;
for(var i=0;i<oLi.length;i++)
{
//布局转换 (第一步)
oLi[i].style.left = oLi[i].offsetLeft+"px";
oLi[i].style.top = oLi[i].offsetTop +"px";
} for(var i=0;i<oLi.length;i++)
{
//将li绝对定位 (第二步)
oLi[i].style.position="absolute";
} //备注:
//第一步与第二步不能写在一个for循环之中
//不然li不能起到绝对定位作用效果 for(var i=0;i<oLi.length;i++)
{
var oDiv = oLi[i].getElementsByTagName("div")[0]; mixZIndex++;
oDiv.style.zIndex = mixZIndex;
oDiv.onmouseover = function(){
//alert(2);
move(this,{height:200,width:200,marginLeft:-50,marginTop:-50});
}; oDiv.onmouseout = function(){
move(this,{height:100,width:100,marginLeft:0,marginTop:0});
}; } }
</script>
</head> <body>
<ul id="main">
<li>
<div></div>
</li>
<li>
<div></div>
</li>
<li>
<div></div>
</li>
<li>
<div></div>
</li>
<li>
<div></div>
</li>
<li>
<div></div>
</li>
<li>
<div></div>
</li>
<li>
<div></div>
</li>
<li>
<div></div>
</li>
<li>
<div></div>
</li>
<li>
<div></div>
</li>
<li>
<div></div>
</li>
</ul>
</body>
</html>

move.js

//运动框架
//链式运动
function move(obj,json,fun)
{
//先关闭定时器
clearInterval(obj.timer); obj.timer = setInterval(function(){ //是否停止运行
var isStop = true; for(var attr in json)
{
//1、当前值
var current = 0;
//目标值
var target = json[attr];
//判断是否是透明度属性
if(attr=="opacity")
{
current = parseInt(parseFloat(getStyle(obj,attr))*100);
}
else
{
current = parseFloat(getStyle(obj,attr));
} //2、计算速度
var speed = (target-current)/6; //如果速度大于0 向上取整 如果速度小于0 向下取整
speed = speed>0 ? Math.ceil(speed) : Math.floor(speed); //计算运行结果
if(attr=="opacity")
{
//透明度兼容性
obj.style.filter="alpha(opacity:"+(current + speed)+")";
obj.style.opacity = (current + speed)/100;
}
else
{
//计算运动结果值
obj.style[attr] = current + speed +"px";
}
//判断是否所有属性都运动完成
if(current!=target)
{
isStop = false;
}
} //3、关闭定时器
//所有属性运动完成 就闭关定时器
if(isStop)
{
//关闭定时器
clearInterval(obj.timer);
//链式运动
if(fun)
{
fun();
}
} },30);
} //对象style属性值
function getStyle(obj,attr)
{
if(obj.currentStyle)
{
return obj.currentStyle[attr];
}
else
{
return getComputedStyle(obj,null)[attr];
}
}

js 布局转换问题的更多相关文章

  1. [Js]布局转换

    为什么要布局转换? 要这样的效果,单写css,只要给每个li浮动就行,不需要绝对定位.但是比如做一些效果(如鼠标移入图片变大),就需要改变位置了.直接给每个li在css上定好位置不方便,也不知道有几个 ...

  2. 【前端】Vue.js实现网格列表布局转换

    网格列表布局转换 实现效果: 实现代码及注释: <!DOCTYPE html> <html> <head> <title>布局转换</title& ...

  3. 布局转换:文档流->绝对定位

    布局转换:文档流->绝对定位(详见妙味JS高级教程,运动课程第6课20分钟起)比如一个DIV中有三张图片并排,个数不确定的布局.需要鼠标移上去图片从中心放大,只使用float:left布局在放大 ...

  4. javascript布局转换

    javascript布局转换是将原有的浮动布局通过JS里面的javascript属性 offsetLeft 和offsetTop默认值来给元素设置绝对定位. 原来的:缺点--我们想给网页中的图片添加拖 ...

  5. Js 日期转换函数(UTC时间转换及日期想加减)

    IOS上Js日期转换中new Date("yyyy-mm-dd")不能正常工作,必须使用new Date("yyyy/MM/dd"); 日期相加减: Date. ...

  6. js数值转换

    先来几个题吧: var num1 = Number("123blue");var num2 = Number("");var num3 = Number([]) ...

  7. JavaScript进阶(四)js字符串转换成数字的三种方法

    js字符串转换成数字的三种方法 在js读取文本框或者其它表单数据的时候获得的值是字符串类型的,例如两个文本框a和b,如果获得a的value值为11,b的value值为9 ,那么a.value要小于b. ...

  8. jq选择器(jq 与 js 互相转换),jq操作css样式 / 文本内容, jq操作类名,jq操作全局属性,jq获取盒子信息,jq获取位置信息

    jq选择器(jq 与 js 互相转换) // 获取所有的页面元素jq对象 $('css3选择器语法'); var $box = $(".box:nth-child(1)"); 获取 ...

  9. Js强制转换

    Js强制转换 ParseInt(a,b):整型 只能放字符串,b为基数.声明前面的数是几进制.因为只能放字符串,所以无论放什么都转换为字符串: 如果String以0x开头则为16进制的整数: ‘036 ...

随机推荐

  1. python自然语言处理函数库nltk从入门到精通

    1. 关于Python安装的补充 若在ubuntu系统中同时安装了Python2和python3,则输入python或python2命令打开python2.x版本的控制台:输入python3命令打开p ...

  2. delphi dbgrid 修改、更新、删除

    https://zhidao.baidu.com/question/580946797.html DELPHI 中,使用 dbgrid显示数据.窗体上放置三个按钮,caption分别为:修改.删除.更 ...

  3. C# PictureBox控件畫圖

    PictureBox的正方向: BitMap初始化: Bitmap bt = new Bitmap(Width,Height);      Graphics gdi = Graphics.FromIm ...

  4. css修改input表单默认样式重置与自定义大全

    链接地址: 伪元素表单控件默认样式重置与自定义大全 http://www.zhangxinxu.com/wordpress/?p=3381 Chrome 现在不支持通过伪元素修改 meter 元素样式 ...

  5. Code First 重复外键

    原因:在一个表中,我有如下字段 表名:orderInfo 列名:companySend,companyReceiver 先展示表结构,(手打了,见谅) public class OrderInfo { ...

  6. Java 8 的 Metaspace

    Java 8 的 Metaspace https://www.cnblogs.com/xrq730/p/8688203.html 被废弃的持久代 想起之前面试的时候有面试官问起过我一个问题:Java ...

  7. java强引用,软引用,弱引用,虚引用

    java强引用,软引用,弱引用,虚引用 原文:https://blog.csdn.net/liaodehong/article/details/52223354 用了Java怎么长时间一直不知道原来J ...

  8. hdu 2844 coins(多重背包 二进制拆分法)

    Problem Description Whuacmers use coins.They have coins of value A1,A2,A3...An Silverland dollar. On ...

  9. CF 468B Two Sets

    题意: 给定n个正整数与a,b两个集合,求一种方案使得这n个数恰好被分在这两个集合中且集合中无多余的数且若x在a中则A-x在a中,若x在b中则B-x在b中. 题意理解了我好半天... 解法1:并查集. ...

  10. eclipse --- 新建JSP页面默认模版设置

    设置 在eclipse中新建 jsp时是这样的: 有时候我们不想字符集是ISO_8859-1,想字符集是UTF-8,一个个修改会很麻烦,那么我们可以修改jsp模版的设置: window>Pref ...