使用 JQuery 使颜色消失,但保持框到位? [复制]

Posted

技术标签:

【中文标题】使用 JQuery 使颜色消失,但保持框到位? [复制]【英文标题】:Use JQuery to make color fade away, but keep boxes in place? [duplicate] 【发布时间】:2015-09-20 04:49:35 【问题描述】:

我创建了一个 16x16 的网格。如果将鼠标悬停在一个框上,该框将变为粉红色。当你离开盒子时,整个盒子就消失了。我想这样当你离开盒子时,整个盒子保持原样,除了粉红色消失并在一秒钟左右后被原来的灰色取代。

html:

<head>
<title>SketchPad</title>
<link rel="stylesheet" type="text/css" href="style.css" >
</head>

<body>
<h1> SketchPad </h1>

<div id="container">

</div>
 <script     src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>        
<script src="jquery.js"></script>
</body>

</html>

CSS:

h1 
text-align: center;
color: black;

tr, td, table 
border-style: solid;
border-width: 1px;
background-color: gray;
margin: auto;
height: 25px;
width: 525px;

JS:

var rows=16;
var cols=16;

document.write("<table>");
for (i=0; i<rows; i++) 
document.write("<tr>");
  for (j=0; j<cols; j++) 
    document.write("<td>"+"</td>");
  
document.write("</tr>");

document.write("</table>");

$( "td").css("color", "red");
$("td").hover(function() 
$(this).css("background-color", "pink");
, function () 
$(this).fadeOut("slow", function()
);
);

【问题讨论】:

我玩过这些响应,而且我是新手,所以也许我做错了,但我要么没有任何效果,要么整个“td”元素在我开箱即用时消失。 【参考方案1】:

为了获得跨浏览器支持的解决方案,您可以通过 javascript 使用动画。问题是大多数非数字属性无法使用普通 jQuery 进行动画处理(background-color 就是其中之一)

其中一个选项是使用jquery-color 插件

例子:

$("#go").click(function()
    $("#block").animate(
        backgroundColor: "#abcdef"
    , 1500 );
);
$("#sat").click(function()
    $("#block").animate(
        backgroundColor: $.Color( saturation: 0 )
    , 1500 );
);

OTOH,过渡支持在现代浏览器上非常好,所以如果你使用纯 CSS 解决方案(IE9 及以下不支持它),你会很安全

【讨论】:

有没有办法在不使用 jquery-color 插件或 css 的情况下做到这一点? 您可以检查该插件的功能并复制与您相关的任何内容。另一种选择是使用 jquery-ui。如果您已经在使用它,那么您不需要额外的库【参考方案2】:

您实际上可以使用 css 完成这一切。

h1 
    text-align: center;
    color: black;

tr, td, table 
    border-style: solid;
    border-width: 1px;
    background-color: gray;
    margin: auto;
    height: 25px;
    width: 525px;

td 
    transition: 1s background-color;

td:hover 
    background-color: pink;

工作演示:http://jsfiddle.net/5xvehb8o/

【讨论】:

我应该提到,我只需要一个 JQuery 或 JS 解决方案。【参考方案3】:

.grid 
   height : 16px;
  width : 16px;
  border : solid 1px grey;
  background-color : grey;
  transition : 0.5s;


.grid:hover   
  background-color : pink;
<div class="grid"></div>
<br />
<div class="grid"></div>

完整的 CSS 解决方案,可以在属性 transition 中修改过渡。

【讨论】:

您不需要两个transition 属性。您可以在.grid 上添加transition: 0.5s 已编辑感谢您对@maxm 的贡献。

以上是关于使用 JQuery 使颜色消失,但保持框到位? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

jQuery 颜色框的问题

从角度 8 的导航栏中选择一个选项后,如何使侧面导航保持不变并且内容单独消失?

选择单元格时,图像视图消失但 UILabel 消失

背景颜色的不透明度,但不是文本[重复]

如何使用 jQuery 使文本框可拖动?

使用淡入淡出动画使组框出现和消失