日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

html鼠标点击有手势出来,用原生js+css3撸的一个下拉手势事件插件

發布時間:2024/1/23 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 html鼠标点击有手势出来,用原生js+css3撸的一个下拉手势事件插件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

;

(function?()?{

var?DropDown?=?function?(dropId?=?'dropDwon',?distance?=?60,?callBack?=?()?=>?{},?tip?=?'下拉進行加載',?loadingTip?=?'努力加載中...')?{

//獲取下拉元素節點

this.dropDown?=?document.getElementById(dropId);

//下拉之前的提示

this.tip?=?tip;

//下拉之后的提示

this.loadingTip=loadingTip;

//下拉之后的回調函數

this.callBack?=?callBack;

//下拉距離,同時也是提示框的高度

this.distance?=?distance;

//獲取下拉元素的父節點

this.parentEle?=?this.dropDown.parentNode;

//提示框節點

this.tipDiv?=?null;

this.isLock?=?false;

//這兩個變量的作用在于防止二次滑動,在第一次滑動沒有達到指定距離而觸發回調的時候,會強制進行回彈,此時isLock被設置為fasle,防止二次滑動。

//滑動后數據加載完成之前不允許有第二次的滑動,避免來觸發第二次的回調函數。故而isDone是用來控制觸發回調的狀態的,isDOne為true時候,證明還沒有觸發回調,可以進行滑動,當觸發回調之后,會將isDone設置為fasle,在回調完成前,禁止進行滑動,進而再次觸發回調。

//如果滑動不到距離,那么會將狀態復原,如果滑動到達需要距離,那么會進行回調事件次數調用的限制,然后在回調完成后再進行復原。

this.isDone?=?false;

this.startPoint?=?null;

this.movePoint?=?null;

//初始化提示框元素

this.initEle();

//初始化提示框樣式

this.initCss();

//綁定手指觸摸開始事件

this.dropDown.addEventListener('touchstart',?this.touchStart.bind(this),?false);

//綁定手指移動事件

this.dropDown.addEventListener('touchmove',?this.touchMove.bind(this),?false);

//綁定手指觸摸結束事件

this.dropDown.addEventListener('touchend',?this.touchEnd.bind(this),?false);

}

DropDown.prototype.initEle?=?function?()?{

this.tipDiv?=?document.createElement('div');

this.tipDiv.setAttribute('class',?'tipDiv');

this.dropDown.setAttribute('class',?'dropDown')

this.tipDiv.innerHTML?=?this.tip;

let?first?=?this.dropDown.firstChild;

this.dropDown.insertBefore(this.tipDiv,?first);

}

DropDown.prototype.initCss?=?function?()?{

let?styleEle?=?document.createElement('style');

styleEle.innerHTML?+=?`.dropDown?.tipDiv{height:${this.distance}px;line-height:${this.distance}px;text-align:center;width:100%;}`;

styleEle.innerHTML?+=?`.dropDown{width:100%;transform:translate(0px,-${this.distance}px)}`;

document.head.appendChild(styleEle);

}

DropDown.prototype.setTransform?=?function?(dis)?{

this.dropDown.style.webkitTransform?=?`translate(0px,${dis}px)`;

this.dropDown.style.transform?=?`translate(0px,${dis}px)`;

}

DropDown.prototype.setTransition?=?function?(time)?{

this.dropDown.style.webkitTransition?=?`all?${time}s)`;

this.dropDown.style.transition?=?`all?${time}s)`;

}

DropDown.prototype.back?=?function?()?{

this.tipDiv.innerHTML=this.tip;

this.setTransform(-this.distance);

this.isLock?=?false;

}

DropDown.prototype.touchStart?=?function?(e?=?window.event)?{

if?(this.parentEle.scrollTop?<=?0?&&?!this.isLock)?{

this.startPoint?=?e.touches[0];

this.isLock?=?true;

this.isDone?=?true;

this.setTransition(0);

}

}

DropDown.prototype.touchMove?=?function?(e?=?window.event)?{

if?(this.parentEle.scrollTop?<=?0?&&?this.isDone)?{

this.movePoint?=?e.touches[0];

let?startY?=?this.startPoint.pageY;

let?moveY?=?this.movePoint.pageY;

if?(startY?=?this.distance)?{

this.tipDiv.innerHTML=this.loadingTip;

this.setTransition(1);

this.setTransform(0);

this.callBack();

}?else?{

this.back();

}

}

this.endPoint?=?e.changedTouches[0];

}

this.DropDown?=?DropDown;

})();

# dropDown

用原生js+css3擼的一個下拉(刷新)事件插件?dropDownDemo(電腦pc肯定是沒有觸摸事件的,需要打開控制臺模擬手機,或者復制鏈接手機瀏覽)

