Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.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 (js)使用jquery或类似工具平滑移动div x像素?_Javascript_Jquery_Move_Smooth - Fatal编程技术网

Javascript (js)使用jquery或类似工具平滑移动div x像素?

Javascript (js)使用jquery或类似工具平滑移动div x像素?,javascript,jquery,move,smooth,Javascript,Jquery,Move,Smooth,我有一张图片,当点击时应该将div向上移动约200px,我通过jquery设置它在不使用issue的情况下修改css,但它看起来不像我在其他网站上看到的那样“干净”或平滑 请原谅,我已经搜索了几个小时,但找不到执行此操作的函数/方法,我认为fadein/out可以执行此操作,但我相当确定它不能 谁能花点时间给我指出正确的方向吗?多谢各位 编辑:写完这篇文章后,我想也许我应该通过jquery快速增量地更改css,以模拟低fps的“滑动”。。希望有一个更简单的方法 EDIT2:目前正在使用这个,寻找

我有一张图片,当点击时应该将div向上移动约200px,我通过jquery设置它在不使用issue的情况下修改css,但它看起来不像我在其他网站上看到的那样“干净”或平滑

请原谅,我已经搜索了几个小时,但找不到执行此操作的函数/方法,我认为fadein/out可以执行此操作,但我相当确定它不能

谁能花点时间给我指出正确的方向吗?多谢各位

编辑:写完这篇文章后,我想也许我应该通过jquery快速增量地更改css,以模拟低fps的“滑动”。。希望有一个更简单的方法

EDIT2:目前正在使用这个,寻找一种方法来“顺利地”完成它,如果这样做有意义的话

$('#Table_Topbar').hide();
var pix = "px";
var fix = $('#Table_Middle1').css('top');
var fix2 = fix.replace('px','');
var fixsub = (fix2 - 200);  
var fixstring = fixsub.toString();
var fixconca = fixstring.concat(pix);
$('#Table_Middle1').css('top',fixconca);

如果您只想使用Javascript来实现这一点,那么您也可以简单地使用一个间隔,每xx毫秒更新一次css,对于60fps,您将使用16。这不是最好的办法

var i = parseInt($("#Table_Middle1").css("top"));
var animationLoop = setInterval(function() {  i += 10; $("#Table_Middle1").css("top",  i + "px"); }, 16);
更简单的方法是使用jQuery的动画api:。这是最跨浏览器友好的方式

$('#Table_Middle1").animate({top: "-=200px"}, 1000); // take 1 second to move up 200px
您还可以使用一个简单的类来完成同样的事情,并将JS简化为一个简单的类切换,这是最现代的方式

jQuery: 
$('#Table_Middle1").addClass("class-to-trigger-animation");

css:
#Table_Middle1 { top: 500px; transition: top 1s ease; } 
#Table_Middle1.class-to-trigger-animation { top: 300px }

如果你想要更复杂的动画,你可以考虑一个类似的库。

如果你想只用JavaScript来做这件事,你也可以简单地使用一个间隔来更新CSS每XX毫秒数,对于60fps,你会使用16。这不是最好的办法

var i = parseInt($("#Table_Middle1").css("top"));
var animationLoop = setInterval(function() {  i += 10; $("#Table_Middle1").css("top",  i + "px"); }, 16);
更简单的方法是使用jQuery的动画api:。这是最跨浏览器友好的方式

$('#Table_Middle1").animate({top: "-=200px"}, 1000); // take 1 second to move up 200px
您还可以使用一个简单的类来完成同样的事情,并将JS简化为一个简单的类切换,这是最现代的方式

jQuery: 
$('#Table_Middle1").addClass("class-to-trigger-animation");

css:
#Table_Middle1 { top: 500px; transition: top 1s ease; } 
#Table_Middle1.class-to-trigger-animation { top: 300px }

如果你想要更复杂的动画,你可以考虑一个类似的库。

你可以使用jsjQuery和CSS的组合,如

CSS:

jQuery:

$('.switch').click(function(){
    $(this).toggleClass('active');
});
在这里查看小提琴:


但是,您需要调整参数,这只是一个简单的示例。

您可以在这里使用js jQuery和CSS的组合,例如

CSS:

jQuery:

$('.switch').click(function(){
    $(this).toggleClass('active');
});
在这里查看小提琴:

您需要调整参数,但这只是一个简单的示例