成人精品一区二区三区中文字幕-成人精品一区二区三区-成人精品一级毛片-成人精品亚洲-日本在线视频一区二区-日本在线视频免费

導航首頁 ? 技術教程 ? 移動手機APP手指滑動切換圖片特效附源碼下載
全站頭部文字 我要出現在這里
移動手機APP手指滑動切換圖片特效附源碼下載 577 2024-03-19   

這是一款效果非常炫酷的移動手機APP滑動手指切換圖片特效。該APP特效在移動手機中用戶可以通過手指的左右滑動來切換圖片,在桌面設備中通過鼠標也可達到同樣的效果。

查看圖片

效果演示 源碼下載

使用方法

HTML結構

這個移動手機APP切換圖片特效的HTML結構采用嵌套<div>的HTML結構,每一張圖片卡片都包裹在div.demo__card中,里面放置了圖片,描述信息和一些額外的圖層。

<div class="demo__card">
 <div class="demo__card__top brown">
 <div class="demo__card__img"></div>
 <p class="demo__card__name">Hungry cat</p>
 </div>
 <div class="demo__card__btm">
 <p class="demo__card__we">Whatever</p>
 </div>
 <div class="demo__card__choice m--reject"></div>
 <div class="demo__card__choice m--like"></div>
 <div class="demo__card__drag"></div>
</div> 

m--reject是向左移動圖片時的圖層,m--like是向右移動圖片時的圖層,demo__card__drag是拖動層。

JavaScript

在jQuery代碼中,pullChange()函數用于設置向左和向右兩個滑動層的旋轉角度和透明度。release()函數用于判斷用戶是向左還是向右滑動手指,并為這些動作在DOM元素上添加相應的class。

function pullChange() {
 animating = true;
 deg = pullDeltaX / 10;
 $card.css('transform', 'translateX(' + pullDeltaX + 'px) rotate(' + deg + 'deg)');
 var opacity = pullDeltaX / 100;
 var rejectOpacity = opacity >= 0 ? 0 : Math.abs(opacity);
 var likeOpacity = opacity <= 0 ? 0 : opacity;
 $cardReject.css('opacity', rejectOpacity);
 $cardLike.css('opacity', likeOpacity);
}
;
function release() {
 if (pullDeltaX >= decisionVal) {
  $card.addClass('to-right');
 } else if (pullDeltaX <= -decisionVal) {
  $card.addClass('to-left');
 }
 if (Math.abs(pullDeltaX) >= decisionVal) {
  $card.addClass('inactive');
  setTimeout(function () {
   $card.addClass('below').removeClass('inactive to-left to-right');
   cardsCounter++;
   if (cardsCounter === numOfCards) {
    cardsCounter = 0;
    $('.demo__card').removeClass('below');
   }
  }, 300);
 }
 if (Math.abs(pullDeltaX) < decisionVal) {
  $card.addClass('reset');
 }
 setTimeout(function () {
  $card.attr('style', '').removeClass('reset').find('.demo__card__choice').attr('style', '');
  pullDeltaX = 0;
  animating = false;
 }, 300);
}; 

最后監聽mousedown和touchstart事件,并對非.inactive的卡片元素執行卡片切換操作。

使用方法

HTML結構

這個移動手機APP切換圖片特效的HTML結構采用嵌套<div>的HTML結構,每一張圖片卡片都包裹在div.demo__card中,里面放置了圖片,描述信息和一些額外的圖層。

<div class="demo__card">
 <div class="demo__card__top brown">
 <div class="demo__card__img"></div>
 <p class="demo__card__name">Hungry cat</p>
 </div>
 <div class="demo__card__btm">
 <p class="demo__card__we">Whatever</p>
 </div>
 <div class="demo__card__choice m--reject"></div>
 <div class="demo__card__choice m--like"></div>
 <div class="demo__card__drag"></div>
</div> 

