javascript字体颜色控件的开发 JS实现字体控制


Posted in Javascript onNovember 27, 2017

我们在用JS写程序的时候,经常会遇到像在程序中直接控制字体的大小颜色等基本信息,尤其的在后台方便,小编测试用javascript写了一个这个控件,喜欢的拿走吧。

javascript字体颜色控件的开发 JS实现字体控制

以上就是用JS写的运行效果,一下我们来看看代码具体实现方式:

知识点:for循环语句,字符串方法,进制转换,this指向问题,变量,数组方法,基本事件处理等。

<!doctype html><!--声明html版本编写指令 H5-->
<html>
  <head>
    <!--声明页面编码 uft-8 国际编码-->
    <meta charset="UTF-8">
    <!--网站三要素 关键字 页面描述 标题-->
    <meta name="Keywords" content="">
    <meta name="Description" content="">
    <title>Document</title>
    <style type="text/css">
    *{margin:0px;padding:0px;font-family:"微软雅黑";}
  #box{width:400px;
    height:450px;
    background:#000;
    margin:50px auto;
    border:5px
solid #000;
    border-radius:5px;
    }
  #show{width:100%;
     height:190px;
     background:#00ccff;
     line-height:200px;
     font-size:8px;
     font-weight:bold;
     text-align:center;
     border-radius:5px;
    }
  #font ul{margin-left:10px;
      margin-top:30px;}
  #font ul li{width:380px;
        height:50px;
        list-style-type:none;
        color:#ddd;}
  #font ul li span{display:block;
          width:50px;
          height:50px;
          line-height:50px;
          text-align:right;
          float:left;
          }
  #font ul li .roll{width:290px;
          height:50px;
          float:left;
          line-height:50px;
          padding-left:30px;
          }
  #font ul li .roll .move{width:200px;
              height:12px;
              display:inline-block;
              background:#fff;
              margin-left:15px;
              margin-right:15px;
              border-radius:10px;
              background-size:cover;
              border:1px solid #fff;
              position:relative;
              }
  #font ul li .roll .move .prog{position:absolute;
                top:0px;
                width:0px;
                height:12px;
                border-radius:10px 0 0 10px;
                background:url("images/slider-bar.png") bottom;}
  #font ul li .roll .move .prog .but{width:22px;
                   height:22px;
                   position:absolute;
                   top:-3px;
                   background:url("images/dot-bg.png") no-repeat;
                   cursor:pointer;
                   left:0px;}
    </style>
  </head>
  <body>
  <div id="box">
    <div id="show">云烟好帅啊</div>
    <div id="font">
      <ul>
        <li>
          <span>字号</span>
          <div class="roll">
            8
              <div class="move">
                <div class="prog">
                  <div class="but"></div>
                </div>
              </div>
            40px
          </div>
        </li>
        <li>
          <span>颜色R</span>
          <div class="roll">
            0
              <div class="move">
                <div class="prog">
                  <div class="but"></div>
                </div>
              </div>
            255
          </div>
        </li>
        <li>
          <span>G</span>
          <div class="roll">0
              <div class="move">
                <div class="prog">
                  <div class="but"></div>
                </div>
              </div>
            255
          </div>
        </li>
        <li>
          <span>B</span>
          <div class="roll">
          0
<div class="move">
                <div class="prog">
                  <div class="but"></div>
                </div>
              </div>
            255
          </div>
        </li>
      </ul>
    </div>
  </div>
  </body>
  <script type="text/javascript">
  /*
    1.JS主要针对页面当中的HTML元素以及样式进行修改,从而得到特效
    2.我们一般用JS写特效,要知道触发特效的条件是什么
    3.促发这个条件的对象是谁
    4.写这个事件里面发生的事情
    5.获取鼠标的移动水平方向的距离
    6.this代表当前执行这个事件的对象
    (这个事件是谁做的 那么这个事件当中的this就是谁)
  */
  var oBut =document.getElementsByClassName("but");//通过元素的类名 是以一个数组的形式保存
  var oFont =document.getElementById("show");//通过ID名获取元素
  var oProg =document.getElementsByClassName("prog");
  var width = [0,0,0,0];
  var rgb = ["00","00","00"];
  for (var i=0;i<oBut.length;i++)//重复执行某一个语句(循环体)限制条件
  {
    oBut[i].index=i;//自定义一个index属性保存i
    oBut[i].onmousedown =function(e){//鼠标点击下去
      //event事件对象 clientX clientY
      var e = e || window.event;//做IE兼容
      this.x =e.clientX;//当前对象的属性去保存这个值(自定义一个x属性)
      var thisIndex = this;//定义一个变量保存this指向对象
      var lastLeft = width[this.index];
      //console.log("鼠标点击下去");
      document.onmousemove =function(e){//鼠标移动事件
        //console.log("鼠标移动事件");
        var e = e || window.event;//做IE兼容
        width[thisIndex.index] =e.clientX-thisIndex.x+lastLeft;
        if (width[thisIndex.index]>180)width[thisIndex.index]=180;
        if (width[thisIndex.index]<0)width[thisIndex.index]=0;     
        oBut[thisIndex.index].style.left =width[thisIndex.index]+"px";
        oProg[thisIndex.index].style.width =width[thisIndex.index]+"px";
        if (thisIndex.index ==0)
        {
oFont.style.fontSize =width[thisIndex.index]/180*40+8+"px";
          //驼峰命名法
        }else{
          var num = parseInt(width[thisIndex.index]/180*255);
          /*if (num<16)
          {
            numStr ="0"+num.toString(16);
          }else{
            numStr = num.toString(16);
          }*/
rgb[thisIndex.index-1] =num<16?"0"+num.toString(16):num.toString(16);
oFont.style.color ="#"+rgb[0]+rgb[1]+rgb[2];
        }
      }
document.onmouseup =function(){//鼠标松开事件
//console.log("鼠标松开事件");
this.onmousemove =null;//终止移动事件
this.onmouseup =null;//终止鼠标松开事件
      }
    }
  }
