js实现图片旋转效果

JavaScript07

js实现图片旋转效果,第1张

1、首先准备一个HTML文档,文档中准备好两个图片,接下来会对这两个图片进行旋转。

2、然后对HTML中的内容定义一些样式,如下图所示,主要是标题以及ul的样式。

3、接下来就给图片所在的li定义宽高,如下图所示。

4、然后给图片设置过渡效果,过渡使用transition属性,如下图所示。

5、当鼠标悬停在图片上时,通过rotate给其设置变形,如下图所示,正数代表的是顺时针,负数代表的是逆时针。

6、最后运行程序,会看到如下图所示的效果,鼠标放在图片上会顺时针或者逆时针旋转。

现在我们以这个苹果的图片作为例子

我将演示代码写在这个页面网页链接,下面解释其用法。

页面结构如图

javascript代码如下

$(function() {

var r = 0

$('img').click(function() {

r += 90

$(this).css('transform', 'rotate(' + r + 'deg)')

})

})

核心思路是控制图片的这个css属性:

   transform: rotate(360deg)

其中360deg就是360度,点一次旋转90度

three.js包含了很多相机控制器,通过旋转相机可以达到同样的旋转效果。

但是当我们需要固定场景背景,固定固定摄像机的时候。我们只能去移动物体了。Three.js提供了

TransformControls.js控件,它可以控制物体的旋转、缩放、平移,但是使用起来并不方便。

这个时候就需要自己动手写控制器了。

原理很简单:获取鼠标(手势)点击的位置,以及鼠标拖动的距离。

把移动的方向和距离作为参数传递给物体。然后在循环中改变物体的属性来控制物体。

将要转动的物体放在一个组中,改变该组就可以。

这里获取的是X轴方向的鼠标移动的值。然后绕Y轴旋转。也可以添加其他的方向的旋转事件。

也可以添加一个功能,点击立方体之上才有效果。再说吧。