用js開發(fā)滑動(dòng)組件

用js單例設(shè)計(jì)模式寫了一個(gè)Drag組件demo,暫時(shí)只有三個(gè)配置項(xiàng)。

config:{ id,toDown,toUp } ? ? ? ? //id為必填項(xiàng),可以放在初始化方法init()中第一個(gè)參數(shù)。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//toDown:function類型

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //toUp:function類型

源碼地址:https://github.com/dingjiamughal/components/blob/master/componentDrag.html

演示效果:https://dingjiamughal.github.io/components/componentDrag.html

面向?qū)ο蠼M件開發(fā)思路:

構(gòu)造目標(biāo)主題函數(shù)Drag(),聲明默認(rèn)options:

extend方法,覆蓋默認(rèn)參數(shù):

初始化方法init,在init中調(diào)用extend方法:

基本思路完成,剩下的補(bǔ)充方法邏輯:

init為主接口,包含所有參數(shù),因此所有方法都要寫在init中

這里和demo版的有點(diǎn)區(qū)別——將id作為必選參數(shù)(id放在opt中如果不寫也會(huì)報(bào)錯(cuò),因?yàn)閠his.obj需要傳id)

注意this指向問題:在init接口下的事件中的this指向this.obj,為了拿到Drag中的配置參數(shù)和Drag原型下的方法,要在init中保存this --> var _this=this;

關(guān)于This.settings.toDown():調(diào)用的是默認(rèn)配置項(xiàng)中的方法,牽涉到extend函數(shù)將引用類型的自定義對(duì)象屬性傳給默認(rèn)對(duì)象settings,所以直接調(diào)用默認(rèn)參數(shù)即可

默認(rèn)配置項(xiàng)settings的作用,防止多次調(diào)用產(chǎn)生效果沖突。

方法調(diào)用:

以上是Drag組件開發(fā)的基本流程,可以根據(jù)需求補(bǔ)充自定義參數(shù)settings。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,563評(píng)論 19 139
  • 如果不了解js的繼承的寫法,可以先去看看我之前寫的js的子類繼承父類文章http://www.jianshu.co...
    GQ1994閱讀 2,547評(píng)論 0 3
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,697評(píng)論 18 399
  • 1. 簡介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存儲(chǔ)過程以及高級(jí)映射的優(yōu)秀的...
    笨鳥慢飛閱讀 6,238評(píng)論 0 4
  • Address:https://www.zybuluo.com/XiangZhou/note/208532 Exp...
    天蠍蒗漫閱讀 11,623評(píng)論 2 55

友情鏈接更多精彩內(nèi)容