Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.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旋转_Javascript - Fatal编程技术网

纯JavaScript旋转

纯JavaScript旋转,javascript,Javascript,我想像小提琴一样旋转一个物体: 但是,我的项目中没有JQuery库 var angle = 0; $(document).ready(function () { $('#rotate').click(function () { angle += 90; $('#div1').animate({ rotate: angle }, { step: function (now, fx) {

我想像小提琴一样旋转一个物体: 但是,我的项目中没有JQuery库

 var angle = 0;
    $(document).ready(function () {
        $('#rotate').click(function () {
            angle += 90;
            $('#div1').animate({ rotate: angle }, {
                step: function (now, fx) {
                    $(this).css('-webkit-transform', 'rotate(' + now + 'deg)');
                    $(this).css('-moz-transform', 'rotate(' + now + 'deg)');
                    $(this).css('transform', 'rotate(' + now + 'deg)');
                },
                duration: 3000
            }, 'linear');
        });
    });
这在纯JavaScript中可能吗


谢谢

基于Javascript的简单解决方案如下:

var obj = document.getElementById("div1");
var total = 100;
var current = 0;

setInterval(function(){ 

 if (current < total) {
      current += 1;
        obj.style.transform = 'rotate('+current+'deg)';
 }
}, 1);
var obj=document.getElementById(“div1”);
var总计=100;
无功电流=0;
setInterval(函数(){
如果(电流<总电流){
电流+=1;
obj.style.transform='旋转('+当前+'deg');
}
}, 1);

这只是一个例子。您肯定可以进一步改进此代码。正如Mohammad所提到的,您也可以使用基于CSS3的动画。

基于Javascript的简单解决方案如下:

var obj = document.getElementById("div1");
var total = 100;
var current = 0;

setInterval(function(){ 

 if (current < total) {
      current += 1;
        obj.style.transform = 'rotate('+current+'deg)';
 }
}, 1);
var obj=document.getElementById(“div1”);
var总计=100;
无功电流=0;
setInterval(函数(){
如果(电流<总电流){
电流+=1;
obj.style.transform='旋转('+当前+'deg');
}
}, 1);

这只是一个例子。您肯定可以进一步改进此代码。正如Mohammad所提到的,您还可以使用基于CSS3的动画。

您可以在您所使用的元素中添加“速率”和“初始旋转位置” 要旋转,只需使用闭包自动返回给定的旋转增加/减少率:

var division=document.getElementById("rotdiv");

function rotElem(startpos,rate){
  return function(mult){ 
  return division.style="transform:rotate("+ startpos+ mult*rate++ +"deg)";};
}
var rotelem = rotElem(0,1);
var atspeedof = setInterval(rotelem.bind(null),1000,10);
rotElem(0,1)在开始旋转之前,定义元素的可选开始位置“0”,并通过闭合返回自增加的变化“单位”

setInterval(rotelem.bind(null),1000,10)您可以调用setInterval以每秒运行闭包,并将值“10”作为速率的倍增。在setInterval时间之后更改最右边的参数,会增加或减少旋转

var division=document.getElementById(“rotdiv”);
功能rotElem(启动、速率){
返回函数(mult){
return division.style=“transform:rotate”(+startpos+mult*rate++“deg)”;
};
}
var-rotelem=rotelem(0,1);
var-atspeedof=setInterval(rotelm.bind(null),500,10)
#rotdiv{
位置:相对位置;
保证金:自动;
顶部:50px;
宽度:80px;
高度:80px;
背景颜色:灰色;
}

您可以将“速率”和“初始旋转位置”添加到所需的元件中 要旋转,只需使用闭包自动返回给定的旋转增加/减少率:

var division=document.getElementById("rotdiv");

function rotElem(startpos,rate){
  return function(mult){ 
  return division.style="transform:rotate("+ startpos+ mult*rate++ +"deg)";};
}
var rotelem = rotElem(0,1);
var atspeedof = setInterval(rotelem.bind(null),1000,10);
rotElem(0,1)在开始旋转之前,定义元素的可选开始位置“0”,并通过闭合返回自增加的变化“单位”

setInterval(rotelem.bind(null),1000,10)您可以调用setInterval以每秒运行闭包,并将值“10”作为速率的倍增。在setInterval时间之后更改最右边的参数,会增加或减少旋转

var division=document.getElementById(“rotdiv”);
功能rotElem(启动、速率){
返回函数(mult){
return division.style=“transform:rotate”(+startpos+mult*rate++“deg)”;
};
}
var-rotelem=rotelem(0,1);
var-atspeedof=setInterval(rotelm.bind(null),500,10)
#rotdiv{
位置:相对位置;
保证金:自动;
顶部:50px;
宽度:80px;
高度:80px;
背景颜色:灰色;
}


是的,这是可能的。你可以用CSS3动画来做。是的,这是可能的。你可以用CSS3动画来做。