【发布时间】:2014-01-02 01:19:46
【问题描述】:
首页有一个背景幻灯片正在运行。问题是当背景较暗时菜单不可见,因为菜单本身具有深色字体颜色。当背景改变时,菜单颜色也应该改变。
我正在使用 Vegas Background jQuery 插件 (http://vegas.jaysalvat.com/),我希望能够(手动)决定每张幻灯片的菜单颜色。
例如,如果背景为黑色,则菜单应为白色,而当背景变为浅色幻灯片时,菜单应为黑色。
此代码 sn-p 在幻灯片更改时触发:
$('body').bind('vegaswalk',
function(e, bg, step) {
alert( 'N°' +step+ ' is now displayed' );
}
);
这是触发“vegaswalk”时我想做的事情:
slide 1 = black
slide 2 = white
if change to slide 1 => change menu to white
if change to slide 2 => change menu to black
编辑
在 php if 语句中组合脚本。脚本:
<script>
$.vegas('slideshow', { delay: 4000,
backgrounds: [
{ src: 'http://ff.felipes.se/wp-content/uploads/2014/01/bakgrundsbild-vardagsrum.jpg', fade: 1000 },
{ src: 'http://ff.felipes.se/wp-content/uploads/2014/01/bakgrundsbild-verkstad.jpg', fade: 1000 },
{ src: 'http://ff.felipes.se/wp-content/uploads/2014/01/bakgrundsbild-urbild.jpg', fade: 1000 },
{ src: 'http://ff.felipes.se/wp-content/uploads/2014/01/bakgrundsbild-kuggar.jpg', fade: 1000 },
{ src: 'http://ff.felipes.se/wp-content/uploads/2014/01/bakgrundsbild-fiber.jpg', fade: 1000 },
{ src: 'http://ff.felipes.se/wp-content/uploads/2014/01/bakgrundsbild-bord.jpg', fade: 1000 },
],
walk: function(step) {
//alert('N°' + step + ' is now displayed');
// get a handle on the sidebar
var $sidebar = $('div.sidebar');
// change it's class according to the slide we are on
switch (step) {
case 0: goGray($sidebar); break;
case 1: goWhite($sidebar); break;
case 2: goGray($sidebar); break;
case 3: goGray($sidebar); break;
case 4: goGray($sidebar); break;
case 5: goGray($sidebar); break;
case 6: goWhite($sidebar); break;
default: goWhite($sidebar); break;
}
}
})('overlay');
function goGray($sidebar){
$sidebar.removeClass('white').addClass('gray');
}
function goWhite($sidebar){
$sidebar.removeClass('gray').addClass('white');
}
</script>
每个案例都需要通过一个 php if 语句来检查它是否应该变灰。像这样的东西?这种情况下怎么结合php和jquery呢?
case 0: <?php if( go gray is chosen ) {
echo "goGray($sidebar);";
}
else{
echo "goWhite($sidebar);";
} break;
【问题讨论】:
-
你试过了吗?
-
我已经尝试过在幻灯片更改时触发的代码 sn-p:
$('body').bind('vegaswalk', function(e, bg, step) { alert( 'N°' +step+ ' is now displayed' ); } ); -
请在您的问题中输入代码。
-
你为什么不直接用 step 变量做一个 switch/case 语句呢?例如:switch(step) { case 1: $('#menuDiv').removeClass('lightMenu').addClass('darkMenu');休息;案例2:……;休息; } 等
-
@Felix:你成功了吗?
标签: javascript jquery plugins jquery-plugins