javascript - jquery制作放大缩小文字的按钮

标签 javascript jquery html css button

我已经在这里回答了几个类似的问题,但是由于我对 JavaScript 比较陌生,对 JQuery 也是全新的,所以我真的不知道我在做什么 :D

所以我的任务是制作两个带有文本的 div:

<div id = "changeable" class = "normal">
    <p>Blah blah blah blah blah blah blah</p>
</div>
<div id = "staysSame">
    <p>Bloo bloo bloo bloo bloo bloo bloo bloo bloo</p>
</div>

然后我应该制作两个带有事件处理程序的按钮,这些事件处理程序使用 JQuery/JavaScript/CSS 更改字体大小

<input type = "button" onclick = "button1Click()" id = "button1" value = "Enlarge"></input>
<input type = "button" onclick = "button2Click()" id = "button2" value = "Shrink"></input>

我应该为每种字体大小制作一个 CSS 页面(这正是我需要的,除了确切的字体大小)

.large{
    font-size: 20pt;
}
.normal{
    font-size: 14pt;
}
.small{
    font-size: 10pt;
}

因为我是 JQuery 的新手,所以我大部分时间都不知道如何使用它。所以现在我只有一些不起作用的 JavaScript。这并不奇怪,因为我对 JS 也不太了解 wooooo

var large = GetElementByClassName("large");
var normal = GetElementByClassName("normal");
var small = GetElementByClassName("small");

function button1Click(){
    normal.style.fontsize = large.style.fontsize;
}
function button2Click(){
    normal.style,.fontsize = small.style.fontsize;
}

感谢所有的帮助!

最佳答案

1) 没有名为“GetElementByClassName”的 JS 方法 - 有 getElementsByClassName()getElementById()。注意方法名称 - 它们区分大小写并且容易混淆。

当您想要返回单个唯一元素时使用“Id”(因为 ID 在页面上应该是唯一的,对吧?),以及“elements(复数)”ByClassName 返回具有该特定类的每个元素 - 可以是一页上有 1000 件事。

2) 您还没有将“大”或“小”CSS 类应用到 HTML 中的 div。 JS/jQuery 查看 HTML“文档对象模型”及其包含的内容。它不知道也不关心 CSS 文件,这似乎是您处理它的方式。在您首先将该类应用于文档中的元素之前,尝试获取带有这些类名的元素不会返回任何您可以使用的内容。

您可以在 HTML 中对其进行硬编码,就像您通过将 class="normal" 添加到第一个 div 所做的那样...或者您可以添加/删除/切换类动态 with jQuery:

$("#button1").click(function(){
   //play w/toggleClass() as well as chaining multiple jQuery methods
   //like .addClass() and .removeClass() to get the effect you want
   //read the jQuery documentation for examples & details.    

    $("#changeable").toggleClass(normal small); 

});

这种方法非常适合将 JS、CSS 和 HTML 分开。正如您已经注意到的,直接访问 .style 或使用 .css() 方法等替代方案往往会混淆。

3) 使用像“onclick()”这样的内联 JS 处理程序很容易,但是这种做法已经过时了,因为维护起来很痛苦(想象一个带有 100 个按钮的 HTML 页面,然后您需要更改所有按钮。 ..).首选方法是使用事件监听器。

借助 jQuery,您可以使用:

$(".yourClassName").on('click', function() {//dostuff here});

或者快捷方法 .click(someFunction()) 做同样的事情。

4) 您知道如何使用控制台或在 Firebug 等检查器中设置断点来检查/调试您的代码是否有错误吗?调查一下,这样您就可以找出您的代码在哪里出错,并从那里确定原因。

5) 如果您不懂 JS 或 jQuery,请阅读文档。 Mozilla Developer Network 是一个很好的 JS 资源。 jQuery 文档在这里:http://api.jquery.com/ .如果这些没有意义(他们一开始不会),有大量在线教程可以帮助解释它 - Lynda.com、Treehouse、tuts+ 等。请别人为你完成作业后复制/粘贴不会教你很多东西。如果这是您真正想学习的东西,请尝试了解事物的运作方式和原因——而不仅仅是做什么。祝你好运!

关于javascript - jquery制作放大缩小文字的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26848638/

相关文章:

javascript - 在 JSConext 的方法中传递 block

javascript搜索功能不起作用

javascript - 页面重新加载后保持菜单切换状态

html - 更改 div 宽度会导致所有内容转到 div 的底部

javascript - 获取 li 中每个单词的第一个字母

javascript - 终极版;通过 combineReducers 使用组合化简器时访问状态的其他部分

javascript - 在警报弹出之前设置自定义输入的值

javascript - 如何使用 AJAX 隐藏按钮,直到特定的 div 未显示在我的页面中?

javascript - 播放音频时显示图形

html - 最小高度为 100% 且内容垂直居中的 CSS 扩展部分