<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| 久久精品一区二区国产| 无码任你躁久久久久久| 99精品久久久久久久婷婷| 亚洲AV无码久久精品蜜桃| 66精品综合久久久久久久| 一本久久a久久精品综合香蕉| 欧洲成人午夜精品无码区久久| 热99re久久国超精品首页| 一本综合久久国产二区| 一本久久a久久精品综合夜夜| 日韩精品久久久久久久电影| 久久99国产精一区二区三区| 久久久无码精品亚洲日韩京东传媒| 国产精品无码久久久久| 久久亚洲日韩看片无码| 久久国产免费直播| 久久精品国产69国产精品亚洲| 午夜精品久久久久久久无码| 久久se精品一区精品二区| 影音先锋女人AV鲁色资源网久久| 久久久久国产日韩精品网站| 色噜噜狠狠先锋影音久久| 久久亚洲私人国产精品vA | 久久精品国产福利国产秒| 一本色道久久88精品综合| 久久综合精品国产一区二区三区| 999久久久免费国产精品播放| 久久精品人人做人人爽电影蜜月 | 99久久精品免费看国产一区二区三区| 久久黄视频| 亚洲国产精品一区二区三区久久 | 国产精品禁18久久久夂久| 久久精品人人做人人爽97| 人妻无码αv中文字幕久久 | 69久久精品无码一区二区| 久久久久久亚洲精品成人| 久久久国产乱子伦精品作者| 99国产欧美精品久久久蜜芽| 久久婷婷久久一区二区三区| 日本三级久久网|