<em id="09ttv"></em>
    <sup id="09ttv"><pre id="09ttv"></pre></sup>
    <dd id="09ttv"></dd>

        • 微信小程序之卡片層疊滑動效果

          2019-6-26    seo達人

          如果您想訂閱本博客內(nèi)容,每天自動發(fā)到您的郵箱中, 請點這里

          微信小程序之卡片層疊滑動效果

          代碼:
          js:

          // index/gun/jsSwiper2/jsSwiper2.js
          Page({

            /**
             * 頁面的初始數(shù)據(jù)
             */
            data: {
              startX: 0,
              endX: 0,
              iCenter: 3,
              datas: [{
                id: 1,
                zIndex: 2,
                opacity: 0.2,
                left: 40,
                iamge: "../../images/1.jpg",
                animation: null
              },
              {
                id: 2,
                zIndex: 4,
                opacity: 0.4,
                left: 80,
                iamge: "../../images/2.jpg",
                animation: null
              },
              {
                id: 3,
                zIndex: 6,
                opacity: 0.6,
                left: 120,
                iamge: "../../images/3.jpg",
                animation: null
              },
              {
                id: 4,
                zIndex: 8,
                opacity: 1,
                left: 160,
                iamge: "../../images/4.jpg",
                animation: null
              },
              {
                id: 5,
                zIndex: 6,
                opacity: 0.6,
                left: 200,
                iamge: "../../images/5.jpg",
                animation: null
              },
              {
                id: 6,
                zIndex: 4,
                opacity: 0.4,
                left: 240,
                iamge: "../../images/6.jpg",
                animation: null
              },
              {
                id: 7,
                zIndex: 2,
                opacity: 0.2,
                left: 280,
                iamge: "../../images/7.jpg",
                animation: null
              },
              ],
              order: []
            },

            /**
             * 生命周期函數(shù)--監(jiān)聽頁面加載
             */
            onLoad: function (options) {
              this.__set__();
              this.move();
            },

            /**
             * 生命周期函數(shù)--監(jiān)聽頁面初次渲染完成
             */
            onReady: function () {

            },

            /**
             * 生命周期函數(shù)--監(jiān)聽頁面顯示
             */
            onShow: function () {

            },

            /**
             * 生命周期函數(shù)--監(jiān)聽頁面隱藏
             */
            onHide: function () {

            },

            /**
             * 生命周期函數(shù)--監(jiān)聽頁面卸載
             */
            onUnload: function () {

            },

            /**
             * 頁面相關事件處理函數(shù)--監(jiān)聽用戶下拉動作
             */
            onPullDownRefresh: function () {

            },

            /**
             * 頁面上拉觸底事件的處理函數(shù)
             */
            onReachBottom: function () {

            },

            /**
             * 用戶點擊右上角分享
             */
            onShareAppMessage: function () {

            },
            move: function () {
              var datas = this.data.datas;
              /*圖片分布*/
              for (var i = 0; i < datas.length; i++) {
                var data = datas[i];
                var animation = wx.createAnimation({
                  duration: 200
                });
                animation.translateX(data.left).step();
                this.setData({
                  ["datas[" + i + "].animation"]: animation.export(),
                  ["datas[" + i + "].zIndex"]: data.zIndex,
                  ["datas[" + i + "].opacity"]: data.opacity,
                })
              }
            },
            /**左箭頭 */
            left: function () {
              //
              var last = this.data.datas.pop(); //獲取數(shù)組的最后一個
              this.data.datas.unshift(last);//放到數(shù)組的第一個
              var orderFirst = this.data.order.shift();
              this.data.order.push(orderFirst);
              this.move();
            },
            /** */
            right: function () {
              var first = this.data.datas.shift(); //獲取數(shù)組的第一個
              this.data.datas.push(first);//放到數(shù)組的最后一個位置
              var orderLast = this.data.order.pop();
              this.data.order.unshift(orderLast);
              this.move();
            },
            /**點擊某項 */
            choose: function (e) {
              var that = this;
              var id = e.currentTarget.dataset.id;
              var order = that.data.order;
              var index = 0;
              for (var i = 0; i < order.length; i++) {
                if (id == order[i]) {
                  index = i;
                  break;
                }
              }
              if (index < that.data.iCenter) {
                for (var i = 0; i < that.data.iCenter - index; i++) {
                  this.data.datas.push(this.data.datas.shift()); //獲取第一個放到最后一個
                  this.data.order.unshift(this.data.order.pop());
                  // this.right()  
                }
              } else if (index > that.data.iCenter) {
                for (var i = 0; i < index - that.data.iCenter; i++) {
                  this.data.datas.unshift(this.data.datas.pop()); //獲取最后一個放到第一個
                  this.data.order.push(this.data.order.shift());
                  // this.left();
                }
              }
              this.move();
            },
            /**新的排列復制到新的數(shù)組中 */
            __set__: function () {
              var that = this;
              var order = that.data.order;
              var datas = that.data.datas;
              for (var i = 0; i < datas.length; i++) {
                that.setData({
                  ["order[" + i + "]"]: datas[i].id
                })
              }
            },
            //手指觸發(fā)開始移動
            moveStart: function (e) {
              console.log(e);
              var startX = e.changedTouches[0].pageX;
              this.setData({
                startX: startX
              });
            },
            //手指觸摸后移動完成觸發(fā)事件
            moveItem: function (e) {
              console.log(e);
              var that = this;
              var endX = e.changedTouches[0].pageX;
              this.setData({
                endX: endX
              });
              //計算手指觸摸偏移劇距離
              var moveX = this.data.startX - this.data.endX;
              //向左移動
              if (moveX > 20) {
                this.left();
              }
              if (moveX < -20) {
                this.right();
              }
            },
          })


          wxml:

          <view class="teachers_banner">
            <view class="container clearfix teachers_b">
              <view class="slide" id="slide" bindtouchstart='moveStart' bindtouchend='moveItem'>

                <block wx:for="{{datas}}">
                  <li animation="{{item.animation}}" style="z-index: {{item.zIndex}} ;opacity:{{item.opacity}};" bindtap="choose" data-id="{{item.id}}">
                    <image src="{{item.iamge}}"></image>
                  </li>
                </block>

              </view>
            </view>
          </view>

          wxss:

          .teachers_banner {
            width: 100%;
            height: 650px;
            background-size: cover;
            position: relative;
            overflow: hidden;
          }

          .teachers_b {
            position: relative;
            margin-top: 80px;
          }

          #slide {
            margin: 0 auto;
            width: 100%;
            height: 350px;
            position: relative;
          }

          image {
            width: 400rpx;
            height: 550rpx;
          }

          #slide li {
            position: absolute;
            width: 400rpx;
            display: -webkit-box;
            display: -webkit-flex;
            display: flex;
            align-items: flex-start;
            -webkit-box-align: flex-start;
            -webkit-align-items: flex-start;
            overflow: hidden;
            box-shadow: 0 0 20px #1d374d;
          }

          #slide li img {
            width: 100%;
            height: 100%;
          }

          .slide_right {
            padding: 40px;
            -webkit-box-flex: 1;
            -webkit-flex: 1;
            flex: 1;
            min-width: 0;
          }

          .slide_right dl {
            padding-top: 10px;
          }

          .arrow .prev, .arrow .next {
            position: absolute;
            width: 50px;
            top: 38%;
            z-index: 9;
            font: 700 96px 'simsun';
            opacity: 0.3;
            color: #fff;
            cursor: pointer;
          }

          效果:
          1.左右滑動時,向相應方向移動一個卡片位置;
          2.點擊某一項時,將點擊項位置移動到中間位置;

          藍藍設計m.sdgs6788.com )是一家專注而深入的界面設計公司,為期望卓越的國內(nèi)外企業(yè)提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、網(wǎng)站建設 平面設計服務



          日歷

          鏈接

          個人資料

          藍藍設計的小編 http://m.sdgs6788.com

          存檔

          久久无码人妻一区二区三区午夜| 久久久精品一区二区三区| 国产精品久久一区二区三区 | 青青青国产精品国产精品久久久久 | 久久亚洲精精品中文字幕| 久久99精品久久久久久hb无码| 久久精品国产免费| 久久人妻AV中文字幕| 久久99国产乱子伦精品免费| 国产亚洲欧美精品久久久| 久久久久亚洲av毛片大| 久久亚洲精精品中文字幕| 久久99精品国产99久久6| 久久精品国产网红主播| 97久久婷婷五月综合色d啪蜜芽| 国产激情久久久久影院老熟女| 亚洲国产另类久久久精品小说| 久久人人爽人爽人人爽av| 久久久无码精品亚洲日韩按摩 | 久久久久久国产精品美女| 2020最新久久久视精品爱| 国产精品久久亚洲不卡动漫| 亚洲精品综合久久| 久久国产成人亚洲精品影院| 精品久久人人爽天天玩人人妻| 国产2021久久精品| 久久精品99久久香蕉国产色戒| 亚洲国产成人久久综合碰| 99久久综合狠狠综合久久| 狠狠色丁香久久综合五月| 亚洲国产精品18久久久久久| 一本久久综合亚洲鲁鲁五月天亚洲欧美一区二区 | 久久婷婷国产剧情内射白浆| 久久久精品波多野结衣| 久久99久久无码毛片一区二区| 69久久夜色精品国产69| 久久精品国产亚洲AV嫖农村妇女| 一本一本久久aa综合精品| 77777亚洲午夜久久多喷| 国内精品九九久久精品| 亚洲欧美日韩中文久久 |