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

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

          2019-6-26    seo達人

          如果您想訂閱本博客內容,每天自動發到您的郵箱中, 請點這里

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

          代碼:
          js:

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

            /**
             * 頁面的初始數據
             */
            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: []
            },

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

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

            },

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

            },

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

            },

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

            },

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

            },

            /**
             * 頁面上拉觸底事件的處理函數
             */
            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(); //獲取數組的最后一個
              this.data.datas.unshift(last);//放到數組的第一個
              var orderFirst = this.data.order.shift();
              this.data.order.push(orderFirst);
              this.move();
            },
            /** */
            right: function () {
              var first = this.data.datas.shift(); //獲取數組的第一個
              this.data.datas.push(first);//放到數組的最后一個位置
              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();
            },
            /**新的排列復制到新的數組中 */
            __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
                })
              }
            },
            //手指觸發開始移動
            moveStart: function (e) {
              console.log(e);
              var startX = e.changedTouches[0].pageX;
              this.setData({
                startX: startX
              });
            },
            //手指觸摸后移動完成觸發事件
            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 )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、網站建設 平面設計服務



          日歷

          鏈接

          個人資料

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

          存檔

          久久精品国产秦先生| 久久久亚洲AV波多野结衣 | 青青草国产精品久久久久| 日本一区精品久久久久影院| 亚洲国产成人久久综合一区77| 国产香蕉久久精品综合网| 久久久久久无码Av成人影院| 999久久久免费国产精品播放| 婷婷国产天堂久久综合五月| 久久丫精品国产亚洲av| 久久国产免费| 97久久精品无码一区二区| 久久精品国产精品亚洲下载| 国产69精品久久久久久人妻精品| 大美女久久久久久j久久| 伊人久久大香线焦AV综合影院| 国产精品欧美久久久久天天影视| 久久综合狠狠综合久久| 欧美黑人激情性久久| 精品久久久久久国产三级| 久久亚洲国产中v天仙www| 色8久久人人97超碰香蕉987| 久久夜色精品国产亚洲| 青青热久久国产久精品 | 久久无码人妻一区二区三区午夜| 欧美性大战久久久久久| 久久成人永久免费播放| 久久艹国产| 久久精品国产99久久香蕉| 国产—久久香蕉国产线看观看| 久久综合久久综合久久综合| AV狠狠色丁香婷婷综合久久| 久久永久免费人妻精品下载| 人妻精品久久无码区| 久久久久久九九99精品| 久久精品天天中文字幕人妻 | 日本久久久久亚洲中字幕| 亚洲综合伊人久久大杳蕉| 久久久噜噜噜久久熟女AA片| 久久99国产乱子伦精品免费| …久久精品99久久香蕉国产|