开发者

Google Custom Search interfering with links underneath

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.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