<html>
<head>
<style type="text/css">
* {
margin:0;
padding:0;
}
body {
margin:0;
text-align:center;
background:#f0f0f0;
}
#d1 {
position:absolute;
top:20px;
left:0;
width:100px;
height:60px;
border:1px solid #808;
}
#open1, #close1 {
cursor:pointer;
background:#ccf;
margin:5px;
}
#open1 {
display:block;
}
#close1 {
display:none;
}
</style>
</head>
<body>
<div id="d1">移动位置<span id="open1" onclick="fo1()">Open</span><span id="close1" onclick="fc1()">Close</span></div>
<script type="text/javascript">
var sl = 0; //初始left值
var el = 500; //结束left值
var p = 10; //缓冲变量
var t = 15; //时间变量
var d1 = document.getElementById('d1');
var open1 = document.getElementById('open1');
var close1 = document.getElementById('close1');
function fo1() {
var cl = parseInt(getStyle(d1,'left')); //当前left值
if (cl<el) {
d1.style.left = cl + Math.ceil((el-cl)/p) + 'px'; //当前值+缓冲增量
setTimeout('fo1()', t);
} else {
d1.style.left = el + 'px';
open1.style.display = 'none';
close1.style.display = 'block';
}
}
function fc1() {
var cl = parseInt(getStyle(d1,'left')); //当前left值
if (cl>sl) {
d1.style.left = cl - Math.ceil((cl-sl)/p) + 'px'; //当前值-缓冲增量
setTimeout('fc1()', t);
} else {
d1.style.left = sl + 'px';
open1.style.display = 'block';
close1.style.display = 'none';
}
}
function getStyle( elem, name ) {
if (elem.style[name]) { return elem.style[name]; }
else if (elem.currentStyle) { return elem.currentStyle[name]; }
else if (document.defaultView && document.defaultView.getComputedStyle) {
name = name.replace(/([A-Z])/g,"-$1");
name = name.toLowerCase();
var s = document.defaultView.getComputedStyle(elem,"");
return s && s.getPropertyValue(name);
}
else { return null; }
}
</script>
</body>
</html>它现在是用 fo1() 和 fc1() 两个动作来实现向右移动和归位, 这样就需要两个 onclick 的对象, 很麻烦, 不知道有没有办法改成一个动作, 点击一次是向右移动, 再点击一次是归位, 十分感谢!
<head>
<style type="text/css">
* {
margin:0;
padding:0;
}
body {
margin:0;
text-align:center;
background:#f0f0f0;
}
#d1 {
position:absolute;
top:20px;
left:0;
width:100px;
height:60px;
border:1px solid #808;
}
#open1, #close1 {
cursor:pointer;
background:#ccf;
margin:5px;
}
#open1 {
display:block;
}
#close1 {
display:none;
}
</style>
</head>
<body>
<div id="d1">移动位置<span id="open1" onclick="fo1()">Open</span><span id="close1" onclick="fc1()">Close</span></div>
<script type="text/javascript">
var sl = 0; //初始left值
var el = 500; //结束left值
var p = 10; //缓冲变量
var t = 15; //时间变量
var d1 = document.getElementById('d1');
var open1 = document.getElementById('open1');
var close1 = document.getElementById('close1');
function fo1() {
var cl = parseInt(getStyle(d1,'left')); //当前left值
if (cl<el) {
d1.style.left = cl + Math.ceil((el-cl)/p) + 'px'; //当前值+缓冲增量
setTimeout('fo1()', t);
} else {
d1.style.left = el + 'px';
open1.style.display = 'none';
close1.style.display = 'block';
}
}
function fc1() {
var cl = parseInt(getStyle(d1,'left')); //当前left值
if (cl>sl) {
d1.style.left = cl - Math.ceil((cl-sl)/p) + 'px'; //当前值-缓冲增量
setTimeout('fc1()', t);
} else {
d1.style.left = sl + 'px';
open1.style.display = 'block';
close1.style.display = 'none';
}
}
function getStyle( elem, name ) {
if (elem.style[name]) { return elem.style[name]; }
else if (elem.currentStyle) { return elem.currentStyle[name]; }
else if (document.defaultView && document.defaultView.getComputedStyle) {
name = name.replace(/([A-Z])/g,"-$1");
name = name.toLowerCase();
var s = document.defaultView.getComputedStyle(elem,"");
return s && s.getPropertyValue(name);
}
else { return null; }
}
</script>
</body>
</html>它现在是用 fo1() 和 fc1() 两个动作来实现向右移动和归位, 这样就需要两个 onclick 的对象, 很麻烦, 不知道有没有办法改成一个动作, 点击一次是向右移动, 再点击一次是归位, 十分感谢!
解决方案 »
- 哪位老大知道jquery是怎么遍历元素的?
- 求jquery easyui 相关案例。
- 谁能给解释下 这段代码 ?加粗的地方 一定要细 谢谢
- ext TabPanel里面加GridPanel的问题 急!!!
- 【【高分求--Firefox中动态创建canvas画线???】】
- 在body插入对象后,无法进行撤消活动
- 关于javascript的变量生存范围:如果函数的参数与在函数外的一个变量同名?
- 我在写javascript函数的时候,用try 和 catch 时 怎么老是提示出错啊??
- 请问关于在JAVASCRIPT中判断是否是对象的函数?
- 谢谢指点——使分帧的主窗体最大化问题
- 纵向和横向都只能选择一个
- 各位高手,请问有谁知道比较好用的中文的JAVASCRIPT编辑工具
<html>
<head>
<style type="text/css">
* {
margin:0;
padding:0;
}
body {
margin:0;
text-align:center;
background:#f0f0f0;
}
#d1 {
position:absolute;
top:20px;
left:0;
width:100px;
height:60px;
border:1px solid #808;
}
#pad {
cursor:pointer;
background:#ccf;
margin:5px;
}
</style>
</head>
<body>
<div id="d1">移动位置<span id="pad" onclick="fo1()">Open</span></div>
<script type="text/javascript" defer>
var sl = 0; //初始left值
var el = 500; //结束left值
var p = 10; //缓冲变量
var t = 15; //时间变量
var d1 = document.getElementById('d1');
var pad = document.getElementById("pad");
var b = true;
var tid = null;
function fo1() {
if(tid!=null) {clearTimeout(tid);tid=null}
var cl = parseInt(getStyle(d1,'left'));
var str, ep, po;
if(b){str="Close";ep=cl<el;po=el}
else {str="Open";ep=cl>sl;po=sl}
if (ep) {
if(b) d1.style.left = cl + Math.ceil(Math.abs(po-cl)/p) + 'px'; //当前值+缓冲增量
else d1.style.left = cl - Math.ceil(Math.abs(po-cl)/p) + 'px'; //当前值-缓冲增量
tid = setTimeout('fo1()', t);
} else {
d1.style.left = po + 'px';
pad.innerHTML = str
b = !b;
}
}
function getStyle( elem, name ) {
if (elem.style[name]) { return elem.style[name]; }
else if (elem.currentStyle) { return elem.currentStyle[name]; }
else if (document.defaultView && document.defaultView.getComputedStyle) {
name = name.replace(/([A-Z])/g,"-$1");
name = name.toLowerCase();
var s = document.defaultView.getComputedStyle(elem,"");
return s && s.getPropertyValue(name);
}
else { return null; }
}
</script>
</body>
</html>
<head>
<style type="text/css">
* {
margin:0;
padding:0;
}
body {
margin:0;
text-align:center;
background:#f0f0f0;
}
#d1 {
position:absolute;
top:20px;
left:0;
width:100px;
height:60px;
border:1px solid #808;
}
.button {
cursor:pointer;
background:#ccf;
margin:5px;
}
</style>
</head>
<body>
<div id="d1">移动位置<span onclick="func()" class="button">click</span></div>
<script type="text/javascript">
var origin = true;
var sl = 0; //初始left值
var el = 500; //结束left值
var p = 10; //缓冲变量
var t = 15; //时间变量
var d1 = document.getElementById('d1');
function func(){
if(origin){
var cl = parseInt(getStyle(d1,'left')); //当前left值
if (cl<el) {
d1.style.left = cl + Math.ceil((el-cl)/p) + 'px'; //当前值+缓冲增量
setTimeout('func()', t);
} else {
d1.style.left = el + 'px';
origin = false;
}
}else{
var cl = parseInt(getStyle(d1,'left')); //当前left值
if (cl>sl) {
d1.style.left = cl - Math.ceil((cl-sl)/p) + 'px'; //当前值-缓冲增量
setTimeout('func()', t);
} else {
d1.style.left = sl + 'px';
origin = true;
}
}
}
function getStyle( elem, name ) {
if (elem.style[name]) { return elem.style[name]; }
else if (elem.currentStyle) { return elem.currentStyle[name]; }
else if (document.defaultView && document.defaultView.getComputedStyle) {
name = name.replace(/([A-Z])/g,"-$1");
name = name.toLowerCase();
var s = document.defaultView.getComputedStyle(elem,"");
return s && s.getPropertyValue(name);
}
else { return null; }
}
</script>
</body>
</html>
<head>
<style type="text/css">
* {
margin:0;
padding:0;
}
body {
margin:0;
text-align:center;
background:#f0f0f0;
}
#d1 {
position:absolute;
top:20px;
left:0;
width:100px;
height:60px;
border:1px solid #808;
}
#open1, #close1 {
cursor:pointer;
background:#ccf;
margin:5px;
}
#open1 {
display:block;
}
#close1 {
display:none;
}
</style>
</head>
<body>
<div id="d1">移动位置<span id="open1" onclick="fo1()">Open</span><span id="close1" onclick="fo1()">Close</span></div>
<script type="text/javascript">
var sl = 0; //初始left值
var el = 500; //结束left值
var p = 10; //缓冲变量
var t = 15; //时间变量
var d1 = document.getElementById('d1');
d1["moved"]=false;
var open1 = document.getElementById('open1');
var close1 = document.getElementById('close1');
function fo1() {
var cl = parseInt(getStyle(d1,'left')); //当前left值
if ((cl==el&&!d1["moved"])||(cl==sl&&d1["moved"])) {
d1.style.left = (d1["moved"]?sl:el) + 'px';
open1.style.display = 'none';
close1.style.display = 'block';
d1["moved"]=!d1["moved"] }else {
d1.style.left = cl + (d1["moved"]?-Math.ceil((cl-sl)/p):Math.ceil((el-cl)/p)) + 'px'; //当前值+缓冲增量
setTimeout('fo1()', t);
}
}
function getStyle( elem, name ) {
if (elem.style[name]) { return elem.style[name]; }
else if (elem.currentStyle) { return elem.currentStyle[name]; }
else if (document.defaultView && document.defaultView.getComputedStyle) {
name = name.replace(/([A-Z])/g,"-$1");
name = name.toLowerCase();
var s = document.defaultView.getComputedStyle(elem,"");
return s && s.getPropertyValue(name);
}
else { return null; }
}
</script>
</body>
</html>