预览效果:

实现代码:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<script src="../JavaScript/JQuery/jquery-3.3.1.min.js"></script>
<title>Document</title>
<style>
#container{
height: 300px;
text-align: center;
border:2px solid orange;
}
button{
width: 104px;
height: 30px;
color: white;
background-color: darkcyan;
font-size: 16px;
box-shadow: 1px 1px 3px salmon;
margin-right: 20px;
}
#btn{
position: absolute;
top: 269px;
left: 50%;
margin-left: -260px;
}
</style>
</head>
<body>
<div id="container">
<pre style="font-size:20px;">
图解TCP/IP TN915.04/148
TCP/IP illustrated. TCP/IP详解 .卷1 : 协议 TN915.04/E11
JSON必知必会:a to-the-point guide to JSON TP312JA/1108
JavaScript设计模式 TP312JA/1144
React全栈:Redux+Flux+webpack+Babel整合开发 TP312JA/1201
React与Redux开发实例精解 TP312JA/1220
Node.js开发实战 TP312JA/1350
Ajax经典案例开发大全 TP393.09/106/AB1
</pre>
<div id="btn">
<button id="bigger">增加字号</button>
<button id="smaller">减小字号</button>
<button class="bigger">JQ增加字号</button>
<button class="smaller">JQ减小字号</button>
</div>
</div>
<Script>
//原生js
var biggerBtn = document.getElementById("bigger");
var smallerBtn = document.getElementById("smaller");
var txt = document.getElementsByTagName("pre")[0];
// var fontSizeNum = document.defaultView.getComputedStyle(txt,null).fontSize.slice(0,-2);
// console.log(fontSizeNum);
function addSize(){
var fontSizeNum = document.defaultView.getComputedStyle(txt,null).fontSize.slice(0,-2);
var newSize = new Number(fontSizeNum);
var newSizeNum = newSize + 2;
if(newSizeNum <= 40){
txt.style.fontSize = newSizeNum + "px";//应该用slice(2)来获取,因为单位不一定是px,这里偷个懒
console.log(newSizeNum);
}else{
alert("超出限制!");
}
}
function reduceSize(){
var fontSizeNum = document.defaultView.getComputedStyle(txt,null).fontSize.slice(0,-2);
var newSize = new Number(fontSizeNum);
var newSizeNum = newSize - 2;
//应该用slice(2)来获取单位,因为单位不一定是px,这里偷个懒
if(newSizeNum >= 12){
txt.style.fontSize = newSizeNum + "px";
console.log(newSizeNum);
}else{
alert("超出限制!");
}
}
biggerBtn.addEventListener("click",addSize,false);
smallerBtn.addEventListener("click",reduceSize,false); //JQuery
$(".bigger,.smaller").click(function(){
var jqFontSize = $("pre").css("font-size").slice(0,-2);
var unit = $("pre").css("font-size").slice(2);
console.log(jqFontSize,unit);//字符串格式的数据与其单位
var jqFontSizeNum = parseInt(jqFontSize,10);
var cName = $(this).attr("class");
if(cName == "bigger"){
jqFontSizeNum += 2;
}else{
jqFontSizeNum -= 2;
};
$("pre").css("font-size",jqFontSizeNum + unit);
})
</Script>
</body>
</html>

