成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

面向?qū)ο缶幊?

邱勇 / 1228人閱讀

摘要:先來一個直播點贊動效的例子用于算出的隨機(jī)值圖片最終的位置關(guān)閉點贊動畫的時間組件套路基于工具類函數(shù)寫在上組件初始化參數(shù)賦值組件內(nèi)部事件組件與外部相關(guān)有事件

先來一個直播點贊動效的例子
    $(function () {
        function Like(config) {
            this.config = this.initConfig(config);
        }
        Like.prototype.initConfig = function (params) {
            var defaults = {
                DomEle: ".demo",
                getImgUrl: function () {
                    var num = Math.floor(Math.random() * 3 + 1);
                    return "images/" + num + ".png";
                },
                leftRange:[100,200],//用于算出css left的隨機(jī)值[100,200]
                bootom: "300px",//圖片最終的位置
                closeLikeTime: 6000,//關(guān)閉點贊動畫的時間
                imgCss:{
                    width: "20px",
                    height: "20px",
                    position: "absolute",
                    bottom: "100px",
                    left: "50%",
                    marginLeft: "-10px"
                }
            };
            var self = this;
            var config = $.extend({}, defaults, params);
            $(config.DomEle).append("
"); setTimeout(function () { clearInterval(time) }, config.closeLikeTime); var time = setInterval(function () { self.like_animate(config.getImgUrl, config.leftRange, config.bootom); }, 100); console.log(config) return config; }; Like.prototype.like_animate = function (getImgUrl, leftRange, bootom) { var self=this; var x = leftRange[0], y = leftRange[1]; var rand = parseInt(Math.random() * (x - y + 1) + y); var imgSrc = getImgUrl(); if (imgSrc) { var img = $(""); $(self.config.DomEle+" .likeBox").append(img); img.css(self.config.imgCss).animate({ bottom: bootom || "300px", opacity: "0", left: rand }, 3000) } else { throw new Error("getImgUrl is null") } }; new Like(); new Like({ DomEle: ".demo2", imgCss:{ width: "20px", height: "20px", position: "absolute", bottom: "100px", left: "50%", marginLeft: "100px" } }) })
組件套路(基于jQuery):
 1. 工具類函數(shù)寫在prototype上
 2. this.config = $.extend({}, defaults, this.config);//組件初始化參數(shù)賦值
 3. 組件內(nèi)部click事件:this.$changeMoneyBtn.click($.proxy(this.change_money, this));
 4. 組件與外部相關(guān)有click事件:self.config.toAdditionBtnClickCB();
function ComponentName(config) {
         var self = this;
            this.config = config;
            this.initConfig();
            this.$moneyInput = $(".moneyInput");
            this.randomMoney="";
            var ppMoney;
            var hongbaoAllRight = true;
            this.$moneyInput.on("focus", function () {
                
            });
            this.$moneyInput.on("blur", function (e) {
               
            });
            $(".toAdditionBtn").on("click", function (e) {
                self.config.toAdditionBtnClickCB();
        
            });
            $(".toAggrementLink").on("click",function () {
                self.config.toAggrementLinkCB();
            });
            this.$changeMoneyBtn.click($.proxy(this.change_money, this));
            }
        
            ComponentName.prototype.initConfig = function () {
            var defaults = ComponentName.prototype.defaults = {
                template: ""
            };
            this.config = $.extend({}, defaults, this.config);
            var config = this.config;
            var data= {
             
            }
            var html = _.template(config.template, {variable: "list"})(data);
            $("."+config.className).append(html);
            }
     
            ComponentName.prototype.change_money = function () {
                var self=this;
                this.getdata(self.randomMoney);
                this.$moneyInput.val("")
            }
            ComponentName.prototype.nicknameInputBlur = function (e) {
                var nickName = e.target.value;
            }
       

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/84413.html

相關(guān)文章

  • 初探面向對象編程之oop與設(shè)計模式

    摘要:為什么要采用面向?qū)ο缶幊探鉀Q問題更容易設(shè)計計算機(jī)程序就是為了解決人類的問題。面向?qū)ο缶幊绦枰獙I(yè)務(wù)及代碼的架構(gòu)是有一定的要求的。 1. 編程方式 我們目前的編程方式大體可以有以下三種編程方式: 順序編程 過程式編程 面向?qū)ο缶幊? 在講面向?qū)ο缶幊虝r先講一下什么是順序編程,什么是過程式編程,什么是面向?qū)ο缶幊蹋? 順序編程: 就是只用一個單線程去執(zhí)行一段代碼,執(zhí)行過程根據(jù)代碼依次從上...

    BingqiChen 評論0 收藏0
  • SegmentFault 技術(shù)周刊 Vol.32 - 七夕將至,你的“對象”還好嗎?

    摘要:很多情況下,通常一個人類,即創(chuàng)建了一個具體的對象。對象就是數(shù)據(jù),對象本身不包含方法。類是相似對象的描述,稱為類的定義,是該類對象的藍(lán)圖或原型。在中,對象通過對類的實體化形成的對象。一類的對象抽取出來。注意中,對象一定是通過類的實例化來的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 馬上就要到七夕了,離年底老媽老爸...

    李昌杰 評論0 收藏0
  • SegmentFault 技術(shù)周刊 Vol.32 - 七夕將至,你的“對象”還好嗎?

    摘要:很多情況下,通常一個人類,即創(chuàng)建了一個具體的對象。對象就是數(shù)據(jù),對象本身不包含方法。類是相似對象的描述,稱為類的定義,是該類對象的藍(lán)圖或原型。在中,對象通過對類的實體化形成的對象。一類的對象抽取出來。注意中,對象一定是通過類的實例化來的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 馬上就要到七夕了,離年底老媽老爸...

    Lyux 評論0 收藏0
  • SegmentFault 技術(shù)周刊 Vol.32 - 七夕將至,你的“對象”還好嗎?

    摘要:很多情況下,通常一個人類,即創(chuàng)建了一個具體的對象。對象就是數(shù)據(jù),對象本身不包含方法。類是相似對象的描述,稱為類的定義,是該類對象的藍(lán)圖或原型。在中,對象通過對類的實體化形成的對象。一類的對象抽取出來。注意中,對象一定是通過類的實例化來的。 showImg(https://segmentfault.com/img/bVTJ3H?w=900&h=385); 馬上就要到七夕了,離年底老媽老爸...

    AaronYuan 評論0 收藏0
  • 再和“面向對象”談戀愛 - 面向對象編程概念(三)

    摘要:說到底面向?qū)ο蟛攀浅绦蛘Z言的根本。其實面向?qū)ο缶幊陶f的就是自定義對象。里并沒有類的概念,所以嚴(yán)格上來講這是個假的面向?qū)ο罄锏拿嫦驅(qū)ο缶幊态F(xiàn)在好了,終于聽到別人鄙視我們了,給我們提供了類這個概念,其實是向傳統(tǒng)語言更靠齊了。 通過前兩篇文章,我們了解了對象的概念以及面向?qū)ο罄锏南嚓P(guān)概念等知識,那前面說了對象分類里的前兩種,這篇文章要詳細(xì)去說第三種自定義對象,那真正的好戲這就來了! 面向?qū)ο?..

    Cruise_Chan 評論0 收藏0
  • 編程范式與函數(shù)式編程

    摘要:聲明式編程一種編程范式,與命令式編程相對立。常見的聲明式編程語言有數(shù)據(jù)庫查詢語言,正則表達(dá)式邏輯編程函數(shù)式編程組態(tài)管理系統(tǒng)等。函數(shù)式編程,特別是純函數(shù)式編程,嘗試最小化狀態(tài)帶來的副作用,因此被認(rèn)為是聲明式的。 編程范式與函數(shù)式編程 一、編程范式的分類 常見的編程范式有:函數(shù)式編程、程序編程、面向?qū)ο缶幊獭⒅噶钍骄幊痰?。在面向?qū)ο缶幊痰氖澜?,程序是一系列相互作用(方法)的對象(Class...

    noONE 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<