- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在下面的代码中,当在 li
上传递和移除鼠标(mouseover
和 mouseout
)时,我只想更改li
对应的元素,在本例中,li
中的标签 a
和 i
,在与代码的 CSS 发生的方式相同(标签 i
的背景和颜色随着悬停而改变)。我现在遇到的问题是,当我触发事件时,不是仅仅更改 li
中当前鼠标所在的元素,而是所有元素都会立即受到影响。
codepen上的完整代码: http://codepen.io/RaoniSousa/pen/wJqdNP
function abc() {
var liB = document.querySelectorAll('li')
, liBArray = Array.prototype.slice.call(document.querySelectorAll('li'))
, icons = document.querySelectorAll('li i')
, iconsArray = Array.prototype.slice.call(document.querySelectorAll('li i'));
//MOUSEOVER
function changeI() {
'use strict';
if (iconsArray.length) {
for (var i = 0; i < icons.length; i++) {
iconsArray[i].style.fontSize = '2em';
}
}
}
//MOUSEOUT
function backI() {
'use strict';
if (iconsArray.length) {
for (var i = 0; i < icons.length; i++) {
iconsArray[i].style.fontSize = '1em';
}
}
}
if (liBArray.length) {
for (var i = 0; i < liB.length; i++) {
liBArray[i].addEventListener("mouseover", changeI);
liBArray[i].addEventListener("mouseout", backI);
}
}
}
abc();
最佳答案
您不需要使用 javascript 来实现您想要实现的目标。这一切都可以使用 css 来完成。并且您的 javascript 工作正常,它一次只影响一个 li,但是因为您添加 css 的方式影响了整个 ul
部分的设计。
工作示例,没有 JS
* {
font-family: sans-serif;
margin: 0 auto;
box-shadow: border-box;
position: relative;
}
body {
left: 0;
right: 0;
margin: 0;
background: #898989;
}
#container {
width: 1030px;
}
a {
text-decoration: none!important;
outline: 0!important;
border: 0!important
}
a:hover {
text-decoration: none;
outline: 0!important;
border: 0!important
}
li {
list-style: none
}
img {
left: 0;
width: 100%;
height: auto
}
footer {
width: 100%;
height: 13em;
background-color: #a8a8a8;
text-align: center;
font-size: 1.4em;
font-weight: 700;
color: #e0e0e0
}
#footFlex {
width: 80%;
display: flex;
}
#footFlex > div:not(p){
margin-top: 6%!important
}
#footFlex ul {
display: flex;
margin-right: 40px;
width: 100%;
}
#footFlex .socialLinks li a {
border: 2px solid #fff !important;
border-radius: 50%;
padding: 10px;
margin: 2px 4px;
cursor: pointer;
transition: all .5s;
font-size: 1em;
}
#footFlex .socialLinks li a:hover{
background-color: #fff;
font-size: 2em;
}
#footFlex li:hover i{
color: #722872;
}
#footFlex li i:hover{
background-color: transparent;
}
#footFlex li i{
transition: all .5s;
color: #fff
}
#footFlex div:first-child p:nth-child(2){
width: 65%;
left: 17.5%
}
#footFlex div p:nth-child(1){
font-size: 1.3em
}
#footFlex div:first-child p:nth-child(2) a{
color: #722872;
font-weight: 400;
}
#footFlex div:first-child p:nth-child(2) a:hover {
border-bottom: 2px solid #722872!important
}
#footFlex div:first-child p:first-child, #footFlex div:nth-child(2) p:first-child {
margin-bottom: 1em
}
footer + div {
height: 5.6em;
background-color: #722872;
font-size: 1.4em;
font-weight: 700;
color: #e0e0e0;
line-height: 5.6em;
text-align: center
}
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<link rel="stylesheet prefetch" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="FreeCodeCamp.css">
</head>
<body id="about" data-spy="scroll" data-target=".navbar" data-offset="50">
<footer>
<div id="footFlex">
<div>
<p>ABOUT THIS PAGE</p>
<p>Made with <i class="fa fa-fw fa-music"></i> and <i class="fa fa-fw fa-coffee"></i> by <a href="">Justin Sane.</a></p>
</div>
<div>
<p>AROUND THE WEB</p>
<ul class="socialLinks">
<li><a rel="nofollow" class="button social" href="https://www.linkedin.com/in/hallaathrad"><i class="fa fa-fw fa-linkedin"></i></a></li>
<li><a rel="nofollow" class="button social" href="https://github.com/hallaathrad"><i class="fa fa-fw fa-github"></i></a></li>
<li><a rel="nofollow" class="button social" href="https://twitter.com/hallaathrad"><i class="fa fa-fw fa-twitter"></i></a></li>
<li><a rel="nofollow" class="button social" href="https://www.flickr.com/photos/hallaathrad/" title="My Flickr"><i class="fa fa-fw fa-flickr"></i></a></li>
</ul>
</div>
</div>
</footer>
<div>qlip © 2017. All Rights Reversed</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src="Javascript.js"></script>
</body>
</html>
JSbin 网址 https://jsbin.com/lahuvi/edit?html,output像这样的事情最好使用 css。
关于javascript - 当触发一个数组元素上的事件时(with querySelectorAll)触发他内部另一个数组的元素(也with querySelectAll),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42794001/
我有以下内容: var searchSuggestionsItems = document.querySelectorAll("#search-user-results .live-search-re
我正在尝试查找具有以下内容的元素: doc.querySelectorAll('#divContentList article'); 它运行良好,但另一位开发人员告诉我我应该写: doc.queryS
尝试在错误控制台中执行这 2 个代码块: 第一个。输出节点列表。 var selector = "*[data-type=day][data-day='23']"; var a = document.
这是我的 JavaScript 代码: function answer(){ var list = document.querySelectorAll("#fish"); list[1].onclic
假设我有: ... ... ... ... ... ... ... 如何选择 元素,但仅限于 testimonials-wrapper 内的元素 尝试过:d
我创建了一个表,我们将其命名为 RPT_ACCOUNTS 代码|描述|类型01|银行|BA02|税|TA 当我从数据表中提取信息时,我会在 html 中直观地创建表格 row.dataset.rpt_
document.querySelectorAll('#salary-min, #salary-max').addEventListener('input', event => event.tar
这个问题已经有答案了: What do querySelectorAll and getElementsBy* methods return? (12 个回答) 已关闭 2 年前。 javaScrip
为了简单起见,我有以下 html,它不是我编写的,我无法控制。 我正在尝试为我们的职员编写一个脚本,该脚本必须将数据输入到此 Web 界面,以便她可以将数据从 Excel 复制并粘贴到 Web
我的代码有问题。现在,如果我单击第一个元素,所有元素将变为红色,如果我第二次单击它们将变为绿色。我想为 fa-heart 类的每个元素设置两个独立的事件。我会更好地解释:如果我第一次点击第一个元素 D
我已经创建了简单的 html 表单,我想使用 javascript 为输入字段标签设置动画。我使用 querySellectorAll 方法来识别对象,并使用控制台记录 querySelectorAl
我目前正在尝试适应this demo当您单击应用了相同类的链接时,用于页面转换。 我不确定如何在使用 querySelectorAll 后为具有相同类的所有元素调整以下代码。您认为应该进行哪些调整才能
我目前正在尝试适应this demo当您单击应用了相同类别的链接时,可以实现页面转换。目前,在 @ourmaninamsterdam 的推荐 here 后,我有以下代码:但我似乎无法让它发挥作用。您对
var arr = [].slice.call(document.querySelectorAll("a[href*='pricing']")); 返回一个长度为6的数组。 var arr = [].
我在 querySelectorAll 方面遇到问题。 这是我的代码: $(window).load( function() { // Add animations
在 JavaScript 中使用 :checked 选择器 document.querySelectorAll() 时,我发现存在不一致的行为。当 :checked 选择器用于复选框或单选按钮时,它不
我有一个表单,其中有多个选择框和带有类似名称的数组的输入。所以我有多个名称为 personroom[] 的选择框。我想用这个得到这些 var personroom=document.querySel
不确定这是否是导致我的项目出现错误的原因。 所以我有一堆具有相同类的 div,我通过选择它们 var CampaignInfo = document.querySelectorAll(".campai
假设我有以下标记... 无论如何,我可以使用 querySelectorAll 选择它们吗? 我尝试过 document.querySelectorAll([data-namespace-*])
我想使用 querySelectorAll 获取页面上多个下拉列表的选定值,然后将它们打印在页面上的其他位置。 我正在努力寻找正确的方法来执行此操作,因为它们都有不同的名称(“dropDown[0]”
我是一名优秀的程序员,十分优秀!