Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何制作Div';s的高度变化较慢_Javascript_Css_Javascript Events - Fatal编程技术网

Javascript 如何制作Div';s的高度变化较慢

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

我想通过向下滚动按钮,从页面顶部缓慢单击,来显示一个Div。但当我用我现在拥有的东西去做的时候,它看起来很快,并没有真正的下滑。我做错了什么

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";
}