</script>
</html>
Javascript 相关文章推荐
菜鸟javascript基础资料整理3 正则
Dec 06 Javascript
jQuery操作input type=radio的实现代码
Jun 14 Javascript
chrome下jq width()方法取值为0的解决方法
May 26 Javascript
实例剖析AngularJS框架中数据的双向绑定运用
Mar 04 Javascript
Bootstrap网格系统详解
Apr 26 Javascript
Bootstrap的modal拖动效果
Dec 25 Javascript
原生JS实现图片懒加载(lazyload)实例
Jun 13 Javascript
JavaScript的六种继承方式(推荐)
Jun 26 Javascript
详解vue axios中文文档
Sep 12 Javascript
js获取文件里面的所有文件名(实例)
Oct 17 Javascript
Node.js API详解之 net模块实例分析
May 18 Javascript
如何使用原生Js实现随机点名详解
Jan 06 Javascript
vue购物车插件编写代码
Nov 27 #Javascript
Vue.js devtool插件安装后无法使用的解决办法
Nov 27 #Javascript
微信小程序页面跳转功能之从列表的item项跳转到下一个页面的方法
Nov 27 #Javascript
vue2实现可复用的轮播图carousel组件详解
Nov 27 #Javascript
让bootstrap的carousel支持滑动滚屏的实现代码
Nov 27 #Javascript
微信小程序列表渲染功能之列表下拉刷新及上拉加载的实现方法分析
Nov 27 #Javascript
vue2.0使用swiper组件实现轮播效果
Nov 27 #Javascript
You might like
一个PHP缓存类代码(附详细说明)
2011/06/09 PHP
php学习笔记 [预定义数组(超全局数组)]
2011/06/09 PHP
php标签云的实现代码
2012/10/10 PHP
php接口和抽象类使用示例详解
2014/03/02 PHP
PHP正则删除HTML代码中宽高样式的方法
2017/06/12 PHP
PHP数据库操作三:redis用法分析
2017/08/16 PHP
PHP使用ActiveMQ实现消息队列的方法详解
2019/05/31 PHP
PHP数据源架构模式之表入口模式实例分析
2020/01/23 PHP
jquery()函数的三种语法介绍
2013/10/09 Javascript
JS两种定义方式的区别、内部原理
2013/11/21 Javascript
jquery链式操作的正确使用方法
2014/01/06 Javascript
jquery中 $.expr使用实例介绍
2014/06/09 Javascript
JSON格式的键盘编码对照表
2015/01/29 Javascript
Javascript获取表单名称(name)的方法
2015/04/02 Javascript
JavaScript实现表格点击排序的方法
2015/05/11 Javascript
简介JavaScript中用于处理正切的Math.tan()方法
2015/06/15 Javascript
AngularJs表单验证实例代码解析
2016/11/29 Javascript
CentOS 安装NodeJS V8.0.0的方法
2017/06/15 NodeJs
AngularJS基于MVC的复杂操作实例讲解
2017/12/31 Javascript
vue3.0 CLI - 3.2 路由的初级使用教程
2018/09/20 Javascript
解决vue A对象赋值给B对象,修改B属性会影响到A的问题
2018/09/25 Javascript
生产制造追溯系统之再说条码打印
2019/06/03 Javascript
使用TS来编写express服务器的方法步骤
2020/10/29 Javascript
基于javascript实现移动端轮播图效果
2020/12/21 Javascript
[08:54]DOTA2-DPC中国联赛 正赛 Aster vs LBZS 选手采访
2021/03/11 DOTA
Python Deque 模块使用详解
2014/07/04 Python
深入分析python中整型不会溢出问题
2018/06/18 Python
Linux系统(CentOS)下python2.7.10安装
2018/09/26 Python
python3.5 cv2 获取视频特定帧生成jpg图片
2019/08/28 Python
Python使用APScheduler实现定时任务过程解析
2019/09/11 Python
Matplotlib 折线图plot()所有用法详解
2020/07/28 Python
Python使用requests模块爬取百度翻译
2020/08/25 Python
跑鞋、网球鞋、网球拍、服装及装备:Holabird Sports
2016/09/19 全球购物
奥地利汽车配件店:Pkwteile.at
2017/03/10 全球购物
Desigual德国官网:在线购买原创服装
2018/03/27 全球购物
临床医师专业个人自我评价范文
2013/11/07 职场文书