好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

小程序实现滑动块效果

本文实例为大家分享了小程序实现滑动块效果的具体代码,供大家参考,具体内容如下

当你在复制的时候 一定要 把js 逻辑的 list 数据更改就行了

小程序的css样式

?

.box {

     width : 100 vw;

     background : #F2F2F2 ;

     transition: all 3 s;

}

 

.box-b {

     height : 8 vh;

     width : 100% ;

     display : flex;

     justify- content : space-between;

     background-color : #FAFAFA ;

     align-items: center ;

     padding : 0 30 rpx;

     box-sizing: border-box;

}

 

.box-r 1 {

     font-size : 24 rpx;

     color : red ;

}

 

.box-r 2 {

     font-size : 28 rpx;

     padding : 20 rpx 50 rpx;

     border-radius: 50 rpx;

     color : #fff ;

     background-color : #FF6C3B ;

}

 

.box-t {

     height : 92 vh;

     overflow-y: auto ;

     overflow-x: hidden ;

     padding : 0 25 rpx;

}

 

.box- top {

     width : 90 vw;

     height : 22 vw;

     margin-top : 20 rpx;

     display : flex;

     flex- direction : column;

     justify- content : space-around;

}

 

.boxs {

     width : 105 vw;

     height : 20 vw;

     margin-top : 20 rpx;

     display : flex;

     flex- direction : row;

     justify- content : space-around;

}

 

.boxs -1 {

     width : 100 vw;

     height : 20 vw;

     background : white ;

     display : flex;

     flex- direction : row;

     justify- content : space-around;

     padding : 10 rpx 0 ;

     border-radius: 10px ;

     margin-left : 20px ;

}

 

.boxs -1 > view:first-child {

     width : 10 vw;

     line-height : 18 vw;

     text-align : center ;

     /* background: #ccc; */

     height : 20 vw;

}

 

.boxs -1 > view:nth-child( 2 ) {

     width : 20 vw;

     /* background: #ccc; */

     height : 100% ;

     border-radius: 20 rpx;

}

 

image {

     width : 100% ;

     height : 100% ;

     border-radius: 20 rpx;

}

 

.boxs -1 > view:last-child {

     width : 60 vw;

     /* background: #ccc; */

     height : 100% ;

     display : flex;

     flex- direction : column;

     justify- content : space-around;

}

.boxs -1 > view:last-child>view{

     display : flex;

     flex- direction : row;

     justify- content : space-around;

     position : relative ;

     left : 30 rpx;

}

text {

     width : 60 vw;

     overflow : hidden ;

     text- overflow : ellipsis;

     white-space : nowrap ;

}

 

.boxs -2 {

     width : 120 rpx;

     height : 170 rpx;

     text-align : center ;

     line-height : 170 rpx;

     background : #e64340 ;

     font-size : 24 rpx;

     color : #fff ;

     border-top-right-radius: 10px ;

     border-bottom-right-radius: 10px ;

}

.red_cart{

     color : red ;

     position : relative ;

     right : 40px ;

}

小程序的wxml样式

?

< view class = "box" >

     < view class = "box-t" >

         < movable-area class = "box-top" wx:for = "{{list}}" wx:key = "index" >

             < movable-view class = "boxs"

                           direction = "horizontal"

                           animation = "{{true}}"

                           inertia = "true"

                           out-of-bounds = "false"

             >

                 < view class = "boxs-1" >

                     < view >

                         < checkbox checked = "{{selected}}" wx:key = "index" bindtap = "chec" data-selected = "{{item}}" ></ checkbox >

                     </ view >

                     < view >

                         < image src = "{{item.pic}}" ></ image >

                     </ view >

                     < view class = "cart_list" >

                         < text >{{item.name}}</ text >

                         < view >

                             < view class = "red_cart" >¥{{item.price}}</ view >

                             < view >

                                 < van-stepper class = "cart_vant"

                                         value = "{{ item.number }}"

                                         bind:change = "onChange" data-key = "{{item.key}}" />

                             </ view >

                         </ view >

                     </ view >

                 </ view >

                 < view class = "boxs-2" bindtap = "del" data-key = "{{item.key}}" >删除</ view >

             </ movable-view >

         </ movable-area >

     </ view >

     < view class = "box-b" >

         < view class = "box-r1" >合计:¥{{price}}</ view >

         < view class = "box-r2" >去结算</ view >

     </ view >

</ view >

小程序js

?

// pages/sales/sales.js

let {

     getShop,

     getRemove,

     modifyNumber,

     getSelected

} = require( 'http/api' )

Page({

     onShareAppMessage() {

         return {

             title: 'movable-view' ,

             path: 'page/component/pages/movable-view/movable-view'

         }

     },

 

     data: {

         x: 0,

         scale: 2,

         list: [], //可以现在 list定义数据 测试使用

         price: 0,

         selected: []

     },

     del(e) {

         console.log(e.currentTarget.dataset.key)

         var keys = e.currentTarget.dataset.key

         var token = wx.getStorageSync( 'token' )

         getRemove(token, keys).then(res => {

             // console.log(res)

         })

         this .getShop()

     },

     onChange(e) {

         console.log(e.currentTarget.dataset.key)

         console.log(e.detail)

         var token = wx.getStorageSync( 'token' )

         var key = e.currentTarget.dataset.key

         var number = e.detail

         modifyNumber(token, key, number).then(res => {

             // console.log(res)

         })

         this .getShop()

     },

     tap() {

         this .setData({

             x: 0,

         })

     },

     getShop() {

         getShop().then(res => {

             this .setData({

                 list: res.items

             })

         })

     },

     chec(e) {

         this .getShop()

     },

     onLoad: function (options) {

         getShop().then(res => {

             this .setData({

                 list: res.items

             })

             this .data.list.forEach(i => {

                 var token = wx.getStorageSync( 'token' )

                 var key = i.key

                 var selected = i.selected

                 this .setData({

                     selected: selected

                 })

                 getSelected(token, key, selected).then(res => {

                     this .setData({

                         price: res.data.price

                     })

                 })

             })

 

 

         })

 

     },

     onShow: function () {

         this .getShop()

         if (wx.getStorageSync( 'token' )) {

             wx.hideLoading()

         } else {

             wx.showLoading({

                 title: '请登录' ,

             })

         }

     },

 

 

     /**

      * 生命周期函数--监听页面隐藏

      */

     onHide: function () {

 

     },

 

     /**

      * 生命周期函数--监听页面卸载

      */

     onUnload: function () {

 

     },

 

 

     onReady: function () {

 

     },

     /**

      * 页面相关事件处理函数--监听用户下拉动作

      */

     onPullDownRefresh: function () {

 

     },

 

     /**

      * 页面上拉触底事件的处理函数

      */

     onReachBottom: function () {

 

     },

 

     /**

      * 用户点击右上角分享

      */

})

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/DanielBlackCat/article/details/115872212

dy("nrwz");

查看更多关于小程序实现滑动块效果的详细内容...

  阅读:34次