問題描述 我想創(chuàng)建三個圖片,中間的的opaccity值為1,其余為0.5,點擊哪張哪張的opacity變?yōu)?,其余的圖片變?yōu)?.5,在小程序中不能獲取dom,不知道該如何操作?
實踐過程代碼
wxml 部分代碼:
<view class="choose" >
<view class="tu" wx:for="{{array}}" data-opacity="{{item.opacity}}" style='background:url({{item.url}});opacity:{{item.opacity}};background-size: 100% 100%;' bindtap='toggle'></view>
</view>
js 部分代碼:
data: {
array:[{
url: 'shen1.png',
opacity: '0.5'
},{
url: 'shen2.png',
opacity: '1'
},{
url: 'hen3.png',
opacity: '0.5'
}]
}}
toggle:function(e){
let that = this;
console.log(e.target.dataset.opacity);
let opacity = e.target.dataset.opacity == '1' ? '0.5' : '1';
console.log(opacity);
//e.target.dataset.opacity=opacity; 這樣不能賦值成功
}你要修改的是 array 里的對應 opacity。直接改了下,木有跑過代碼哦。
<view class="choose" >
<view class="tu" wx:for="{{array}}" data-id="{{item.id}}" style='background:url({{item.url}});opacity:{{item.opacity}};background-size: 100% 100%;' bindtap='toggle'></view>
</view>
data: {
array:[{
url: 'shen1.png',
opacity: '0.5',
id: 1
},{
url: 'shen2.png',
opacity: '1',
id: 2
},{
url: 'hen3.png',
opacity: '0.5',
id: 3
}]
}}
toggle(e){
let that = this;
console.log(e.target.dataset.id);
this.setData({
array: this.data.array.map(v => {
return e.target.dataset.id === v.id ? {...v, opacity: '1'} : {...v, opacity: '0.5'}
})
})
} <view class="tu" wx:for="{{array}}" data-index="{{index}}" wx:key="{{index}}" style='background:url({{item.url}});opacity:{{item.opacity}};background-size: 100% 100%;' bindtap='toggle'></view>
toggle (e) {
let myindex = e.currentTarget.dataset.index;
this.data.array = this.data.array.map((item,index)=>{
if(myindex===index){
item.opacity = '1'
}else{
item.opacity = '0.5'
}
return item;
});
this.setData({
array:this.data.array
})
}
這樣做不是很好,當然有好點的方案
<view class="tu" wx:for="{{array}}" wx:key="{{index}}" data-index="{{index}}" style='background:url({{item.url}});opacity:{{index===activeindex?"1":"0.5"}};background-size: 100% 100%;' bindtap='toggle'></view>
在data里添加一個activeindex:0
toggle (e) {
let myindex = e.currentTarget.dataset.index;
this.setData({
activeindex:myindex
})
}北大青鳥APTECH成立于1999年。依托北京大學優(yōu)質雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達內教育集團成立于2002年,是一家由留學海歸創(chuàng)辦的高端職業(yè)教育培訓機構,是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學校辦產業(yè)為響應國家深化產教融合/校企合作的政策,積極推進“中國制造2025”,實現(xiàn)中華民族偉大復興的升級產業(yè)鏈。利用北京大學優(yōu)質教育資源及背
博為峰,中國職業(yè)人才培訓領域的先行者
曾工作于聯(lián)想擔任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔任項目經理從事移動互聯(lián)網管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責任公司從事總經理職務負責iOS教學及管理工作。
浪潮集團項目經理。精通Java與.NET 技術, 熟練的跨平臺面向對象開發(fā)經驗,技術功底深厚。 授課風格 授課風格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網頁制作和網頁游戲開發(fā)。
具有10 年的Java 企業(yè)應用開發(fā)經驗。曾經歷任德國Software AG 技術顧問,美國Dachieve 系統(tǒng)架構師,美國AngelEngineers Inc. 系統(tǒng)架構師。