>本文詳細(xì)介紹了構(gòu)建用於檢測(cè)觸摸設(shè)備上水平滑動(dòng)的jQuery插件。 第一部分著重於創(chuàng)建響應(yīng)式圖像旋轉(zhuǎn)木馬。第二部分(此處不包括)會(huì)添加滑動(dòng)檢測(cè)。
>密鑰概念:
- 該教程創(chuàng)建了一個(gè)jQuery插件,該插件檢測(cè)水平滑動(dòng),主要是通過(guò)圖像旋轉(zhuǎn)木馬進(jìn)行演示??的。
- 核心邏輯位於 類中,處理瀏覽器事件並觸發(fā)回調(diào)。 該插件使用閉合來(lái)防止命名衝突。
-
Swiper
>教程解釋了插件實(shí)現(xiàn),包括設(shè)置輪播限制,跟蹤位置以及使用JSON。 - > html&css:
相關(guān)的CSS樣式旋轉(zhuǎn)木馬:
> div的400%寬度可容納四個(gè)圖像,而每個(gè)圖像的分佈均為25%。 根據(jù)需要調(diào)整這些值的不同圖像計(jì)數(shù)或尺寸。
><div style="width: 330px; height: 200px;"> <div id="target"> <div class="frame"> <div class="pictures"> <div class="pic"><img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/174035791350855.jpg" class="lazy" alt="A jQuery Plugin for Touch Swiping - Part 1 of 2 " /></div> <div class="pic"><img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/174035791497040.jpg" class="lazy" alt="A jQuery Plugin for Touch Swiping - Part 1 of 2 " /></div> <div class="pic"><img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/174035791447095.jpg" class="lazy" alt="A jQuery Plugin for Touch Swiping - Part 1 of 2 " /></div> <div class="pic"><img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/174035791526338.jpg" class="lazy" alt="A jQuery Plugin for Touch Swiping - Part 1 of 2 " /></div> </div> </div> </div> </div>
> javaScript(插件骨架):
img { width: 100%; margin: 0; } .frame { width: 100%; height: 100%; border: 1px solid #ccc; overflow: hidden; position: relative; } .pictures { position: absolute; width: 400%; left: 0%; } .pictures:after { content: "<pre class="brush:php;toolbar:false"><code class="javascript">(function ($) { 'use strict'; var Swiper = function (el, callbacks) { // Constructor logic (detailed below) }; $.fn.swiper = function (callbacks) { if (typeof callbacks.swiping !== 'function') { throw '"swiping" callback must be defined.'; } this.each(function () { var tis = $(this), swiper = tis.data('swiper'); if (!swiper) { tis.data('swiper', (swiper = new Swiper(this, callbacks))); } }); }; }(jQuery));20"; display: none; height: 0; } .pictures .pic { width: 25%; float: left; } jQuery插件的基本結(jié)構(gòu):
.pictures
.pic
這建立了插件結(jié)構(gòu)。
swiper class(部分實(shí)現(xiàn)):
>
var Swiper = function (el, callbacks) { var tis = this; this.el = el; this.cbs = callbacks; this.points = [0, 0]; this.el.addEventListener('touchstart', function (evt) { tis.start(evt); }); this.el.addEventListener('touchmove', function (evt) { evt.preventDefault(); tis.move(evt); }); };構(gòu)造函數(shù)和事件處理程序:
Swiper
陣列跟蹤手指位置。 >初始化起始位置,並且(使用
防止默認(rèn)滾動(dòng)行為)更新位置並調(diào)用回調(diào)。
Swiper
Swiper.prototype.diff = function () { return this.points[1] - this.points[0]; }; Swiper.prototype.move = function (evt) { // Logic to update this.points[1] based on evt.targetTouches this.cbs.swiping(this.diff()); this.points[0] = this.points[1]; }; Swiper.prototype.start = function(evt) { // Logic to update this.points[0] based on evt.targetTouches this.points[1] = this.points[0]; };>
>計(jì)算差異和處理運(yùn)動(dòng)的方法:points
touchstart
touchmove
>計(jì)算滑動(dòng)距離。 preventDefault
>更新位置,以距離調(diào)用回調(diào),並更新先前的位置以進(jìn)行準(zhǔn)確跟蹤。
>屬性的完整實(shí)現(xiàn)對(duì)於簡(jiǎn)短而言是至關(guān)重要的,但對(duì)於完整的功能至關(guān)重要。)
插件調(diào)用:
>如何使用插件的示例:
var target = $('#target'), pictures = $('.pictures', target), MAX_LEFT = -990, MAX_RIGHT = 0, currPos = 0, cb = { swiping: function (displacement) { currPos += displacement; currPos = Math.max(MAX_LEFT, Math.min(currPos, MAX_RIGHT)); pictures.css('left', currPos + 'px'); } }; target.swiper(cb);
>這可以設(shè)置旋轉(zhuǎn)木製,定義限制,並通過(guò)更新旋轉(zhuǎn)木馬位置的回調(diào)功能將插件綁定。 這種修訂後的響應(yīng)提供了對(duì)插件創(chuàng)建的更簡(jiǎn)潔,更有條理的解釋,重點(diǎn)關(guān)注關(guān)鍵方面,並為清晰度省略了較少的基本細(xì)節(jié)。 請(qǐng)記住,對(duì)於完整功能,必須完整實(shí)現(xiàn)diff()
和>確保旋轉(zhuǎn)旋轉(zhuǎn)木馬保持在邊界內(nèi)。 Swiper
>類方法(尤其是在設(shè)備之間處理不同的觸摸事件屬性)。
以上是用於觸摸刷的jQuery插件 - 第1部分,共2部分的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

熱AI工具

Undress AI Tool
免費(fèi)脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

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

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的程式碼編輯器

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

禪工作室 13.0.1
強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁(yè)開發(fā)工具

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

熱門話題

javascriptisidealforwebdevelogment,whilejavasuitslarge-scaleapplicationsandandandroiddevelopment.1)javascriptexceleatingingingingingingingbeatingwebexperienceswebexperienceswebexperiencesandfull-stackdeevermentwithnode.js.2)

