移動(dòng)手機(jī)APP手指滑動(dòng)切換圖片特效附源碼下載
這是一款效果非常炫酷的移動(dòng)手機(jī)APP滑動(dòng)手指切換圖片特效。該APP特效在移動(dòng)手機(jī)中用戶可以通過(guò)手指的左右滑動(dòng)來(lái)切換圖片,在桌面設(shè)備中通過(guò)鼠標(biāo)也可達(dá)到同樣的效果。

使用方法
HTML結(jié)構(gòu)
這個(gè)移動(dòng)手機(jī)APP切換圖片特效的HTML結(jié)構(gòu)采用嵌套<div>的HTML結(jié)構(gòu),每一張圖片卡片都包裹在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是向左移動(dòng)圖片時(shí)的圖層,m--like是向右移動(dòng)圖片時(shí)的圖層,demo__card__drag是拖動(dòng)層。
JavaScript
在jQuery代碼中,pullChange()函數(shù)用于設(shè)置向左和向右兩個(gè)滑動(dòng)層的旋轉(zhuǎn)角度和透明度。release()函數(shù)用于判斷用戶是向左還是向右滑動(dòng)手指,并為這些動(dòng)作在DOM元素上添加相應(yīng)的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);
};
最后監(jiān)聽(tīng)mousedown和touchstart事件,并對(duì)非.inactive的卡片元素執(zhí)行卡片切換操作。
使用方法
HTML結(jié)構(gòu)
這個(gè)移動(dòng)手機(jī)APP切換圖片特效的HTML結(jié)構(gòu)采用嵌套<div>的HTML結(jié)構(gòu),每一張圖片卡片都包裹在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是向左移動(dòng)圖片時(shí)的圖層,m--like是向右移動(dòng)圖片時(shí)的圖層,demo__card__drag是拖動(dòng)層。
JavaScript
在jQuery代碼中,pullChange()函數(shù)用于設(shè)置向左和向右兩個(gè)滑動(dòng)層的旋轉(zhuǎn)角度和透明度。release()函數(shù)用于判斷用戶是向左還是向右滑動(dòng)手指,并為這些動(dòng)作在DOM元素上添加相應(yīng)的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);
};
最后監(jiān)聽(tīng)mousedown和touchstart事件,并對(duì)非.inactive的卡片元素執(zhí)行卡片切換操作。
$(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();
});
});
- JS+CSS實(shí)現(xiàn)自動(dòng)切換的網(wǎng)頁(yè)滑動(dòng)門(mén)菜單效果代碼
- jQuery實(shí)現(xiàn)的Tab滑動(dòng)選項(xiàng)卡及圖片切換(多種效果)小結(jié)
- JS+CSS實(shí)現(xiàn)仿雅虎另類滑動(dòng)門(mén)切換效果
- JQuery實(shí)現(xiàn)簡(jiǎn)單的圖片滑動(dòng)切換特效
- jQuery+CSS實(shí)現(xiàn)滑動(dòng)的標(biāo)簽分欄切換效果
- 基于jQuery和hwSlider實(shí)現(xiàn)內(nèi)容左右滑動(dòng)切換效果附源碼下載(一)
- jQuery和hwSlider實(shí)現(xiàn)內(nèi)容響應(yīng)式可觸控滑動(dòng)切換效果附源碼下載(二)
相關(guān)文章
關(guān)于Jqzoom的使用心得 jquery放大鏡效果插件
Jqzoom是基于jquery的放大鏡效果插件,兼容多款瀏覽器,喜歡的朋友可以測(cè)試下。2010-04-04
Jquery通過(guò)Ajax訪問(wèn)XML數(shù)據(jù)的小例子
這篇文章主要介紹了Jquery通過(guò)Ajax訪問(wèn)XML數(shù)據(jù),有需要的朋友可以參考一下2013-11-11
tuzhu_req.js 實(shí)現(xiàn)仿百度圖片首頁(yè)效果
這篇文章主要介紹了tuzhu_req.js 實(shí)現(xiàn)仿百度圖片首頁(yè)效果的相關(guān)資料,需要的朋友可以參考下2015-08-08
jQuery下通過(guò)$.browser來(lái)判斷瀏覽器.
用jQuery來(lái)判斷瀏覽器的類型,主要是使用$.browser這個(gè)工具類2011-04-04
jQuery實(shí)現(xiàn)左側(cè)導(dǎo)航模塊的顯示與隱藏效果
這篇文章主要介紹了jQuery實(shí)現(xiàn)左側(cè)導(dǎo)航模塊的顯示與隱藏效果,涉及jQuery相應(yīng)鼠標(biāo)事件動(dòng)態(tài)操作頁(yè)面元素樣式的相關(guān)技巧,需要的朋友可以參考下2016-07-07
使用JQuery自動(dòng)完成插件Auto Complete詳解
這篇文章主要介紹了使用JQuery自動(dòng)完成插件Auto Complete詳解,使用JQuery自動(dòng)完成插件,更新現(xiàn)有圖書(shū)列表頁(yè)面上的搜索,當(dāng)用戶鍵入的時(shí)候立即顯示結(jié)果。,需要的朋友可以參考下2019-06-06
jquery實(shí)現(xiàn)的一個(gè)導(dǎo)航滾動(dòng)效果具體代碼
首頁(yè)有一個(gè)導(dǎo)航頁(yè)面要實(shí)現(xiàn)滾動(dòng)效果,索性就仿造別人的效果自己做了一個(gè),大體上還行,看起來(lái)還是比較流暢的,現(xiàn)滾動(dòng)效果,腳本代碼如下,感興趣的朋友可以參考下2013-05-05