對于需要實現下拉事件的的元素,在其外層包裹寫一個div元素,以及設置這個div元素的id為你想要的。

在這里html跟css樣式寫不出來,所以要去github的readme上看

對于html元素部分,例如我想要給包含xiaodemo的元素設置下拉事件,那么我只要在它的外層包裹一層div,并且設置它的id就行了,至于什么樣的樣式是隨你的。

那么js代碼部分:

首先引入插件文件script?class="lazyload" src="https://img-blog.csdnimg.cn/2022010621340643065.png" data-original="./dropDown-es5.js"

然后在下面構造函數傳入id,實例化一個對象var?dropDown?=?new?DropDown('dropDown',?60,?function?()?{?setTimeout(()?=>?{?this.back();?},?1000);?},?'下拉進行加載','加載中...');并且只有id是必須的,其他參數都是默認的,也可以自己傳入

第一個參數為id,必填

第二個參數為下拉距離,同時也是提示框的高度,非必填,默認為60

第三個參數為回調函數,回調函數this默認綁定到dropDown這個構造函數實例化的對象上,非必填,默認為空函數

第四個參數為下拉觸發回調函數之前的提示,非必填,默認為’下拉進行加載’

第五個參數為下拉觸發回調函數后的提示,非必填,默認為’加載中…’

注意:第三個參數的回調函數需要在最后調用this.back函數,使得提示框復原。

// ]]>

總結

以上是生活随笔為你收集整理的html鼠标点击有手势出来,用原生js+css3撸的一个下拉手势事件插件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 97人人澡人人爽人人模亚洲 | 麻豆影视免费观看 | 久久99日韩 | 国产女人精品 | 男人的天堂亚洲 | 名人明星三级videos | 日本一二三区在线视频 | 国产一区二区在 | 国产露脸无套对白在线播放 | 午夜一二三区 | 97干在线| av网址在线免费观看 | 婷婷影院在线观看 | 我爱av好色 | 日批视频免费观看 | 91在线观看成人 | 亚洲精品成人片在线观看精品字幕 | 精品视频在线一区 | 欧美日韩综合一区二区三区 | 蜜桃视频久久 | 国模少妇一区二区三区 | 国产大片91| 中文字幕在线视频第一页 | 亚洲成熟少妇视频在线观看 | www.日韩视频 | 日韩av综合网| 亚洲国产中文字幕 | 91一区在线观看 | 性久久久 | 婷婷激情网站 | 30一40一50老女人毛片 | 亚洲av无码专区首页 | 上海毛片 | 欧美久久一区二区 | 制服丝袜先锋影音 | 亚洲最大黄网 | 91手机在线观看 | 国产无遮挡又黄又爽在线观看 | 麻豆高清视频 | 久久久免费在线观看 | 性欧美丰满熟妇xxxx性仙踪林 | 欧美日韩激情视频 | 亚洲一二区视频 | 国产调教在线 | 一级做a爱视频 | 欧美一区二区三区婷婷月色 | 欧美日韩在线播放 | 九九资源网 | 国产美女在线精品 | 在线精品自拍 | 国产高清片 | 九九热精品在线 | 无码人中文字幕 | 看一级片 | 国产精品日韩av | 在线免费黄 | 日韩中文字幕视频 | 国产av无码专区亚洲精品 | 女人又爽又黄免费女仆 | 美女诱惑一区二区 | 久久免费视频2 | 激情久久久久久久 | 在线www | 天堂草在线观看 | 一区二区三区在线观 | 日韩精品视频一区二区三区 | 一区二区在线免费视频 | 久久久视频在线观看 | 久色视频在线播放 | 在线国产视频 | 韩国主播青草55部完整 | 先锋影音在线 | 亚欧洲精品在线视频免费观看 | 又粗又猛又爽又黄的视频 | 大胸美女啪啪 | 中文字幕无码日韩专区免费 | 国产三级不卡 | 毛片在线视频 | 亚洲成人黄色小说 | 91中文视频 | 国产偷拍一区二区三区 | 91成年视频 | 久久婷婷五月综合色国产香蕉 | 欧美精品一区在线 | 波多野结衣在线免费视频 | 成人性生交大片免费看中文 | 好吊一区 | 狠狠操天天射 | 强行挺进白丝老师翘臀网站 | 欧美a在线视频 | 日本少妇喂奶漫画 | 五月天色视频 | 涩涩涩在线视频 | 久久久97 | 久久性生活 | 欧美日韩亚洲在线 | 日韩午夜一区 | 欧美日韩性 | 成人靠逼视频 |