javascript同页面组件复用
大家讲道理
大家讲道理 2017-04-11 11:32:21
[JavaScript讨论组]

关于页面模块,比如以下这种颜色选择模块怎么在同一页面重用?

html:


                        

答案一

文字:

背景色

文字色

透明度:

75%

颜色:

红:

绿:

蓝:

答案二

文字:

背景色

文字色

透明度:

75%

颜色:

红:

绿:

蓝:

javascript:

var color = {
        init: function() {
            this.initColor();
            this.render();
        },
        render: function(){    
            var $square = $(".square");
            var $squareLi = $square.find("li");
            var $coloroption = $(".coloroption");
            $squareLi.click(function(){
                //获取颜色
                var color = $(this).css("backgroundColor");
                var rgb=color.replace(/[rgb()\s]/g,'').split(",");
                //设置滑块位置
                $(".red")[0].value=rgb[0];
                $(".green")[0].value=rgb[1];
                $(".blue")[0].value=rgb[2];
                //设置所选颜色
                $(this).addClass("active").siblings().removeClass("active");
                $(".bgcolor").hasClass("active")?$("#bgcolorbar").css("background-color",color):$("#fontcolorbar").css("background-color",color);
                
            })
            //背景色、文字色选项
            $coloroption.click(function(){
                $coloroption.removeClass("active");
                $(this).addClass("active");
            })
            $(".rgba").find("input[type=range]").change(function(){
                //获取变化后颜色
                var red=$(".red")[0].value;
                var green=$(".green")[0].value;
                var blue=$(".blue")[0].value;
                var transparency=$("#opacity")[0].value;
                var opacity=Math.round((100-transparency)/10)/10;
                var rgba="rgba("+red+","+green+","+blue+","+opacity+")";
                //设置颜色和值
                console.log(opacity);
                $("#transparency").html(transparency+"%")
                $(".bgcolor").hasClass("active")?$("#bgcolorbar").css("background-color",rgba):$("#fontcolorbar").css("background-color",rgba);
            })
        },
        initColor: function() {
            var color = ["fff", "000", "595959", "f14646", "e95731", "f6bb43", "8cc051", "3baeda", "36bc9b", "3baeda", "967bdc", "f22874", "abda3b", "7bdcab", "6a37ee", "3bda5d", "36bc9b", "40535a", "503b87", "7cd0f0", "da3bb3"];
            $.each(color.reverse(), function(index, value) {
                var $li = $("
  • "); $li.css({ "background-color": "#" + value, }).prependTo(".square ul") }); //初始化透明度 $("#opacity")[0].value = 0; $("#opacity").prev().html("0%") //初始化颜色值 $(".red")[0].value=255; $(".green")[0].value=255; $(".blue")[0].value=255; //初始化所选颜色 $(".square").find("li").eq(0).addClass("active") }, } color.init()
    大家讲道理
    大家讲道理

    光阴似箭催人老,日月如移越少年。

    全部回复(3)
    天蓬老师

    如果 HTML 已经存在了,可以用 jQuery 的 Clone,示例如下

    https://jsfiddle.net/v0xhhves/

    不过,注意 ID 需要唯一,所以要么在产生 HTML 的时候就不要ID,要么在 clone DOMS 之后修改ID

    天蓬老师

    用面向对象和编程的思路写成类。

    迷茫

    谢谢邀请。其实就是把这个模块单独提取出来封装成公共的引用。你可以把对应的色块写成一个小文件引用,或者写成一个js的方法引用。都可以的。仅提供思路希望能帮到你

    热门教程
    更多>
    最新下载
    更多>
    网站特效
    网站源码
    网站素材
    前端模板
    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送
    PHP中文网APP
    随时随地碎片化学习

    Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号