hwSlider-內容滑動切換效果(二):響應式可觸控滑動
今天我們繼續內容滑動切換效果的第二部分講解。如今我們的web開發都要適應行動設備,就是說我們的web頁面要在行動裝置如手機端也能正常訪問,所以我將第一部分的基本切換效果做了加強,增加了響應式和觸控滑動效果。
檢視示範下載原始碼
本文是hwSlider-內容滑動切換效果的第二部分,示範DEMO都是基於第一部分內容的基礎上的,所以,如果您還沒閱讀過第一部分的話,請先移步參閱:hwSlider-內容滑動切換效果(一)
響應式
什麼是響應式設計,這裡我就不描述了。在hwSlider中,我們透過CSS來設定滑桿的寬度和高度,設定了百分比的寬度。
[code=css] #hwslider{width: 100%;height:auto;min-height: 120px;margin:40px auto; position: relative; overflow: hidden;} #hwslider ul{width: 100%; height:100%; position: absolute; z-index: 1} #hwslider ul li{display:none;position:absolute; left:0; top:0; width: 100%;height:100%; overflow: hidden;} #hwslider ul li.active{display: block;} #hwslider ul li img{max-width: 100%} #dots{position: absolute; bottom:20px; left:200px; min-width:60px; height: 12px; z-index: 2;} #dots span{float: left; width:12px;height: 12px; border: 1px solid #fff; border-radius: 50%; background: #333; margin-right: 8px; cursor: pointer;} #dots span.active{background:orangered} .arr{display:none;position: absolute; top: 140px; z-index: 2;width: 40px; height: 40px; line-height: 38px; text-align: center;; font-size: 36px; background: rgba(0,0,0,.3); color: #fff; text-decoration: none} .arr:hover{background: rgba(0,0,0,.7); text-decoration: none;} #hwslider:hover .arr{display: block; text-decoration: none;color: #fff} #prev{left: 20px} #next{right: 20px}
接下來,我們在js部分開始部分定義變量,在初始化resize()函數中,我們計算並定位導航圓點和導航箭頭的位置,並且在瀏覽器視窗大小調整的時候也要呼叫resize()。
[code=js] $(function(){ var slider = $("#hwslider"); var dots = $("#dots span"), prev = $("#prev"),next = $("#next"); var sliderInder = slider.children('ul') var hwsliderLi = sliderInder.children('li'); var hwsliderSize = hwsliderLi.length; //滑块的总个数 var sliderWidth = 600; //滑块初始宽度 var sliderHeight = 320; //滑块初始高度 var index = 1; //初始显示第一个滑块 var speed = 400; //滑动速度 var interval = 3000; //间隔时间 var dotShow = true; //是否显示可切换的导航圆点 var autoPlay = false; //是否支持自动滑动 var clickable = true; //是否已经点击了滑块在做滑动动画 //初始化组件 var resize = function(){ var sWidth = slider.width(); var dotWidth = hwsliderSize*20; var dotOffset = (sWidth-dotWidth)/2; var sHeight = sliderHeight/sliderWidth*sWidth; slider.css('height',sHeight); $("#dots").css('left',dotOffset+'px'); //导航圆点位置 var arrOffset = (sHeight-40)/2; $(".arr").css('top',arrOffset+'px'); //导航箭头位置 } resize(); $(window).resize(function(){ resize(); }); });
行動端觸控螢幕滑動
在行動裝置上,我們可以輕觸螢幕,並使用手勢滑動來切換滑桿。要達到這種效果,需要用到核心的touch事件。處理touch事件能追蹤到螢幕滑動的每根手指。
以下是四個touch事件:
touchstart: 手指放到螢幕上時觸發
touchmove: 手指在螢幕上滑動式觸發
touchend : 手指離開畫面時觸發
touchcancel: 系統取消touch事件的時候觸發,這個好像比較少用
好,現在我們需要在滑桿上綁定偵聽touch觸控事件,在touchstart和touchend時分別取得手指在螢幕滑桿上的位置,然後根據位移判斷是左滑還是右滑,然後呼叫moveTo()實現滑動切換。
[code=css] var mouseX = 0, touchStartY = 0, touchStartX = 0; hwsliderLi.on({ //触控开始 'touchstart': function(e) { touchStartY = e.originalEvent.touches[0].clientY; touchStartX = e.originalEvent.touches[0].clientX; }, //触控结束 'touchend': function(e) { var touchEndY = e.originalEvent.changedTouches[0].clientY, touchEndX = e.originalEvent.changedTouches[0].clientX, yDiff = touchStartY - touchEndY, xDiff = touchStartX - touchEndX; if ( Math.abs( xDiff ) > Math.abs( yDiff ) ) { if ( xDiff > 5 ) { if(index >= hwsliderSize){ index = 1; }else{ index += 1; } moveTo(index,'next'); } else { if(index == 1){ index = hwsliderSize; }else{ index -= 1; } moveTo(index,'prev'); } } touchStartY = null; touchStartX = null; }, //触控移动 'touchmove': function(e) { if(e.preventDefault) { e.preventDefault(); } } });
再加上上一篇文章中的基本滑桿js程式碼就能實現一個響應式的可觸控滑動的內容滑動效果。
如果要在PC上實現拖曳滑動的話,需要綁定滑桿的onmousedown,onmousemove以及onmouseup事件,實現滑鼠按住拖曳滑桿實現滑動切換,主要程式碼這裡就不貼出來了,大家可以下載原始碼中查看。
以上就是hwSlider-內容滑動切換效果(二):響應式觸控滑動 的內容,更多相關內容請關注PHP中文網(www.php.cn)!
相關文章:

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

隨著行動裝置的普及,網頁設計需要考慮到不同終端的裝置解析度和螢幕尺寸等因素,以實現良好的使用者體驗。在實現網站的響應式設計時,常常需要使用到圖片輪播效果,以展示多張圖片在有限的視覺視窗中的內容,同時也能夠增強網站的視覺效果。本文將介紹如何使用CSS實現響應式圖片自動輪播效果,並提供程式碼範例和解析。實現思路響應式圖片輪播的實現可以透過CSS的flex佈局來實現。在

如何使用HTML、CSS和jQuery製作一個響應式的標籤雲標籤雲是一種常見的網頁元素,用於展示各種關鍵字或標籤。它通常以不同的字體大小或顏色來展示關鍵字的重要性。在本文中,將介紹如何使用HTML、CSS和jQuery來製作一個響應式的標籤雲,並給出具體的程式碼範例。在建立HTML結構首先,我們需要在HTML中建立標籤雲的基本結構。可以使用一個無序列表來表示標籤

使用CSS實現響應式滑動選單的教程,需要具體程式碼範例在現代網頁設計中,響應式設計成為了一個必備的技能。為了適應不同的裝置和螢幕尺寸,我們需要為網站添加一個響應式選單。今天,我們將使用CSS來實作一個響應式的滑動選單,並為您提供具體的程式碼範例。首先,讓我們來看看實現效果。我們將建立一個導覽欄,當螢幕寬度小於一定閾值時,會自動折疊起來,並透過點擊選單按鈕展開。

如何利用React開發一個響應式的後台管理系統隨著互聯網的快速發展,越來越多的企業和組織需要一個高效、靈活、易於管理的後台管理系統來處理日常的操作事務。 React作為目前最受歡迎的JavaScript庫之一,提供了一種簡潔、高效和可維護的方式來建立使用者介面。本文將介紹如何利用React開發一個響應式的後台管理系統,並給出具體的程式碼範例。建立React專案首先

如何使用HTML、CSS和jQuery製作一個響應式的滾動通知欄隨著行動裝置的普及和使用者對網站存取體驗要求的提高,設計一個響應式的滾動通知欄變得越來越重要。響應式設計可確保網站在不同裝置上都能正常顯示,且使用者可以輕鬆查看通知內容。本文將介紹如何使用HTML、CSS和jQuery來製作一個響應式的滾動通知欄,並提供具體的程式碼範例。首先,我們需要建立HTM

如何使用HTML和CSS建立一個響應式輪播圖佈局在現代的網頁設計中,輪播圖是一個常見的元素。它能夠吸引用戶的注意力,展示多個內容或圖片,並且能夠自動切換。在本文中,我們將介紹如何使用HTML和CSS建立一個響應式的輪播圖佈局。首先,我們需要建立一個基本的HTML結構,並且加入所需的CSS樣式。以下是一個簡單的HTML結構:<!DOCTYPEhtml&g

如何在Java9中使用JavaFX來建立響應式UI介面引言:在電腦應用程式的開發過程中,使用者介面(UI)是非常重要的一環。一個好的UI能夠提升使用者體驗,讓應用程式更具吸引力。 JavaFX是Java平台上的圖形使用者介面(GUI)框架,它提供了一套豐富的工具和API來快速建立富有互動性的UI介面。在Java9中,JavaFX已經成為了JavaSE的

使用Webman進行響應式網站開發的秘訣在當今數位化時代,人們越來越依賴行動裝置來存取網路。為了提供更好的使用者體驗和適合不同尺寸的螢幕,響應式網站開發已經成為了一個重要的趨勢。而Webman作為一個功能強大的框架,為我們提供了許多工具和技術來實現響應式網站的開發。在這篇文章中,我們將分享一些使用Webman進行響應式網站開發的秘訣,包括如何設定媒體查詢、
