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 相关文章推荐
基于jquery的地址栏射击游戏代码
Mar 10 Javascript
js 控制图片大小核心讲解
Oct 09 Javascript
检查输入的是否是数字使用keyCode配合onkeypress事件
Jan 23 Javascript
纯js写的分页表格数据为json串
Feb 18 Javascript
jQuery表格列宽可拖拽改变且兼容firfox
Sep 03 Javascript
js实现图片和链接文字同步切换特效的方法
Feb 20 Javascript
bootstrap table复杂操作代码
Nov 01 Javascript
jQuery常见的选择器及用法介绍
Dec 20 Javascript
简单实现js轮播图效果
Jul 14 Javascript
Angular弹出模态框的两种方式
Oct 19 Javascript
vue百度地图 + 定位的详解
May 13 Javascript
小程序实现搜索框
Jun 19 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
很温暖很温暖的Lester Young
2021/03/03 冲泡冲煮
PHP Session_Regenerate_ID函数双释放内存破坏漏洞
2011/01/27 PHP
PHP文件大小格式化函数合集
2014/03/10 PHP
php商品对比功能代码分享
2015/09/24 PHP
几行代码轻松实现PHP文件打包下载zip
2017/03/01 PHP
php-msf源码详解
2017/12/25 PHP
PHP Swoole异步MySQL客户端实现方法示例
2019/10/24 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
2019/11/25 PHP
PHP实现页面静态化深入讲解
2021/03/04 PHP
获取任意Html元素与body之间的偏移距离 offsetTop、offsetLeft (For:IE5+ FF1 )[
2006/12/22 Javascript
JQuery获取元素文档大小、偏移和位置和滚动条位置的方法集合
2010/01/12 Javascript
JavaScript学习笔记(十)
2010/01/17 Javascript
IE8 中使用加速器(Activities)
2010/05/14 Javascript
JavaScript中使用document.write向页面输出内容实例
2014/10/16 Javascript
JavaScript编写推箱子游戏
2015/07/07 Javascript
vue2 自定义动态组件所遇到的问题
2017/06/08 Javascript
angularJs提交文本框数据到后台的方法
2018/10/08 Javascript
vue 实现搜索的结果页面支持全选与取消全选功能
2019/05/10 Javascript
[00:58]2016年国际邀请赛勇士令状宣传片
2016/06/01 DOTA
用Python制作检测Linux运行信息的工具的教程
2015/04/01 Python
pandas 使用apply同时处理两列数据的方法
2018/04/20 Python
用python处理图片实现图像中的像素访问
2018/05/04 Python
使用Anaconda3建立虚拟独立的python2.7环境方法
2018/06/11 Python
解决python写入mysql中datetime类型遇到的问题
2018/06/21 Python
python3 实现一行输入,空格隔开的示例
2018/11/14 Python
python提取具有某种特定字符串的行数据方法
2018/12/11 Python
Python实现某论坛自动签到功能
2019/08/20 Python
python字典排序的方法
2019/10/12 Python
python opencv实现图片缺陷检测(讲解直方图以及相关系数对比法)
2020/04/07 Python
Python爬虫实战案例之爬取喜马拉雅音频数据详解
2020/12/07 Python
HTML5新增的Css选择器、伪类介绍
2013/08/07 HTML / CSS
美国眼镜网站:EyeBuyDirect
2017/04/13 全球购物
科颜氏英国官网:Kiehl’s英国
2019/11/20 全球购物
同事吵架检讨书
2014/02/05 职场文书
党课培训主持词
2014/04/01 职场文书
2015年小学生国庆节演讲稿
2015/07/30 职场文书