[英]How to change the background color of a screen area on hover
I am making a website for a school project, wherein I have left and right drawers. 我正在为一个学校项目制作一个网站,其中有左右抽屉。 The drawers are hidden and show only when onclick pageX < 100
(left drawer) and pageX > 1200
(right drawer). 抽屉是隐藏的,仅在onclick pageX < 100
(左抽屉)和pageX > 1200
(右抽屉)时显示。 As the drawers show only onclick()
, I want that area to get highlighted in some way (preferably color-change) so that the user knows there is something there. 由于抽屉仅显示onclick()
,因此我希望以某种方式(最好是颜色变化)突出显示该区域,以便用户知道那里有东西。 How do I do this? 我该怎么做呢?
<div id="pgcontainer">
<header>
<div id="navbar">
<div id="rightdrawer">
<ul>
<li><a href="#" class="btn btn-danger">Register</a></li>
<li><a href="archives.html">Archives</a></li>
<li><a href="contactUs.html">Contact Us</a></li>
<li><a href="sponsors.html">Our sponsors</a></li>
</ul>
</div>
</div>
</header>
</div>
$(function() {
var menuwidth = 240; // pixel value for sliding menu width
var menuspeed = 400; // milliseconds for sliding menu animation time
var $bdy = $('body');
var $container = $('#pgcontainer');
var $hamburger = $('#hamburgermenu');
var $rightmenu = $('#rightdrawer');
var negwidth = "-"+menuwidth+"px";
var poswidth = menuwidth+"px";
$('#pgcontainer').on('click',function(e) {
if(e.pageX < 130) {
if($bdy.hasClass('openmenu')) {
jsAnimateMenuLeft('close');
} else {
jsAnimateMenuLeft('open');
}
}
});
$('.overlay').on('click', function(e) {
if($bdy.hasClass('openmenu')) {
jsAnimateMenuLeft('close');
}
else if($bdy.hasClass('openmenur')) {
jsAnimateMenuRight('close');
}
});
$('a[href$="#"]').on('click', function(e) {
e.preventDefault();
});
function jsAnimateMenuLeft(tog) {
if(tog == 'open') {
$bdy.addClass('openmenu');
$container.animate({marginRight: negwidth, marginLeft: poswidth}, menuspeed);
$hamburger.animate({width: poswidth}, menuspeed);
$('.overlay').animate({left: poswidth}, menuspeed);
}
if(tog == 'close') {
$bdy.removeClass('openmenu');
$container.animate({marginRight: "0", marginLeft: "0"}, menuspeed);
$hamburger.animate({width: "0"}, menuspeed);
$('.overlay').animate({left: "0"}, menuspeed);
}
}
});
I think that the optimal solution here is to add two more elements, position them fixed and add some nice hover styles. 我认为这里的最佳解决方案是再添加两个元素,将它们固定放置并添加一些不错的悬停样式。
Note that since .leftdrawer-hover
and .rightdrawer-hover
are children on #pgcontainer
clicking on them would act exactly as you need, because click events will bubble to #pgcontainer
where you will detect them and show/hide corresponding drawer. 请注意,由于.leftdrawer-hover
和.rightdrawer-hover
是#pgcontainer
上的子级, #pgcontainer
单击它们将完全按照您的需要进行操作,因为click事件将冒泡到#pgcontainer
,您可以在其中检测到它们并显示/隐藏相应的抽屉。
#pgcontainer .leftdrawer-hover, #pgcontainer .rightdrawer-hover { content: ''; position: fixed; top: 0; bottom: 0; width: 130px; display: block; background: rgba(200, 200, 200, .4); } #pgcontainer .rightdrawer-hover { right: 0; } #pgcontainer .leftdrawer-hover:hover, #pgcontainer .rightdrawer-hover:hover { background: rgba(0, 0, 0, .7); cursor: pointer; }
<div id="pgcontainer"> <div class="leftdrawer-hover"></div> <div class="rightdrawer-hover"></div> <!-- other tags --> </div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.