jquery - div下的mouseover和mouseout函数

标签 jquery html

我想知道是否有任何方法可以“通过”div 使用 .mouseover 和 .mouseout jQuery 事件。我的意思是,我在一个 div 中放置了一个图像,上面有另一个 div。图像上的 div 用于给图像着色。由于这个不透明层,事件不起作用。但是,当我移除不透明层时,事件会按预期工作。这是我的 HTML 的副本:

    <div id="commercialopacity"></div>
    <p class="commercial">COMMERCIAL</p>
    <div id="hideimage"></div>
    <div class="portfolioimages">
        <img class="picture" id="commercialimage1" src="Project Images\\HarrisonHealthClinic\\Render 1-1.jpg">
    </div>
    <div class="portfolioimages">
        <img class="picture" id="commercialimage2" src="Project Images\\HarrisonHealthClinic\\Render 2-1.jpg" link="index.html">
    </div>
    <div class="portfolioimages">
        <img class="picture" id="commercialimage3" src="Project Images\\HarrisonHealthClinic\\Render 3-1.jpg">
    </div>
    <div id="residential"></div>

和我的 jQuery:

$("#commercialimage1").mouseover(function(){
    $("#commercialimage1").animate({marginLeft:"20%"},{duration:250, queue:false});
})
$("#commercialimage1").mouseout(function(){
    $("#commercialimage1").animate({marginLeft:"0%"},{duration:250,queue:false});
})
$("#commercialimage2").mouseover(function(){
    $("#commercialimage2").animate({marginLeft:"20%"},{duration:250, queue:false});
})
$("#commercialimage2").mouseout(function(){
    $("#commercialimage2").animate({marginLeft:"0%"},{duration:250, queue:false});
})
$("#commercialimage3").mouseover(function(){
    $("#commercialimage3").animate({marginLeft:"20%"},{duration:250,queue:false});
})
$("#commercialimage3").mouseout(function(){
    $("#commercialimage3").animate({marginLeft:"0%"},{duration:250,queue:false});
})

因此,#commercialopacity 是为上面的图像着色的 div。 另外,有什么方法可以为这个动画压缩我的 jQuery 代码吗?我意识到这可能不是最干净的方法,特别是如果我想将这些事件用于我将来添加的其他图像。

非常感谢您的帮助

最佳答案

是这样的吗? https://jsfiddle.net/xcm02m4b/1/

CSS:

#container{
  max-width: 200px;
}
#commercialopacity{
  position: absolute;
  width: 100%;
  height: 400px;
  transition: background-color .25s;
  background-color: rgba(0,0,0,.5);
}
#container:hover #commercialopacity{
  background-color:transparent;
}
.picture{
  position: relative;
  transition: margin-left .25s;
}
#commercialimage1{
  display: inline-block;
  width: 100px;
  height: 100px;
}
#commercialimage2{
  display: block;
  width: 100px;
  height: 100px;
}
#commercialimage3{
  display: block;
  width: 100px;
  height: 100px;
}
.picture:hover{
  margin-left: 20%;
}

HTML:

<div id="container">

<div id="commercialopacity"></div>
<p class="commercial">COMMERCIAL</p>
<div id="hideimage"></div>
<div class="portfolioimages">
    <img class="picture" id="commercialimage1" src="Project Images\\HarrisonHealthClinic\\Render 1-1.jpg">
</div>
<div class="portfolioimages">
    <img class="picture" id="commercialimage2" src="Project Images\\HarrisonHealthClinic\\Render 2-1.jpg" link="index.html">
</div>
<div class="portfolioimages">
    <img class="picture" id="commercialimage3" src="Project Images\\HarrisonHealthClinic\\Render 3-1.jpg">
</div>
</div>
<div id="residential"></div>

我将您的 animate js 切换为 css 动画。如果没有太多的对象并且对于你想要的东西来说足够简单的话会更快

关于jquery - div下的mouseover和mouseout函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44466639/

相关文章:

jquery - Node.js 为什么我无法从 HTTP 服务器获取响应文本?

javascript - 如何使用 "<Section> tag ID"使用 Javascript\Jquery 触发 anchor 链接?

javascript - 需要帮助将 jQuery 转换为 VanillaJS

android 网络浏览器和虚拟键盘

html - 使用CSS float 在div上

javascript - AngularJS 启动器卡住了

html - 使容器在包裹时收缩以适合子元素

php - Ajax 不适用于我的所有表单

jquery - 如何使用 jQuery/JSON 和无限滚动控制加载项目的数量?

javascript - 字符串不接受 &lt;/script&gt; 的结束标记