我是新来的反应js。我试图通过单击箭头键旋转图像。有人帮我,也分享一些学习反应js留档。
提前感谢。
我的代码
.js
import React from 'react';
import Ballimg from '../Image/ImageMovement.gif'
import Style from '../Style/ImageComponentStyle.module.css'
class Ball extends React.Component{
constructor(props){
super(props);
this.handleKeyDown = this.handleKeyDown.bind(this)
this.state = {
imageDirection: Style.right
};
}
handleKeyDown(e){
if(e.KeyCode === 37){
this.setState({imageDirection : Style.left})
}
else if(e.KeyCode === 38){
this.setState({imageDirection : Style.up})
}
else if(e.KeyCode === 39){
this.setState({imageDirection : Style.right})
}
else if(e.KeyCode === 40){
this.setState({imageDirection : Style.down})
}
}
render(){
return(
<div>
<img src={Ballimg} alt="ball movement" className={this.state.imageDirection} onKeyDown={this.handleKeyDown}/>
</div>
);
}
}
export default Ball;
.module.css
.down {
transform: rotate(90deg);
}
.left {
transform: rotate(180deg);
}
.up {
transform: rotate(-90deg);
}
.right{
transform: rotate(0deg);
}
由于未使用公共类方法,因此可以按如下方式调用该方法:
onKeyDown={handleKeyDown}
绑定此
需要使用绑定此
的方法。因此,如果您使用onKeyDown={this.handleKeyDown}
,您必须像这样绑定:
this.handleKeyDown = this.handleKeyDown.bind(this) // inside constructor
或者,使用公共类方法:
handleKeyDown = (e) => {}
关于更多细节,我建议你阅读我的另一个答案。
首先,您有一个输入错误:
// Not e.KeyCode
e.keyCode === 37
然后,您可能希望为按键设置一个全局侦听器,或者该事件仅在元素聚焦时起作用:
window.addEventListener('keydown', e => {
//e.keyCode
});
完整示例:
const App = () => {
const [direction, setDirection] = useState(0);
useEffect(() => {
window.addEventListener('keydown', e => {
if (e.keyCode === 37) {
setDirection(180);
} else if (e.keyCode === 38) {
setDirection(-90);
} else if (e.keyCode === 39) {
setDirection(0);
} else if (e.keyCode === 40) {
setDirection(90);
}
});
}, []);
return (
<img
style={{ transform: `rotate(${direction}deg)` }}
alt="cat"
src={image}
/>
);
};
问题内容: 我有一个方法需要旋转,将其存储在新变量中,然后返回new 。这是我的尝试,图像似乎为空或什么。它只是不显示在屏幕上: 当我取出图像时,在屏幕上绘制的图像就很好,没有问题,但是当然没有旋转。 问题答案: 因此,基于此答案中的示例,您应该能够设计一种旋转方法,该方法可以将源图像旋转给定的度数,例如…
我有一个方法,它需要旋转,将其存储在一个新变量中,然后返回新的。这是我的尝试,图像似乎是空的什么的。它只是不显示在屏幕上: 当我取出时,图像在屏幕上绘制得很好,没有任何问题,但当然没有旋转。
我发现了一个非常有趣的问题。在拍摄相机照片后(我将设备保持在纵向模式,不旋转),给定的照片有时会旋转,但并不总是旋转。我知道,有些设备总是提供旋转的照片,但它可以使用exif或mediastore信息进行旋转。但在这种情况下,exif和mediastore表示方向为0,但图像是旋转的。最令人沮丧的是,这完全是随机发生的。代码非常简单: 有人见过这个问题吗?我在操作系统更新(4.1.1)后体验了Ga
在我的应用程序中,用户从相机捕获图像或从图库中选择图像,然后将其转换为pdf并上载到服务器,现在我的问题是,从相机捕获的图像在某些设备上旋转,我有代码尝试解决此问题,但它不起作用 任何建议或问题在哪里,没有错误代码或任何东西
问题内容: 我已经建立了一个具有单个文本输入的简单组件,并且在该列表的下方(使用语义ui)构建了一个组件。 现在,我想使用箭头键浏览列表。 首先,我必须选择第一个元素。但是,如何访问特定的列表元素? 其次,我将获取当前所选元素的信息并选择下一个元素。如何获取选择了哪个元素的信息? 选择将意味着将类添加到项目中,还是有更好的主意? 问题答案: 尝试这样的事情: 光标会跟踪您在列表中的位置,因此当用户
问题内容: 我需要能够单独旋转图像(在Java中)。到目前为止,我发现的唯一东西是g2d.drawImage(image,affinetransform,ImageObserver)。不幸的是,我需要在特定点绘制图像,并且没有一种方法带有参数1.分别旋转图像和2.允许我设置x和y。任何帮助表示赞赏 问题答案: 这就是你可以做到的。这段代码假设存在一个名为“ image”的缓冲图像(如你的评论所说)