【问题标题】:Hover over one div, effect the opacity of an image in another div (with jquery)将鼠标悬停在一个 div 上,影响另一个 div 中图像的不透明度(使用 jquery)
【发布时间】:2013-05-31 19:58:43
【问题描述】:

我正在这个网站上工作:http://users.telenet.be/blijvendvertrek/default.htm。

现在我想确定,当我将鼠标悬停在位于 a 中的三个导航项(“Renovaties”、“Gerechtelijke 专业知识”或“Over mij”)上时,其右下方的相应图像会改变其不透明度(从 0.6 到 1.0)。

通过 CSS,我已经确定如果将鼠标悬停在这三个图像上,每一个都会改变其不透明度,但是当我将鼠标悬停在导航项上时,我似乎无法产生相同的效果。我已经插入了一个脚本来实现这个效果,但是它不起作用。

这是三个导航项之一的 html:

<div id="navigation">
    <ul>
    <li id="1"><a href="renovaties/renovaties.htm" title="Renovaties">RENOVATIES</a></li>
    </ul>
    </div>

这是相应内容项的 html:

<div id="content">
    <div class="kolom links">
       <a href="renovaties/renovaties.htm" title="Renovaties">
                        <img src="images/Icoon - Renovaties.png" alt="Renovaties" id="img-1"/></a>
    </div>
    </div>

这是我无法工作的脚本:

$("#img-1, #img-2, #img-3").css('opacity','0.6');

$("#1").hover(function () {
    $('#img-1').css({opacity : 1.0});
  }, 
  function () {
    $('#img-1').css({opacity : 0.6});
  }
);

$("#2").hover(function () {
    $('#img-2').css({opacity : 1.0});
  }, 
  function () {
    $('#img-2').css({opacity : 0.6});
  }
);

$("#3").hover(function () {
    $('#img-3').css({opacity : 1.0});
  }, 
  function () {
    $('#img-3').css({opacity : 0.6});
  }
);

关于我做错了什么有什么想法吗?非常感谢大家。

【问题讨论】:

  • 我看不到您的页面中包含 jQuery?
  • 检查这个小提琴...jsfiddle.net/DTvGC 好像如果你添加 jQuery 2.0 那么它不会工作,但它适用于 1.9.1。
  • 亲爱的 vijay,谢谢你,它看起来正是我希望它在你的小提琴中的样子 - 但使用相同的脚本,我无法让我的网站做同样的事情(参见 users.telenet.be/blijvendvertrek/default.htm)。就好像我的网站没有接受脚本......知道我可能做错了什么吗?
  • 亲爱的 vijay,我刚刚在您的小提琴中看到,当您将鼠标悬停在它们上方时,图像不会呈现 1.0 的不透明度。我也想确保这一点。
  • 亲爱的,我让它工作了!我愚蠢地忘记了将我的 html 文档链接到脚本的源文件。谢谢!

标签: javascript jquery opacity


【解决方案1】:

演示:http://jsfiddle.net/Xc6ug/2/

最好使用 mouseenter 和 mouseleave 而不是像这样的悬停

$("#1").mouseenter(function () {
$('#img-1').css({"opacity","1"});
});

$("#1").mouseleave(function () {
$('#img-1').css({"opacity", "0.6"});
});

【讨论】:

  • hover 只是mouseenter 和mouseleave 的组合。 api.jquery.com/hover
  • 亲爱的 Arun,我已更改脚本,但 Dreamweaver 指出此行中存在语法错误:$('#img-1').css({"opacity", "1"} ); - 因此,它仍然不起作用。
  • 你好 Praveen.J - 谢谢,我不再收到语法错误警告,但我的页面仍然没有得到预期的效果:-(
  • 检查这个小提琴... jsfiddle.net/DTvGC 如果你添加 jQuery 2.0 似乎它不会工作,但它适用于 1.9.1。检查VIAY的小提琴..我认为这会帮助你..
  • 亲爱的,我切换到 1.9.1,但无济于事......我做错了什么?
【解决方案2】:

html中id不能只有数字

因为你的 li 是有序的,你可以使用 .index()

$("#navigation li").hover(function(){
    var n = $(this).index()+1;
    $('#img-'+n).css({opacity:1});
},function(){
    var n = $(this).index()+1;
    $('#img-'+n).css({opacity:0.6});
});

【讨论】:

    【解决方案3】:

    你在哪里做这个代码

    $("#img-1, #img-2, #img-3").css('opacity','0.6');
    

    尝试在 css 文件中设置不透明度,或者在页面加载时将其设置为内联样式。 只需封装此代码即可不断重置您在运行中所做的任何更改。

    只是一个想法。

    【讨论】:

    • 对不起,我的朋友。在导航 div 上尝试 codealert("Mouse enter")code 只是为了查看悬停事件是否真的触发了
    猜你喜欢
    • 2011-09-24
    • 1970-01-01
    • 1970-01-01
    • 2014-12-27
    • 2015-01-04
    • 2013-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多