js 布局转换问题
<!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 布局转换问题的更多相关文章
- [Js]布局转换
为什么要布局转换? 要这样的效果,单写css,只要给每个li浮动就行,不需要绝对定位.但是比如做一些效果(如鼠标移入图片变大),就需要改变位置了.直接给每个li在css上定好位置不方便,也不知道有几个 ...
- 【前端】Vue.js实现网格列表布局转换
网格列表布局转换 实现效果: 实现代码及注释: <!DOCTYPE html> <html> <head> <title>布局转换</title& ...
- 布局转换:文档流->绝对定位
布局转换:文档流->绝对定位(详见妙味JS高级教程,运动课程第6课20分钟起)比如一个DIV中有三张图片并排,个数不确定的布局.需要鼠标移上去图片从中心放大,只使用float:left布局在放大 ...
- javascript布局转换
javascript布局转换是将原有的浮动布局通过JS里面的javascript属性 offsetLeft 和offsetTop默认值来给元素设置绝对定位. 原来的:缺点--我们想给网页中的图片添加拖 ...
- Js 日期转换函数(UTC时间转换及日期想加减)
IOS上Js日期转换中new Date("yyyy-mm-dd")不能正常工作,必须使用new Date("yyyy/MM/dd"); 日期相加减: Date. ...
- js数值转换
先来几个题吧: var num1 = Number("123blue");var num2 = Number("");var num3 = Number([]) ...
- JavaScript进阶(四)js字符串转换成数字的三种方法
js字符串转换成数字的三种方法 在js读取文本框或者其它表单数据的时候获得的值是字符串类型的,例如两个文本框a和b,如果获得a的value值为11,b的value值为9 ,那么a.value要小于b. ...
- jq选择器(jq 与 js 互相转换),jq操作css样式 / 文本内容, jq操作类名,jq操作全局属性,jq获取盒子信息,jq获取位置信息
jq选择器(jq 与 js 互相转换) // 获取所有的页面元素jq对象 $('css3选择器语法'); var $box = $(".box:nth-child(1)"); 获取 ...
- Js强制转换
Js强制转换 ParseInt(a,b):整型 只能放字符串,b为基数.声明前面的数是几进制.因为只能放字符串,所以无论放什么都转换为字符串: 如果String以0x开头则为16进制的整数: ‘036 ...
随机推荐
- 浅谈cpu.idle和cpu.load
1.概述 大家经常对一个系统的容量进行评估时,会参考cpu.idle和cpu.load指标,但是这两个指标到底在什么区间,表示系统是正常或者异常呢,业内有不同的说法.因此本文搜集一些资料,并对一个系统 ...
- 《spark快速大数据分析》
第一 概论 1.spark的特点 适用多种不同分布式平台的场景,包括批处理,迭代算法,交互式查询,流处理: spark提供了python,scale,java等接口 2.spark的组件 spark的 ...
- VS2008中英文转换
设置Visual Studio的语言: 工具=>选项=>环境=>区域设置=>语言 如图: 对于英文不好的朋友还是挺好用的
- xhtml 意義
xhtml是html和xml的結合體. xhtml包含所有xml和html4.0結合的部分. xml是描述語言,html是顯示語言.二者結合可以產生形式良好的文檔. 不僅可以適用與電腦瀏覽器,也可以適 ...
- jdk1.8 HashMap的扩容resize()方法详解
/** * Initializes or doubles table size. If null, allocates in * accord with initial capacity target ...
- BZOJ1552[Cerc2007]robotic sort&BZOJ3506[Cqoi2014]排序机械臂——非旋转treap
题目描述 输入 输入共两行,第一行为一个整数N,N表示物品的个数,1<=N<=100000. 第二行为N个用空格隔开的正整数,表示N个物品最初排列的编号. 输出 输出共一行,N个用空格隔开 ...
- BZOJ4386[POI2015]Wycieczki——矩阵乘法+倍增
题目描述 给定一张n个点m条边的带权有向图,每条边的边权只可能是1,2,3中的一种.将所有可能的路径按路径长度排序,请输出第k小的路径的长度,注意路径不一定是简单路径,即可以重复走同一个点. 输入 第 ...
- BZOJ1266 AHOI2006上学路线(最短路+最小割)
求出最短路后找出可能在最短路上的边,显然割完边后我们需要让图中这样的边无法构成1到n的路径,最小割即可,非常板子. #include<iostream> #include<cstdi ...
- hibernate 中文文档
转载:http://blog.csdn.net/kevon_sun/article/details/42850387 Hibernate Annotations 参考文档 3.2.0 CR1 目录 前 ...
- cygwin jdk11u
cygwin jdk11u 安装 Cygwin64 下载地址 https://cygwin.com/setup-x86_64.exe Cygwin 国内源 中科大镜像源 http://mirro ...