国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

微信小程序:自定義多選框樣式,實現(xiàn)多選、全選功能,以及使用css實現(xiàn)選中打鉤效果

這篇具有很好參考價值的文章主要介紹了微信小程序:自定義多選框樣式,實現(xiàn)多選、全選功能,以及使用css實現(xiàn)選中打鉤效果。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

微信小程序 選擇框,微信小程序,前端,javascript,小程序,css3文章來源地址http://www.zghlxwxcb.cn/news/detail-715187.html

<scroll-view class="page-container" scroll-y="true" enable-back-to-top="{{true}}">
    //多選組
    <checkbox-group bindchange="checkboxChange">
      <view class="box" wx:for="{{records}}" wx:key="id">
        //使用label包裹多選框和自定義樣式
        <label class="box-checkbox {{item.checked? 'is-checked':''}}">
          //隱藏原生多選框
          <checkbox value="{{item.id}}" hidden="{{true}}" checked="{{item.checked}}"/>
          //自定義多選框
          <view class="box-checkbox_icon"></view>
        </label>
        <view class="box-item">
           //...記錄項內(nèi)容
        </view>
      </view>
    </checkbox-group>
    
  </scroll-view>
 <!-- 底部固定卡片 -->
  <view class="fixedCard">
    <view class="fixedCard-text">
      <view class="fixedCard-text_allcheck">
        <checkbox-group bindchange="handleAllCheck" >
          <label class="box-checkbox {{allcheck? 'is-checked':''}}">
            <checkbox value="{{allcheck}}" hidden="{{true}}" checked="{{allcheck}}" />
            <view class="box-checkbox_icon"></view>
          </label>
        </checkbox-group>
        <view>全選</view>
      </view>
      <view>
      共<text class="fixedCard-text_highlight">{{totalOrder}}</text>個訂單,<text class="fixedCard-text_highlight">{{totalMoney}}</text>元
      </view>
    </view>
    <view class="fixedCard-button" bind:tap="handleNextStep">下一步</view>
  </view>
//選擇訂單項
checkboxChange(e){
  const records = this.data.records   //獲得當前頁面全部記錄集合
  let _allcheck=false  //假設未全選
  const values = e.detail.value    //當前已選擇項的id集合,因為checkbox的value="{{item.id}}"
  const lenI = records.length
  const lenJ = values.length
  if(lenI==lenJ){    //全選,選中項集合長度和當前頁面記錄長度一致
    console.log("選擇全部")
    records.forEach(x=>{
      x.checked=true
    })
    _allcheck=true  //標記全選
  }else{    //非全選
    for (let i = 0; i < lenI; ++i) {
      records[i].checked = false
      for (let j = 0; j < lenJ; ++j) {
        if (records[i].id ==  values[j]) {
          records[i].checked = true
          break
        }
      }
    }
  }
  //計算選中項數(shù)值總計
  this.countTotal(records.filter(x=> x.checked==true))

  this.setData({   //更新數(shù)據(jù)重新渲染頁面
    allcheck:_allcheck,  
    records:records
  })
},
// 全選按鈕
handleAllCheck(e){
  const records = this.data.records
  if(records.length==0){
    wx.showToast({
      title: '無訂單',
      icon: 'none',
      duration: 1500
    })
    return
  }
  if(!this.data.allcheck){  //全選
    records.forEach(x=>{
      x.checked=true
    })
    this.countTotal(records)
  }else{  //取消全選,即全不選
    records.forEach(x=>{
      x.checked=false
    })
    this.countTotal([])
  }
  this.setData({
    allcheck:!this.data.allcheck,
    records:records
  })
},

//計算
countTotal(val){
  let money=0,order=0
  if(val.length!=0){
    orderorder=val.length
    val.forEach(x=>{
      money+=x.totalDeductionFee
    })
    //小數(shù)點第三位之后四舍五入
    money=Math.round(money * 100) / 100
  }
  this.setData({
    totalOrder:order,
    totalMoney:money
  })
},

//下一步
handleNextStep(){
  const orderIds=[]
  this.data.records.map(function(item){
    if(item.checked==true){orderIds.push(item.id)}
  })
  // console.log("已選訂單id集合",orderIds)
  if(orderIds.length > 0){
    wx.navigateTo({
      url:`/pages/submitApply?orderIds=${orderIds}`
    })
  }else{
    wx.showToast({
      title: '請選擇訂單',
      icon: 'none',
      duration: 1500
    })
  }
},

box-checkbox{
  display: block;
  width: 38rpx;
  height: 38rpx;
  margin-right: 25rpx;
  border-radius: 50%;
  border: 2rpx solid #dadbda;
  background-color: #fff;
  position: relative;
  &_icon::after{//小勾
    box-sizing: content-box;
    content: "";
    border: 4rpx solid rgb(0, 0, 0);
    border-radius: 10rpx;
    border-left: 0;
    border-top: 0;
    height: 20rpx;
    width: 10rpx;
    left: calc(50% - 7rpx);
    top: calc(50% - 14rpx);
    position: absolute;
    transform: rotate(45deg) scaleY(0);
    transition: transform .05s ease-in .05s;
    transform-origin: center;
  }

  &.is-checked {  //選中樣式
    background-color: #ffd900;
    .box-checkbox_icon::after {
      transform: rotate(45deg) scaleY(1);
    }
  }
}

