Javascript JQuery:如何制作具有弯曲效果的3D操纵杆图像?

Javascript JQuery:如何制作具有弯曲效果的3D操纵杆图像?,javascript,jquery,css,Javascript,Jquery,Css,我正在制作一个应用程序,我需要一个3d操纵杆图像,这样用户可以在上面滑动,图像将朝着滑动方向弯曲 对于向下滑动或向上滑动事件,我应该提供什么css或动画效果使图像向下或向上移动 我不知道最好的办法。我正在尝试以下代码:- <div style="width:220px;height:220px;background-color:black;display:table-cell; vertical-align:middle; text-align:center" id="joy_div"&

我正在制作一个应用程序,我需要一个3d操纵杆图像,这样用户可以在上面滑动,图像将朝着滑动方向弯曲

对于向下滑动或向上滑动事件,我应该提供什么css或动画效果使图像向下或向上移动

我不知道最好的办法。我正在尝试以下代码:-

 <div style="width:220px;height:220px;background-color:black;display:table-cell; vertical-align:middle; text-align:center" id="joy_div">
        <img id="joystick" src="joystick.png" >
</div>

<script>
$("#joy_div").rotate({ 
    bind: 
    { 
        swipeleft : function() { 
            $("#joystick").rotate({animateTo:-50});
        },
        swiperight : function() { 
            $("#joystick").rotate({animateTo:50});
        },
        swipeup : function(){
            alert('up');
        },
        swipedown : function(){
            alert('down');
        },
        swipeend : function(){
            $("#joystick").rotate({animateTo:0});
        }
    }); 
</script>

$(“#joy_div”)。旋转({
绑定:
{ 
swipeleft:函数(){
$(“#操纵杆”)。旋转({animateTo:-50});
},
SwiperRight:函数(){
$(“#操纵杆”)。旋转({animateTo:50});
},
swipeup:function(){
警惕(“向上”);
},
swipedown:function(){
警惕(“下降”);
},
swipened:function(){
$(“#操纵杆”)。旋转({animateTo:0});
}
}); 

非常感谢您的指导。

我建议您使用CSS
transform
perspective
来完成此操作

在下面的示例中,我使用swipeLeft、SwiperRight、swipeUp和swipeDown事件的按钮演示了这一点

$(“.tilt”)。单击(函数(){
$(“#操纵杆”).removeAttr('class');
$(“#操纵杆”).addClass($(this.attr('id'));
});
#joy#u div{
透视图:500px;
}
钮扣{
利润率:10px0;
}
.左、.右、.下、.上、.重置{
转型:转型0.5s轻松;
变换原点:50%50%;
}
.左{
变换:旋转(-40度);
}
.对{
变换:旋转(40度);
}
.起来{
变换:rotateX(-40度);
}
.下来{
变换:旋转(40度);
}
.重置{
变换:rotateX(0)rotateY(0);
}

游泳池
泳镜
游泳
游泳池

重置
我建议您使用CSS
转换
透视
来执行此操作

在下面的示例中,我使用swipeLeft、SwiperRight、swipeUp和swipeDown事件的按钮演示了这一点

$(“.tilt”)。单击(函数(){
$(“#操纵杆”).removeAttr('class');
$(“#操纵杆”).addClass($(this.attr('id'));
});
#joy#u div{
透视图:500px;
}
钮扣{
利润率:10px0;
}
.左、.右、.下、.上、.重置{
转型:转型0.5s轻松;
变换原点:50%50%;
}
.左{
变换:旋转(-40度);
}
.对{
变换:旋转(40度);
}
.起来{
变换:rotateX(-40度);
}
.下来{
变换:旋转(40度);
}
.重置{
变换:rotateX(0)rotateY(0);
}

游泳池
泳镜
游泳
游泳池
重置类似这样的东西?(虽然这是一个非常粗糙的设计,并且没有完全实现)

$('#左')。单击(函数(){
$('.stick').removeClass(“右”).toggleClass(“左”);
});
$('#right')。单击(函数(){
$('.stick').removeClass(“左”).toggleClass(“右”);
});
.wrapper{
宽度:300px;
高度:300px;
背景:灰色;
}
.棍子{
高度:30px;
宽度:30px;
边界半径:50%;
背景:红色;
保证金:0自动;
位置:相对位置;
z指数:5;
}
.斯蒂克:之后{
内容:“;
位置:绝对位置;
高度:200px;
宽度:20px;
背景:红色;
底部:-180px;
左:15%;
z指数:2;
}
.乔伊{
高度:30px;
宽度:100%;
背景:暗射线;
边缘顶部:170px;
位置:相对位置;
z指数:20;
}
.左{
变换:旋转(-20度);
左:-50px;
}
.对{
变换:旋转(20度);
左:50px;
}

左边
对
类似的东西吗?(虽然这是一个非常粗糙的设计,并且没有完全实现)

$('#左')。单击(函数(){
$('.stick').removeClass(“右”).toggleClass(“左”);
});
$('#right')。单击(函数(){
$('.stick').removeClass(“左”).toggleClass(“右”);
});
.wrapper{
宽度:300px;
高度:300px;
背景:灰色;
}
.棍子{
高度:30px;
宽度:30px;
边界半径:50%;
背景:红色;
保证金:0自动;
位置:相对位置;
z指数:5;
}
.斯蒂克:之后{
内容:“;
位置:绝对位置;
高度:200px;
宽度:20px;
背景:红色;
底部:-180px;
左:15%;
z指数:2;
}
.乔伊{
高度:30px;
宽度:100%;
背景:暗射线;
边缘顶部:170px;
位置:相对位置;
z指数:20;
}
.左{
变换:旋转(-20度);
左:-50px;
}
.对{
变换:旋转(20度);
左:50px;
}

左边

你的问题是什么?对于swipedown或swipeup事件,我应该提供什么css或动画效果来使图像向下或向上移动?你的问题是什么?对于swipedown或swipeup事件,我应该提供什么css或动画效果来使图像向下或向上移动谢谢,我的代码能够做你正在做的事情不w、 我只想将我的图像向下和向上移动。@varun-好吧,如果你想要2D效果,你应该从标题中去掉“3D”。@varun:你说的“向下”和“向上”是什么意思?@jbutler483,我需要3D效果,我的“向下”和“向上”的意思与上面答案中的“向上滑动”和“向下滑动”相同到的链接很酷。+1:)谢谢,我的代码可以做你现在正在做的事情。我只想将我的图像上下移动。@varun-好吧,如果你想要2D效果,你应该从标题中去掉“3D”。@varun:你说的“下”和“上”是什么意思?@jbutler483,我需要3D效果和“下”的意思“向上”与上面答案中显示的相同,键为“swipeUp”和“swipeDown”到的链接很酷。+1:)嗨,我在我的phonegap应用程序中使用此代码。它在web和低于4.4的android版本上运行良好。在android 4.4和iphone上,这些属性都不工作。你知道为什么会发生这种情况吗。嗨,我在我的phonegap应用程序中使用此代码。它在web和低于4.4的android版本上运行良好。在android 4上在iphone上,这些属性不起作用。你知道为什么会发生这种情况吗。