【发布时间】:2013-09-18 14:20:12
【问题描述】:
我的页面上有一些面板。 我还有一个菜单,应该动态突出显示它的相应面板。
目前在硬编码按钮突出显示单个已定义面板的情况下工作,但这并不是我想要的。
我想要它,以便突出显示的面板是从菜单中选择的面板。它还必须淡化回原始背景。
我试过jqueryUI的fadeOut、removeClass等很多方法都没有成功。
注意事项:
- 面板以背景 (css) 渐变开始。
-
我想引起对特定面板的关注(突出显示它) 使用菜单选择。我想通过以下任一方式实现这一目标:
a) 应用一个用新的彩色渐变 (css) 替换背景的类
b) 使用 jqueryUI 的内置
effect(highlight)函数。但我认为这不会很好地返回到原始背景渐变。 选择菜单项时应立即突出显示,然后 在 3-5 秒内慢慢淡出 - 返回原始 背景渐变。
看来我有一个不错的开始,但我无法按照我希望的方式完成这项工作。
感谢任何帮助。
JSFIDDLE: http://jsfiddle.net/tedgrafx/FKtLJ/1/
HTML:
<a href="#" id="button" class="ui-state-default ui-corner-all">Highlight Panel</a>
<ul>
<li>Title
<ul>
<li onclick=" FocusPanel('panelOne')">One</li>
<li onclick=" FocusPanel('panelTwo')">Two</li>
<li onclick=" FocusPanel('panelThree')">Three</li>
<li onclick=" FocusPanel('panelFour')">Four</li>
<li onclick=" FocusPanel('panelFive')">Five</li>
</ul>
</li>
</ul>
<div class="container">
<div id="panelOne" class="ui-widget-content ui-corner-all">
<h3 class="ui-widget-header ui-corner-all">One</h3>
<p>
Etiam libero neque, luctus a, eleifend nec, semper at, lorem. Sed pede. Nulla lorem metus, adipiscing ut, luctus sed, hendrerit vitae, mi.
</p>
</div>
<div id="panelTwo" class="ui-widget-content ui-corner-all">
<h3 class="ui-widget-header ui-corner-all">Two</h3>
<p>
Etiam libero neque, luctus a, eleifend nec, semper at, lorem. Sed pede. Nulla lorem metus, adipiscing ut, luctus sed, hendrerit vitae, mi.
</p>
</div>
<div id="panelThree" class="ui-widget-content ui-corner-all">
<h3 class="ui-widget-header ui-corner-all">Three</h3>
<p>
Etiam libero neque, luctus a, eleifend nec, semper at, lorem. Sed pede. Nulla lorem metus, adipiscing ut, luctus sed, hendrerit vitae, mi.
</p>
</div>
<div id="panelFour" class="ui-widget-content ui-corner-all">
<h3 class="ui-widget-header ui-corner-all">Four</h3>
<p>
Etiam libero neque, luctus a, eleifend nec, semper at, lorem. Sed pede. Nulla lorem metus, adipiscing ut, luctus sed, hendrerit vitae, mi.
</p>
</div>
<div id="panelFive" class="ui-widget-content ui-corner-all">
<h3 class="ui-widget-header ui-corner-all">Five</h3>
<p>
Etiam libero neque, luctus a, eleifend nec, semper at, lorem. Sed pede. Nulla lorem metus, adipiscing ut, luctus sed, hendrerit vitae, mi.
</p>
</div>
</div>
Javascript:
$(function FocusPanel(panelName) {
// var panel = $( "#" + panelName );
// $( panel ).effect( "highlight", 3000 );
function runEffect() {
// run the effect
$( "#panelFour" ).effect( "highlight", 3000 );
// $( panel ).addClass( "highlightPanel" );
};
// set effect from hard-coded button
$( "#button" ).click(function() {
runEffect();
return false;
});
});
CSS:
.container
{ width: 100%; }
.ui-widget-content
{ background:linear-gradient(to bottom, rgba(238,238,238,1) 0%,rgba(204,204,204,1) 100%); float:left; width:40%; height: auto; margin:0 10px 10px 0; padding: 0.4em; }
.ui-widget-header
{ margin: 0; padding: 0.4em; text-align: center; }
.highlightPanel
{background:#ffff00;}
【问题讨论】:
-
您要保留“突出显示面板”按钮还是只在单击相应列表项时突出显示面板?
-
+1 用小提琴提出精心设计的问题
标签: jquery css jquery-ui background highlight