这里有一些基本的JS,我想要滑出而不是只是出现(看起来很奇怪)
我尝试了一些东西,但是无法管理它,任何想法?接下来是Jsfiddle所遵循的代码:
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<style>
body{margin:0;}
#foo{min-width:400px; height:100%; background-color:#9C0; display:none; position:absolute; right:0px; top:0px;}
</style>
<body>
<a href="#" onclick="toggle_visibility('foo');">Click here to toggle visibility of element #foo</a>
<div id="foo" >
</div>
<script type="text/javascript">
<!--
function toggle_visibility(id) {
var e = document.getElementById(id);
if(e.style.display == 'block')
e.style.display = 'none';
else
e.style.display = 'block';
}
//-->
</script>
</body>
</html>
答案 0 :(得分:5)
我使用VanillaJS更新你的小提琴as you can see here它完美地运作
document.getElementById('bar').onclick = (function()
{
var that, interval, step = 20,
id = document.getElementById('foo'),
handler = function()
{
that = that || this;
that.onclick = null;
id = document.getElementById('foo');
interval =setInterval (function()
{
id.style.right = (parseInt(id.style.right, 10) + step)+ 'px';
if (id.style.right === '0px' || id.style.right === '-400px')
{
that.onclick = handler;
clearInterval(interval);
if (id.style.right === '-400px')
{
id.style.display = 'none';
}
step *= -1;
}
else
{
id.style.display = 'block';
}
},100);
};
return handler;
}());
代码说明:
handler
是实际的事件处理程序,它将其上下文(被点击的元素)分配给that
,因此我们可以在间隔回调中引用它并取消绑定处理程序step
像素(将此值设置为您喜欢的任何值)。 此间隔序列设置为每100毫秒发生一次,这有点不稳定,将step *= -1
的值降低到10,并将间隔设置为set
以使事情顺利进行
答案 1 :(得分:1)
如果我理解正确的话,请使用jQuery进行滑动效果。
<强> JS:强>
$("a").on('click', function() {
$("#foo").slideToggle();
});
答案 2 :(得分:-1)
我已经更新了你使用jQuery的小提琴; http://jsfiddle.net/wRWHw/2/
function toggle_visibility(id) {
$("#" + id).slideToggle("slow");
}