到了這里,關于微信小程序:自定義多選框樣式,實現(xiàn)多選、全選功能,以及使用css實現(xiàn)選中打鉤效果的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 【微信小程序-uniapp】CustomPickerMul 自定義多選選擇器組件
  • 微信小程序——實現(xiàn)單選、多選

    微信小程序——實現(xiàn)單選、多選

    單選使用radio-group標簽包裹radio標簽 多選使用checkbox-group 標簽包裹checkbox標簽 ?單選和多選的wxml代碼 以下是wxss代碼

    2024年02月06日
    瀏覽(29)
  • 微信小程序自定義tabbar【中間凸起樣式】

    微信小程序自定義tabbar【中間凸起樣式】

    效果預覽 微信開發(fā)文檔:自定義tabBar 一、配置信息 在 app.json 中的 tabBar 中指定 custom 字段為 true【允許使用自定義 tabBar】 在所有 tab 頁 json 中申明usingComponents 項,或者在 app.json 中全局開啟 在 list 中指定自己需要 tab 示例 二、添加 tabBar 代碼文件 在代碼根目錄下添加custom-

    2024年02月10日
    瀏覽(28)
  • placeholder樣式自定義(uniapp 微信小程序、h5)

    一、使用uniapp開發(fā) ①第一種方式:(寫在行內(nèi)) ②第二種方式: (給input加上placeholder-class屬性,然后給該屬性 設置一個類名,在style中設置樣式。) 二、使用H5開發(fā)

    2024年02月09日
    瀏覽(21)
  • 微信小程序怎么修改自定義組件中的樣式

    在微信小程序中我們經(jīng)常要用到自定義組件,但是有時我們因為引用的地方不同可能組件的一些樣式也要修改,比如顏色,高度,寬度等來適合不同的頁面,有沒有辦法來修改自定義組件中的樣式呢,很顯然是有的,我們要用到externalClasses方法。 一.自定義子組件: component

    2024年02月12日
    瀏覽(92)
  • 微信小程序自定義tabbar導航欄,中間凸出樣式

    微信小程序自定義tabbar導航欄,中間凸出樣式

    這種樣式的底部導航欄 使用微信小程序的自定義tabBar:微信小程序官方說明 uni.app=在? page.json ? 中的? tabBar ?項指定? custom ? 字段為true: 在根目錄創(chuàng)建custom-tab-bar目錄, 注意一定要完全匹配,不要輸錯 : ?index.js代碼: 注意這里的中間需要凸出項設置一個class index.json代碼

    2024年02月09日
    瀏覽(34)
  • 【微信小程序】實現(xiàn)復選框chebox勾選驗證

    【微信小程序】實現(xiàn)復選框chebox勾選驗證

    功能展示 ?未選中點擊按鈕 選中點擊按鈕 實現(xiàn)邏輯 1. 獲取checkbox的value值并綁定事件 2. 將獲取到的value值與定義的數(shù)據(jù)關聯(lián) 3. 當點擊按鈕是判斷是否勾選,為true則驗證通過,false則相反 ?代碼實現(xiàn) wxml js

    2024年02月07日
    瀏覽(23)
  • 微信小程序自定義主題顏色【狀態(tài)欄tab樣式同步更改】

    微信小程序自定義主題顏色【狀態(tài)欄tab樣式同步更改】

    ?此功能使用js控制變量 調(diào)整顏色值,賦值給css顏色達到切換自定義顏色效果 1.創(chuàng)建公共樣式userStyle.js文件,通過定義style1和style2來控制全局顏色改變。 注意:顏色值務必為十六進制,避免API不兼容顏色 2.在index.js中引入userColor并放入data中。 打印userColor? ?? 3.index.wxml中將變

    2024年02月03日
    瀏覽(26)
  • 微信小程序自定義字體樣式、字體修改、第三方字體設置

    微信小程序自定義字體樣式、字體修改、第三方字體設置

    ?博主介紹: 本人專注于Android/java/數(shù)據(jù)庫/微信小程序技術領域的開發(fā),以及有好幾年的計算機畢業(yè)設計方面的實戰(zhàn)開發(fā)經(jīng)驗和技術積累;尤其是在安卓(Android)的app的開發(fā)和微信小程序的開發(fā),很是熟悉和了解;本人也是多年的Android開發(fā)人員;希望我發(fā)布的此篇文件可以幫

    2024年02月04日
    瀏覽(101)
  • uniapp自定義radio的樣式,適用于微信小程序

    uniapp自定義radio的樣式,適用于微信小程序

    uniapp內(nèi)置組件是有官方定義的樣式,下面如圖所示。 但是注意一點: radio的默認顏色,在不同平臺不一樣。微信小程序是綠色的,抖音小程序為紅色,其他平臺是藍色的。更改顏色使用color屬性。 項目中需求的樣式是不同于內(nèi)置radio的 在這里打算自己寫一個單選按鈕,實現(xiàn)如

    2024年04月11日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包