jquery与原生JS实现增加、减小字号功能的更多相关文章

  1. 通过案例来剖析JQuery与原生JS

    首先来个例子: 我们在登陆或者注册一些网站时,如果某一项点过了但没填,鼠标移走后是不是经常看到网站有相应的红色字体提示呢? 那下面我们就以这个为例来剖析下jQuery和原生JS的一些区别,来上代码: ...

  2. jQuery与原生js实现banner轮播图

    jQuery与原生js实现banner轮播图: (jq需自己加载)(图片需自己加载) <!DOCTYPE html> <html> <head> <meta ...

  3. 通过游戏认识 --- JQuery与原生JS的差异

      前言 jQuery是一个快速.简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库( 或JavaScript框架).jQuery设计的宗旨是“write ...

  4. 原生JS的使用,包括jquery和原生JS获取节点、jquery和原生JS修改属性的比较

    一.前言 相比于JS这条直达终点.满是荆棘的小路,jquery无疑是康庄大道了,足够的简洁.易用给了它辉煌的地位.然而,毕竟是绕着道的插件,当小路走着走着变成大路的时候,曾经的大路也就失去了他自身的优 ...

  5. 原生JS实现简单留言板功能

    原生JS实现简单留言板功能,实现技术:css flex,原生JS. 因为主要是为了练手js,所以其中布局上的一些细节并未做处理. <!DOCTYPE html> <html lang ...

  6. 用jQuery基于原生js封装的轮播

    我发现轮播在很多网站里面都用到过,一个绚丽的轮播可以为网页增色不少,最近闲来无事,也用原生js封装了一个轮播,可能不像网上的插件那么炫,但是也有用心去做.主要用了闭包的思想.需要传递的参数有:图片地址 ...

  7. JQuery和原生JS跨域加载JSON数据或HTML。

    前提:有时候需要在网页上,加载另一个网站上的数据.或者加载另一个网站上的一个页面.Js的Ajax请求不具备跨域功能,可以使用JQuery来实现. 网页端JS代码: $(function () { $. ...

  8. 类似jQuery的原生JS封装的ajax方法

    一,前言: 前文,我们介绍了ajax的原理和核心内容,主要讲的是ajax从前端到后端的数据传递的整个过程. Ajax工作原理和原生JS的ajax封装 真正的核心就是这段代码: var xhr = ne ...

  9. jQuery和原生JS的对比

    原生JS的缺点: 不能添加多个入口函数(window.onload),如果添加了多个,后面的会把前面的覆盖掉 原生js的api名字太长,难以书写,不易记住 原生js有的代码冗余 原生js中的属性或者方 ...

随机推荐

  1. noj二分查找

    二分查找: 要么左边,要么右边,哈哈哈哈 描述 给定一个单调递增的整数序列,问某个整数是否在序列中.   输入 第一行为一个整数n,表示序列中整数的个数:第二行为n(n不超过10000)个整数:第三行 ...

  2. mysql数据库的基本操作命令整理

    快捷键 ctrl+l 清屏 ctrl +a 回到行首 ctrl + e 回到行末   数据库操作 进入数据库 方式1 mysql -u用户名 -p 密码 --------直接输入密码,缺点,会暴露自己 ...

  3. [LeetCode&Python] Problem 925. Long Pressed Name

    Your friend is typing his name into a keyboard.  Sometimes, when typing a character c, the key might ...

  4. jquery中filter的用法

    一.filter的参数类型可分为两种 1.传递选择器 $('a').filter('.external') 2.传递过滤函数 $('a').filter(function(index) {       ...

  5. [转] Linux运维常见故障排查和处理的技巧汇总

    作为linux运维,多多少少会碰见这样那样的问题或故障,从中总结经验,查找问题,汇总并分析故障的原因,这是一个Linux运维工程师良好的习惯.每一次技术的突破,都经历着苦闷,伴随着快乐,可我们还是执着 ...

  6. JS效果

    多标签页效果 tab切换 <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset ...

  7. 在linux中编译grpc

    环境: centos_7_x86_x64 一.下载 1)下载grpc源代码:grpc-1.2.0.zip 2)下载grpc依赖库: 1)benchmark-master.zip 2)boringssl ...

  8. jsp案例--展示数据库中的数据

    一.什么是jsp? JAVA SERVER PAGES java的动态网页,servlet用来获取数据处理业务,擅长处理与java代码有关的内容.jsp展示数据,擅长处理与html有关的内容. 二.如 ...

  9. Codeblocks中文乱码解决方法

    odeblocks中文乱码解决方法: 特别提示:出现中文乱码情况才执行以下操作,未出现请勿随意修改!!!! 打开Codeblocks -> 设置 -> 编辑器: 然后点击 Encoding ...

  10. bootstrap 模态框事件

    事件 描述 实例 show.bs.modal 在调用 show 方法后触发. $('#identifier').on('show.bs.modal', function () { // 执行一些动作. ...