m--reject是向左移動圖片時的圖層,m--like是向右移動圖片時的圖層,demo__card__drag是拖動層。

JavaScript

在jQuery代碼中,pullChange()函數用于設置向左和向右兩個滑動層的旋轉角度和透明度。release()函數用于判斷用戶是向左還是向右滑動手指,并為這些動作在DOM元素上添加相應的class。

function pullChange() {
 animating = true;
 deg = pullDeltaX / 10;
 $card.css('transform', 'translateX(' + pullDeltaX + 'px) rotate(' + deg + 'deg)');
 var opacity = pullDeltaX / 100;
 var rejectOpacity = opacity >= 0 ? 0 : Math.abs(opacity);
 var likeOpacity = opacity <= 0 ? 0 : opacity;
 $cardReject.css('opacity', rejectOpacity);
 $cardLike.css('opacity', likeOpacity);
}
;
function release() {
 if (pullDeltaX >= decisionVal) {
  $card.addClass('to-right');
 } else if (pullDeltaX <= -decisionVal) {
  $card.addClass('to-left');
 }
 if (Math.abs(pullDeltaX) >= decisionVal) {
  $card.addClass('inactive');
  setTimeout(function () {
   $card.addClass('below').removeClass('inactive to-left to-right');
   cardsCounter++;
   if (cardsCounter === numOfCards) {
    cardsCounter = 0;
    $('.demo__card').removeClass('below');
   }
  }, 300);
 }
 if (Math.abs(pullDeltaX) < decisionVal) {
  $card.addClass('reset');
 }
 setTimeout(function () {
  $card.attr('style', '').removeClass('reset').find('.demo__card__choice').attr('style', '');
  pullDeltaX = 0;
  animating = false;
 }, 300);
};

最后監聽mousedown和touchstart事件,并對非.inactive的卡片元素執行卡片切換操作。

$(document).on('mousedown touchstart', '.demo__card:not(.inactive)', function (e) {
 if (animating)
  return;
 $card = $(this);
 $cardReject = $('.demo__card__choice.m--reject', $card);
 $cardLike = $('.demo__card__choice.m--like', $card);
 var startX = e.pageX || e.originalEvent.touches[0].pageX;
 $(document).on('mousemove touchmove', function (e) {
  var x = e.pageX || e.originalEvent.touches[0].pageX;
  pullDeltaX = x - startX;
  if (!pullDeltaX)
   return;
  pullChange();
 });
 $(document).on('mouseup touchend', function () {
  $(document).off('mousemove touchmove mouseup touchend');
  if (!pullDeltaX)
   return;
  release();
 });
});    


主站蜘蛛池模板: 电影院线| 寂静之城| 对会长的忠告未增减| 87版七仙女台湾| 慈禧向十一国宣战台词| 那根所有权| 张天爱三级露全乳hd电影| 2016美国大选| 欧美性高清aviu88| 《我的太阳》电视剧| 电影男女| 洛城僵尸在线观看| 韩国女车模| 小猪佩奇最新第十季| 罗马之春| 从此以后歌词| 周秀娜全部三级视频| 日本电影部长| 四川影视文艺频道| 理发店电影| 感冒难受的图片| 家庭教师偏差值| 条件概率经典例题| 色戒在线观看完整版| 因鬼六罪恶六芒星| 西藏秘密演员表全部| 燃冬海报| 树屋上的童真| 王子文个人资料| 特种部队3浴血追凶| 大连酒店| 炊事班的故事演员名单| stylistic device| 喝醉的图片| 佳偶天成泰剧| 申河均| 浙江旅游地图| 黑帮大佬365天| 短篇500篇 合集大结局| 张志文| 第一财经公司与行业回放|

!!!站長長期在線接!!!

網站、小程序:定制開發/二次開發/仿制開發等

各種疑難雜癥解決/定制接口/定制采集等

站長微信:lxwl520520

站長QQ:1737366103