- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个搜索功能,可以做 3 件事:
1) 首先,当用户将鼠标悬停在图标上时,它应该更改图标及其周围边框的颜色:
HTML:
<div class="searchbox">
<img id="search" src="Icons/magnifier2.png"
onmouseover="this.src='Icons/magnifier.png'"
onmouseout="this.src='Icons/magnifier2.png'"/>
</div>
CSS:
.searchbox #search {
display: inline;
border: 2px solid #c8c8c8;
position: relative;
height: 20px;
width: 20px;
float: right;
padding: 4px;
border-radius: 5px;
transition: all 500ms;
}
.searchbox #search:hover {
display: inline;
border: 2px solid #808080;
position: relative;
float: right;
padding: 4px;
border-radius: 5px;
transition: all 500ms;
}
到目前为止一切顺利。在这一点上,我不确定为什么图像在悬停时根本没有应用任何过渡...有没有一种方法可以改变单个 .png 图标的颜色,而不是在两个 .png 之间来回切换?
2) 用户应该点击这个图标,然后它会展开一个新图标和一个改变的边框宽度(padding-left: 130px;)。下面是以下 jQuery 代码:
$(function () {
var search = $("#search");
search.click(function () {
search.attr("src", "Icons/magnifier.png").css({
"border": "2px",
"border-style": "solid",
"border-color": "#808080",
"padding-left": "130px",
"transition": "all 500ms" });
});
});
3) 当用户点击 HTML 正文时,边框应滑回正常位置并应用原始 CSS:
$('html').click(function (e) {
if (e.target.id != 'search') {
$("#search").attr("src", "Icons/magnifier2.png");
$("#search").removeAttr('style');;
}
});
我的问题是,在我的帖子顶部显示的 HTML onmouseover/out 在单击图标时触发该功能时仍然处于事件状态。(如果我将鼠标放在扩展边框的内部和外部,它仍然会更改图标。)
我的简单修复想法:
如果 CSS 中的 :hover 参数可以同时更改 .png 和边框的颜色,那将会容易得多,但是我一直在寻找这个特定的解决方案,但它似乎不可用!
第二种解决方案是在 jQuery 中添加某种代码,search.click(function() 停用 onmouseover/out 并在第二个 .click(function() 中重新激活它。
我希望我的问题足够清楚。
我添加了一个 jsfiddle 以供您查看我的示例:
最佳答案
It would be a lot easier if the :hover parameter in the CSS could change both the color of the .png and the border, however i've been searching alot for this specific solution, and it doesnt seem to be available!
您可以使用 CSS Sprite 来完成此操作。更多阅读在这里:http://www.w3schools.com/css/css_image_sprites.asp
基本上,您会有一个 magnifier.png 图像,该图像具有图标的两种状态。然后您将使用一些 CSS 在它们之间切换。
.searchbox {
background: url('magnifier.png') 0px 0px;
}
.searchbox:hover {
background: url('magnifier.png') 0px -25px;
}
在这个例子中,你有一个 25px x 50px 的 Sprite 图像,图像的每个状态都是 25px x 25px。
希望对您有所帮助!
编辑添加:这是一个 JS Fiddle 示例,您可以看到它是如何工作的:
关于javascript - Onmouseover/out 在 jQuery 中停用和重新激活,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33875607/
有人可以帮我让 onmoseover 事件保持显示: block 吗?行为,直到我将鼠标悬停在不同的事件上?换句话说,我想保持一个事件可见,直到我将鼠标悬停在另一个事件上。我填写的答案很简单。我刚接触
应该很容易,但我无法让它工作。如标题中所述,我想将 onmouseover 的背景颜色从 span.name(橙色)更改为 T E S T 我找到了这个但是
我一直致力于在Java脚本中创建一种摆动效果,这样当鼠标移动到一些对象上时,它们会慢慢地保持悬停,直到它们停止。。我已经在JSFdle中实现了这一点:http://jsfiddle.net/z3s7v
首先,我必须说我处于非常基础的编程水平。这些问题的答案对某些人来说可能非常明显,但我就是想不出一种方法将所有这些放在一起。提前致谢。 我有这个 HTML 代码: Tema 1. Mecá
在第二个(右/bing)表条目中,我理解为什么从图像悬停到“bing”字符串可能会导致 bingfn()被解雇。 但是第一个(左/谷歌)表有 onmouseover在 ,因此我预计从图像悬停到文本并
DivElement collectWoodHover = querySelector("#collectWood"); if (collectWoodHover.onMouseOver == tru
我正在尝试制作一些东西,当您滚动图像的某个部分时,会使用 onmouseenter 和 onmouseleave 功能播放不同的歌曲。它适用于第一个图像映射,但由于某种原因,它不适用于第二个图像映射,
我目前正在学习使用java脚本,遇到了一个我无法解决的问题。为了练习,我在一个简单的 HTM 中编写了一个修改 div 上边距的脚本: var boton = (function () { var t
我正在使用 jQuery 1.7.2,我想做的是在一个 div 上触发 onmouseover (使用类 active),但在 onmouseout 上触发 将该类更改为 inactive,并将第二个
页面加载后,如果您检查控制台,您会看到该函数在我将鼠标悬停在元素上之前触发。如果我删除参数,则页面会等待我将鼠标悬停在元素上,但我会失去动态功能。我在传递元素时做错了什么吗? var myList =
如何定义 onmouseover 函数的特定持续时间? 例如,在元素悬停 500 毫秒后,onmouseover 开始运行(因此,如果用户停留时间不超过 500 毫秒,onmouseover 不会运行
我尝试做这样的事情: 当我将鼠标悬停在按钮上时,文本应该消失,当我鼠标移开时,文本应该再次显示.. 这是我的样本jsfiddle Request
我的计时器是通过 onmouseover 函数激活的。 我的 CSS 动画在 15 秒后完成,但我的计时器没有完成。每次鼠标悬停后,时间都会重新激活,而不是按时间倒计时。 Hover this tex
我正在使用 angularjs和谷歌柱形图以图表形式显示数据。当数据更多时,我显示带有水平滚动条的图表。滚动条打开时工具提示出现问题。 请查找演示 here . 当鼠标悬停在条形图上时,它会在工具提示
我需要一个脚本,它将应用于围绕一个圆圈的一组图像.. 现在通过脚本需要的是 在圆圈周围的鼠标悬停图像上应该放大并移动到中心。 如何使用 Javascript 和 CSS 做到这一点。 请具体说说CSS
我正在使用 PHP 创建在线购物网站。我正在使用 Bootstrap 来设计我的网站。我的问题是鼠标悬停显示添加购物车按钮和折扣图片。 这是我的代码 .jpg" alt="produc
我正在尝试将此背景更改器从 编辑后删除 实现到我的个人博客,该博客仅驻留在我的计算机上(未上传到互联网),但我不知道 js 是什么因为它是?我将如何将它添加到我的博客中?我知道有: 在 html 文
这是一个幻灯片功能,鼠标悬停我想让它停止。它没有在鼠标悬停时停止幻灯片放映,而是加快了速度??我如何更正此问题以停止鼠标悬停? function nextslide() { // Hide
是否可以使用 JavaScript 在每个选择的下拉菜单上添加悬停消息? 我会使用类似 document.getElementById('name_of_html_id') 的东西,然后是四个选项之一
我正在尝试将段落堆叠在一起。当我将鼠标悬停时,我希望显示该特定段落。但是我收到错误: 未捕获的 ReferenceError:分配中的左侧无效 JS: var topLayer = "p3"; fun
我是一名优秀的程序员,十分优秀!