【问题标题】:How to change the position of the element dynamically in ReactJs?如何在 ReactJs 中动态改变元素的位置?
【发布时间】:2018-08-20 14:43:08
【问题描述】:

我正在使用 ReactJs。我想动态改变图像的位置。

我正在尝试设置here 描述的样式:

我的 sprite.js:

'use strict';
import '../res/my_css.css'

const React = require('react');
const ReactDOM = require('react-dom');

class Sprite extends React.Component {
  render() {
    var left = 5000 + 'px';
    var top = 5000 + 'px';
    var padding = 5000 + 'px';
    return (
        <div id="bird" style={{padding:padding, left: left, top:top}}/>
    )
  }
}

export default Sprite;
ReactDOM.render(
  <Sprite />,
  document.getElementById('sprite')
)

我的 CSS 包含:

#bird {
  background:url('../res/bird.png');
  background-repeat: no-repeat;
}

我看到了图片,但 style={{padding:padding, left: left, top:top}} 没有应用。

如果我查看 Chrome 中的源代码,我会看到样式 padding:5000px, left:5000px, top:5000px。但是我的图片在左上角。

如何在 ReactJs 中动态更改 div 元素(在我的例子中为图像)的位置?

【问题讨论】:

  • 你设置position: absolute;了吗? topleft 否则无效
  • @Hunter McMillen position: 'absolute' works,谢谢。

标签: javascript html css reactjs


【解决方案1】:

这样试试。你没有加入position:absolute

class Sprite extends React.Component {
      render() {
        var left = 5000 + 'px';
        var top = 5000 + 'px';
        var padding = 5000 + 'px';
        return (
            <div id="bird" style={{padding, left, top,position:'absolute'}}/>
        )
  }
}

【讨论】:

  • 这正是我所需要的。谢谢。
【解决方案2】:

像这样使用左上角添加位置

<div id="bird" style={{position: 'relative', padding, left, top}}/>

【讨论】:

  • 有效。虽然我不明白使用“padding, left, top”而不是“padding:padding, left: left, top:top,position”是如何工作的:)
  • 在 es6 中使用属性值简写,所以 "top: top" 的简写是 "top"
  • 是的,ES6。在一个对象中,如果键值对是相同的{ name: name },您可以像{ name } 一样提及它一次,或者按照答案中的做法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-11-17
  • 1970-01-01
  • 2020-03-19
  • 2018-10-22
  • 1970-01-01
  • 2012-03-30
  • 1970-01-01
相关资源
最近更新 更多