Javascript 如何制作Div';s的高度变化较慢
我想通过向下滚动按钮,从页面顶部缓慢单击,来显示一个Div。但当我用我现在拥有的东西去做的时候,它看起来很快,并没有真正的下滑。我做错了什么Javascript 如何制作Div';s的高度变化较慢,javascript,css,javascript-events,Javascript,Css,Javascript Events,我想通过向下滚动按钮,从页面顶部缓慢单击,来显示一个Div。但当我用我现在拥有的东西去做的时候,它看起来很快,并没有真正的下滑。我做错了什么 function showstuff(inquiryForm){ document.getElementById(inquiryForm).style.visibility="visible"; for (var i=0;i<300;i++) { document.getElementById(inquiryForm).sty
function showstuff(inquiryForm){
document.getElementById(inquiryForm).style.visibility="visible";
for (var i=0;i<300;i++)
{
document.getElementById(inquiryForm).style.height= i + "px";
}
}
函数showtuff(查询表单){
document.getElementById(inquiryForm).style.visibility=“visible”;
对于(var i=0;i您正在循环300个项目,并尝试使用getELementById查找元素,然后尝试设置所选项目的样式
我认为这会使过程变得非常缓慢和滞后。这类事情通常使用jquery处理,因为它包括各种动画功能,包括一个方便的简短形式,在这里很有用:
包含jquery库后,可以使用如下函数:
$(inquiryForm).slideDown( 500 );
其中,参数是效果的持续时间,单位为ms
像这样:
function showstuff(inquiryForm){
$(inquiryForm).slideDown( 500 );
}
以及setTimeout的使用
<div id="myDiv" style="width:10px;height:50px;background:#f00;"></div>
<button class="btn" onclick="start();">Start</button>
<button class="btn" onclick="stop();">Stop</button>
<button class="btn" onclick="reset();">Reset<button>
var timeout;
function start() {
var div = document.getElementById("myDiv");
var size = 10;
var func = function () {
timeout = setTimeout(func, 0);
div.style.width = size + "px";
if (size++ == 600) stop();
}
func(); // starts the process
}
function stop() {
clearInterval(timeout);
}
function reset() {
var div = document.getElementById("myDiv");
div.style.width = "10px";
}
开始
停止
重置
var超时;
函数start(){
var div=document.getElementById(“myDiv”);
变量大小=10;
var func=函数(){
超时=设置超时(func,0);
div.style.width=大小+像素;
如果(大小+==600)停止();
}
func();//启动进程
}
函数停止(){
清除间隔(超时);
}
函数重置(){
var div=document.getElementById(“myDiv”);
div.style.width=“10px”;
}
您需要使用setTimeout来延迟每个px增量var t=setTimeout(function(){document.getElementById(inquiryForm.style.height=i+“px”;},3000)我在页面上已经有了jquery,我用它来替换什么呢?您也可以用jquery直接将事件绑定到按钮,如:$('#myButton')。on('click',function(){$(“#myFormContainer”).slideDown(500);}
其中#myButton是按钮的选择器,#myFormContainer是要显示的div的选择器
<div id="myDiv" style="width:10px;height:50px;background:#f00;"></div>
<button class="btn" onclick="start();">Start</button>
<button class="btn" onclick="stop();">Stop</button>
<button class="btn" onclick="reset();">Reset<button>
var timeout;
function start() {
var div = document.getElementById("myDiv");
var size = 10;
var func = function () {
timeout = setTimeout(func, 0);
div.style.width = size + "px";
if (size++ == 600) stop();
}
func(); // starts the process
}
function stop() {
clearInterval(timeout);
}
function reset() {
var div = document.getElementById("myDiv");
div.style.width = "10px";
}