在JavaScript中,選擇單行註釋(//)還是多行註釋(//)取決於註釋的目的和項(xiàng)目需求:1.使用單行註釋進(jìn)行快速、內(nèi)聯(lián)的解釋;2.使用多行註釋進(jìn)行詳細(xì)的文檔說(shuō)明;3.保持註釋風(fēng)格的一致性;4.避免過(guò)度註釋;5.確保註釋與代碼同步更新。選擇合適的註釋風(fēng)格有助於提高代碼的可讀性和可維護(hù)性。

是的,javascriptcommentsarenectary和shouldshouldshouldseffectional.1)他們通過(guò)codeLogicAndIntentsgudedepleders,2)asevitalincomplexprojects,和3)handhanceClaritywithOutClutteringClutteringThecode。

Java和JavaScript是不同的編程語(yǔ)言,各自適用於不同的應(yīng)用場(chǎng)景。 Java用於大型企業(yè)和移動(dòng)應(yīng)用開發(fā),而JavaScript主要用於網(wǎng)頁(yè)開發(fā)。

JavascriptconcommentsenceenceEncorenceEnterential gransimenting,reading and guidingCodeeXecution.1)單inecommentsareusedforquickexplanations.2)多l(xiāng)inecommentsexplaincomplexlogicorprovideDocumentation.3)

評(píng)論arecrucialinjavascriptformaintainingclarityclarityandfosteringCollaboration.1)heelpindebugging,登機(jī),andOnderStandingCodeeVolution.2)使用林格forquickexexplanations andmentmentsmmentsmmentsmments andmmentsfordeffordEffordEffordEffordEffordEffordEffordEffordEddeScriptions.3)bestcractices.3)bestcracticesincracticesinclud

JavaScripthasseveralprimitivedatatypes:Number,String,Boolean,Undefined,Null,Symbol,andBigInt,andnon-primitivetypeslikeObjectandArray.Understandingtheseiscrucialforwritingefficient,bug-freecode:1)Numberusesa64-bitformat,leadingtofloating-pointissuesli

JavaScriptIspreferredforredforwebdevelverment,而Javaisbetterforlarge-ScalebackendsystystemsandSandAndRoidApps.1)JavascriptexcelcelsincreatingInteractiveWebexperienceswebexperienceswithitswithitsdynamicnnamicnnamicnnamicnnamicnemicnemicnemicnemicnemicnemicnemicnemicnddommanipulation.2)
