当我选择它时,我需要图片周围的边框。因此,如果我有6张照片并选择3张,我希望在这些图像周围突出显示边框。问题是,我该怎么做?编辑:我正在使用反应这个困境。反应:在所选图像周围添加突出显示的边框
0
A
回答
0
这取决于你想如何在应用中跟踪状态.. here是跟踪父组件的状态的例子。基本上你有一个单独的父App组件,它跟踪每个图像的状态,然后是一个Image组件,该组件可以使用或不使用边框来呈现,这取决于作为道具传递的App状态片段。请参阅代码以了解我的意思。另一种方法是让活动状态存在于每个图像组件本身内。
该代码有一些有趣的功能,主要是由于利用ES6的几个方面更加简洁,以及React's immutability helper帮助以不可变的方式更新状态数组,以及lodash的times方法来协助创建我们的初始状态数组。
码(部分缩进的得到了来自的jsfiddle拷贝有点糊涂..):
function getImage() {
return { active: false };
}
class App extends React.Component {
constructor(props) {
super(props);
this.state = { images: _.times(6, getImage) };
this.clickImage = this.clickImage.bind(this);
}
clickImage(ix) {
const images = React.addons.update(this.state.images, {
[ix]: { $apply: x => ({ active: !x.active}) }
})
this.setState({ images });
}
render() {
const { images } = this.state;
return (
<div>
{ images.map((image, ix) =>
<Image
key={ix}
ix={ix}
active={image.active}
clickImage={this.clickImage} />) }
</div>
);
}
};
class Image extends React.Component {
render() {
const { ix, clickImage, active } = this.props;
const style = active ? { border: '1px solid #021a40' } : {};
return <img
style={style}
src={`https://robohash.org/${ix}`}
onClick={() => clickImage(ix)}/>;
}
}
ReactDOM.render(
<App />,
document.getElementById('container')
);
然后是什么样子:
0
只需为点击添加一个“选定”类的事件处理程序,然后将该选定类设置为在CSS中具有边框。
.selectableImg {
border: solid 1px transparent;
margin: 10px;
}
.selectableImg.selected {
border: solid 1px blue;
}
<img class="selectableImg" src="https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png"/>
<img class="selectableImg" src="https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png"/>
<img class="selectableImg" src="https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png"/>
<img class="selectableImg" src="https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png"/>
<script>
var images = document.querySelectorAll(".selectableImg");
images.forEach(function(i) {i.addEventListener("click", function(event) {
i.classList.toggle("selected");
})});
</script>
相关问题
- 1. 选择性地在图像视图周围添加边框
- 2. 图像周围的边框
- 3. 突出显示所选单选按钮周围的div类?
- 4. 在IE8中显示的图像周围的幻影“边框”
- 5. 如何显示在周围kineticjs V4.0.5图像的边框
- 6. 在旋转木马的图像部分周围添加边框
- 7. 突出显示所选图像
- 8. jQuery Mobile在图像背景周围显示边框/轮廓
- 9. 在图像周围添加透明边框
- 10. 如何在图像周围添加圆角边框?
- 11. JQuery - 隐藏/显示复选框和图像突出显示/边框
- 12. 添加图像周围添加图像
- 13. 图像上的链接在Internet Explorer中显示图像周围的边框
- 14. Silverlight:在网格周围添加边框
- 15. QLabel在文字周围添加“边框”
- 16. 如何在TableLayout周围添加边框?
- 17. 如何在QWidget周围添加边框?
- 18. 在CSS中如何突出显示链接中的所有图像并在这些图像周围应用边框并应用于整个网站?
- 19. 边框没有给出,但显示在彩色背景图像周围
- 20. android cardview显示卡周围的边框
- 21. 在TreeViewItem的所有子节点周围添加边框
- 22. Android:操纵图像并在图像周围添加白色边框
- 23. 突出显示一个活动的分段控件+在活动段周围添加一个边框
- 24. 在列表框项目周围显示边框时的图像移动wpf
- 25. 图像周围的两个六边形边框(响应式)
- 26. 围绕视图的边框在视图颜色的边缘周围留出一些区域,以反应原生
- 27. 在C#中的TextBox周围添加弹出边框动画wpf
- 28. 多边框,填充,图像周围
- 29. 如何在边框周围添加另一个边框?
- 30. UIBezierPath:如何在带圆角的视图周围添加边框?
我是假设你想由于您包含“reactjs”标签而产生的反应答案。 – John