Magento2使用手指左右滑動來切換Bootstrap頁籤

在開始實作之前、我們要先確認已經將Bootstrap打包進我們的Magento主題包裡。詳細的操作可以參考之前分享的 如何在Magento2 使用 Bootstrap。
接下來我們要開始讓Bootstrap頁籤可以支援手指左右滑動的動作。
因為Magento2 已經將jquery.mobile 的swipeleft, swiperight動作打包好了,所以我們直接叫出來用就好了。
建立Html Markup:
<div>
<!-- Nav tabs -->
<ul class="nav nav-tabs" role="tablist">
<li role="presentation" class="active"><a href="#home" aria-controls="home" role="tab" data-toggle="tab">Home</a></li>
<li role="presentation"><a href="#profile" aria-controls="profile" role="tab" data-toggle="tab">Profile</a></li>
<li role="presentation"><a href="#messages" aria-controls="messages" role="tab" data-toggle="tab">Messages</a></li>
<li role="presentation"><a href="#settings" aria-controls="settings" role="tab" data-toggle="tab">Settings</a></li>
</ul>
<!-- Tab panes -->
<div class="tab-content">
<div role="tabpanel" class="tab-pane active" id="home"><p>Home content</p><p>Home content</p><p>Home content</p><p>Home content</p></div>
<div role="tabpanel" class="tab-pane" id="profile"><p>profile content</p><p>profile content</p><p>profile content</p><p>profile content</p></div>
<div role="tabpanel" class="tab-pane" id="messages"><p>messages content</p><p>messages content</p><p>messages content</p><p>messages content</p></div>
<div role="tabpanel" class="tab-pane" id="settings"><p>settings content</p><p>settings content</p><p>settings content</p><p>settings content</p></div>
</div>
</div>
javascript:
require([
'jquery',
'jquery.bootstrap',
'jquery/jquery.mobile.custom'
], function($) {
$(function() {
$(".tab-content").swiperight(function() {
var $tab = $('[role="tablist"] .active').prev();
if ($tab.length > 0)
$tab.find('a').tab('show');
});
$(".tab-content").swipeleft(function() {
var $tab = $('[role="tablist"] .active').next();
if ($tab.length > 0)
$tab.find('a').tab('show');
});
});
});
考慮到頁面中可能同時出現二組以上的 Bootstrap tab,我們可以把javascript改成:
require([
'jquery',
'jquery.bootstrap',
'jquery/jquery.mobile.custom'
], function($) {
$(function() {
_tabBody = '[data-role="tabwrapper"]';
var _myTab = $(_tabBody)
var tabTarget = _myTab.find('.tab-content');
tabSwipe();
function tabSwipe() {
tabTarget.swiperight(function() {
var $control = $(this).closest(_tabBody).find('.nav-tabs .active');
var $content = $(this).closest(_tabBody).find('.tab-content .active');
var $tab = $control.prev();
var $newContent = $content.prev();
if ($tab.length) {
var _aTarget = $tab.find('a');
_aTarget.tab('show');
}
});
tabTarget.swipeleft(function() {
var $control = $(this).closest(_tabBody).find('.nav-tabs .active');
var $content = $(this).closest(_tabBody).find('.tab-content .active');
var $tab = $control.next();
var $newContent = $content.next();
if ($tab.length) {
var _aTarget = $tab.find('a');
_aTarget.tab('show');
}
});
};
});
});
以上是針對Magento2前端文章介紹,如果有您有更多疑問可以詢問我們,未來會撰寫更多電商網站相關文章,您想知道什麼嗎?歡迎在下方留言給我們。或追蹤我們的粉絲專頁,就不錯過最新文章喔!
我要留言