如何在悬停时更改屏幕区域的背景色
How to change the background color of a screen area on hover
我正在为一个学校项目制作一个网站,其中我有左抽屉和右抽屉。抽屉是隐藏的,只有在单击pageX < 100
(左抽屉)和pageX > 1200
(右抽屉)时才会显示。由于抽屉只显示onclick()
,我希望该区域以某种方式突出显示(最好是颜色变化),以便用户知道那里有东西。我该怎么做?
HTML:
<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>
JavaScript:
$(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);
}
}
});
我认为这里的最佳解决方案是再添加两个元素,固定它们的位置,并添加一些漂亮的悬停样式。
请注意,由于.leftdrawer-hover
和.rightdrawer-hover
是#pgcontainer
上的子级,单击它们将完全按照您的需要进行操作,因为单击事件将冒泡到#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>
相关文章:
- onkeyup无法动态创建多个文本区域
- FabricJs-限制主对象内添加对象的移动区域
- 如何将屏幕分辨率乘以 80%,然后在代码中使用
- 在不打开聊天屏幕的情况下制作Zopim-ding代理
- 使用图像数组列表的simplegallary.js显示适合桌面屏幕的图像
- 导航栏没有调整到浏览器屏幕的大小
- 将文本区域行/列转换为屏幕 x/y 坐标
- 使用Html2Canvas的文本区域屏幕截图
- 如何在单击按钮时在核心PHP中抓取网页特定区域的屏幕截图
- 如何计算坐标以将元素保留在用户屏幕的区域中
- 如何使用纯javascript和css(无jquery)调暗整个屏幕,除了两个同心正方形之间的区域
- 关闭导航单击屏幕的任何区域
- 如何在悬停时更改屏幕区域的背景色
- 在firefox操作系统中,根据屏幕方向调整文本区域的大小
- 使用javascript获取屏幕某个区域的显示颜色
- jQuery -如何监听鼠标离开屏幕的区域
- 使用Paste.js将屏幕截图粘贴到文本区域中,但是您将如何将其传输到Rails
- 文本区域根据屏幕大小更改字体大小
- 如何创建屏幕阅读器可访问的 AJAX 区域和 DOM 插入/删除更新
- 我如何在chrome扩展中使用javascript截取一些特定区域的屏幕截图