在单击时对元素进行动画处理,并在该元素和其他元素上单击鼠标输入/鼠标离开
Animate element on click & mouseenter/mouseleave on that element and other
我在以下布局中有 3 个主要的div 元素。
https://jsfiddle.net/wpztofb7/
<body>
<div id="topBox" class="otherBox">
TEST TOP
</div>
<div id="middleBox" class="middleBox">
SECTION
</div>
<div id="tab" class="tab"><span>New Comment</span></div>
<div id="bottomBox" class="otherBox">
TEST BOTTOM
</div>
</body>
.otherBox {
border: 2px solid #73AD21;
width: 100%;
height: 150px;
}
.middleBox {
border: 2px solid #73AD21;
width: 100%;
height: 25px;
}
.tab {
border-left: 2px solid #73AD21;
border-right: 2px solid #73AD21;
border-bottom: 2px solid #73AD21;
border-bottom-left-radius: 0.5em;
border-bottom-right-radius: 0.5em;
height: 15px;
width: 120px;
margin-bottom: 20px;
}
$(document).ready(function() {
click = 0;
$("#tab, #middleBox").click(function() {
if (click === 0) {
click = 1;
$("#middleBox").animate({
height: '400px'
}, 500);
} else {
click = 0;
$("#middleBox").animate({
height: '30px'
}, 850);
};
});
if (click === 0) {
//Do wiggle
$("#tab, #middleBox").mouseenter(function() {
$("#middleBox").animate({
height: "40px"
}, 800);
});
$("#middleBox").mouseleave(function() {
$("#middleBox").animate({
height: "30px"
}, 800);
});
}
});
中间div 在左下角有一个小选项卡。希望让中间的div在单击自身或选项卡时进行动画处理。而在mouseenter/mouseleave上需要一个"摆动"动画来吸引用户对可扩展的div元素的注意。
当激活选项卡鼠标悬停,然后单击激活时,该行为出错。然后,鼠标位于扩展的中间div 内,但任何鼠标移动都会折叠div。
有人可以指出我避免此问题的正确方向吗?我是新来的,所以要温柔!
我已经在相关元素上尝试了 .off("mouseenter mouseleave"),但无济于事。
理想情况下,用户应该能够鼠标输入/离开选项卡或div 以激活"摆动"。如果用户在选项卡或div 中单击,则div 应以动画形式保持该状态,直到再次单击(即使发生鼠标离开)。
我显然过早地提出了这个问题。再坚持一点,我已经解决了这个问题。
我已经找到了 .off() 的正确用法
如果有人有更好或更合适的方法来完成相同的任务,请随时发布。或者如果对我的代码有任何批评......
<script>
$(document).ready(function () {
click = 0;
$("#tab, #middleBox").click(function () {
if (click === 0) {
click = 1;
$("#middleBox").animate({ height: '400px' }, 500);
$("#middleBox, #tab").off("mouseenter mouseleave");
}
else {
click = 0;
$("#middleBox").animate({ height: '30px' }, 850);
};
});
if (click === 0) {
//Do wiggle
$("#tab, #middleBox").mouseenter(function () {
$("#middleBox").animate({ height: "40px" }, 800);
});
$("#middleBox").mouseleave(function () {
$("#middleBox").animate({ height: "30px" }, 800);
});
}
}); </script>
相关文章:
- 如何查明鼠标按下事件是否发生在滚动条上或元素中的其他任何位置
- 将鼠标悬停在同级元素上的 jquery 上轻拂
- 将鼠标悬停在Angular JS中的一个元素上,并将Class添加到另一个元素中
- 如何在元素中处理鼠标事件,但不能在其子元素上处理
- 只要用户将鼠标悬停在jQuery中的某个元素上,就可以执行多次单击
- 单击其他元素或鼠标向上时隐藏输入框,但保留一次焦点
- 如果鼠标在元素上快速移动和关闭,则防止.hoop事件被垃圾邮件发送
- 为什么不是't html<对象>元素响应鼠标事件
- 如何激活下拉菜单:在一个元素上单击768px宽度下方,在另一个元素上将鼠标悬停在768px上方
- 如果鼠标离开父对象,则隐藏元素
- 当鼠标悬停在iframe上时,如何在iframe之外的元素上触发类
- 如何在鼠标悬停时显示带有拉斐尔元素(圆、线)的上下文菜单
- 当鼠标也在触摸另一个元素时,d3.js鼠标悬停事件未被触发
- 从鼠标点(及更多)查询位置元素
- 如何添加效果,以便将鼠标悬停在 SVG 元素上使其变大
- 可缩放容器鼠标上的可拖动元素在创建时从辅助对象上浮动
- 绘制DOM元素:鼠标事件会被背景元素混淆
- Fetch元素鼠标当前指向的Chrome开发工具已启用
- 如何使元素鼠标不可点击,但可以通过javascript单击
- 获取元素鼠标在iframe中的HTML