I recently added a Google search bar to my website. How I found that it is blocking the navigation underneath even when the search is not active. If I bring the navigation z-index up it is then 开发者_运维百科displayed over the search results. How do I make it so the buttons are "clickable" when the search bar is not rolled down. View page here http://etterengineering.com/SampleIndex.html
Here is my HTML:
<div id="cse-search-form" style= "z-index:999999; top:0px;"></div>
<div id="cse-search-form" style="width: 100%;"></div>
<script src="http://www.google.com/jsapi" type="text/javascript"></script>
<script type="text/javascript">
google.load('search', '1', {language : 'en', style : google.loader.themes.SHINY});
google.setOnLoadCallback(function() {
var customSearchControl = new
google.search.CustomSearchControl('012677673255316824096:sean13fvlei');
customSearchControl.setResultSetSize(google.search.Search.FILTERED_CSE_RESULTSET);
var options = new google.search.DrawOptions();
options.setSearchFormRoot('cse-search-form');
customSearchControl.draw('cse', options);
}, true);
</script>
<div id="cse" style="width:43%; z-index:999997; top:40px; height:650px;"></div>
And my CSS:
#cse-search-form {
position:absolute;
z-index:999999;
width:270px;
left:680px;}
#cse{position:absolute; z-index:999997; left: 530px;
overflow:auto;overflow-x:hidden; pointer-events:none;
}
#dropdown {
margin: 0;
padding: 0;
height: 1em;
}
#dropdown li {
float: left;
list-style: none;
}
#dropdown li a {
display: block;
width:12em;
padding: 3px 0px;
background-color: transparent;
white-space:pre;
font-size:.8em;
letter-spacing: -.4px;
text-align:center;
z-index: 24000;
font-family: Verdana;
color: #424242;
position: relative; top:105px; left: 0px;
text-decoration: none;
}
#dropdown li a:hover {color:#000000;}
/* Sub Drop Down Organization */
#dropdown li ul {
display: none;
width: 18em;
letter-spacing: 1em;
text-align:center;
}
/* Sub Drop down Hover */
#dropdown li:hover ul {
display: block;
position: absolute;
margin: 0;
padding: 0;
}
#dropdown li:hover li a {
word-spacing: .025em;
letter-spacing: -.05em;
font-size:.8em;
font-family: Verdana;
background: #6e6e6e;
background: -webkit-gradient(linear, left top, left bottom, from(#FFFFFF),
to(#ADADAD));
background: -moz-linear-gradient(top, #FFFFFF, #ADADAD);
}
#dropdown li li a:hover {color:#ff0000;}
I would keep that "cse" <div>
hidden until you need it to show on the screen.
edit — I'm not very familiar with the Google API but given the code you already have I think you would do something like this:
$('#cse').hide();
google.setOnLoadCallback(function() {
var customSearchControl = new google.search.CustomSearchControl('012677673255316824096:sean13fvlei');
customSearchControl.setResultSetSize(google.search.Search.FILTERED_CSE_RESULTSET);
var options = new google.search.DrawOptions();
options.setSearchFormRoot('cse-search-form');
customSearchControl.draw('cse', options);
$('#cse').show();
}, true);
Now it has to be hidden again when the "Clear" button is clicked. I can't find anything in the Google documentation about how to set up a callback for that (and in fact I'm not sure how anybody finds anything in that mess that Google calls a "Reference"), but you'd just want to call ".hide()" again.
精彩评论