當我選擇它時,我需要圖片周圍的邊框。因此,如果我有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. 突出顯示所選圖像
- 6. jQuery Mobile在圖像背景周圍顯示邊框/輪廓
- 7. 如何在圖像周圍添加圓角邊框?
- 8. JQuery - 隱藏/顯示覆選框和圖像突出顯示/邊框
- 9. 添加圖像周圍添加圖像
- 10. Silverlight:在網格周圍添加邊框
- 11. 如何在QWidget周圍添加邊框?
- 12. QLabel在文字周圍添加「邊框」
- 13. 在CSS中如何突出顯示鏈接中的所有圖像並在這些圖像周圍應用邊框並應用於整個網站?
- 14. 邊框沒有給出,但顯示在彩色背景圖像周圍
- 15. android cardview顯示卡周圍的邊框
- 16. 在TreeViewItem的所有子節點周圍添加邊框
- 17. Android:操縱圖像並在圖像周圍添加白色邊框
- 18. 突出顯示一個活動的分段控件+在活動段周圍添加一個邊框
- 19. 圖像周圍的兩個六邊形邊框(響應式)
- 20. 圍繞視圖的邊框在視圖顏色的邊緣周圍留出一些區域,以反應原生
- 21. 如何在邊框周圍添加另一個邊框?
- 22. UIBezierPath:如何在帶圓角的視圖周圍添加邊框?
- 23. 如何在R中的圖例周圍添加邊框?
- 24. 如何在Silverlight網格的列周圍顯示「選擇突出顯示」 - 矩形?
- 25. 圖像周圍的蟒蛇OpenCV中取出白色邊框
- 26. autocompletebox沒有突出顯示的邊框
- 27. 如何使用CSS在圖像周圍添加非矩形邊框?
- 28. CSS - 如何在圓形圖像周圍添加圓形邊框/輪廓?
- 29. CSS:刪除圖像周圍的邊框擰起圖像定位
- 30. 如何使選定的輸入框/圖像更突出顯示?
我是假設你想由於您包含「reactjs」標籤而產生的反應答案。 – John