首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >绝对div在Google上移动或消失

问绝对div在Google上移动或消失
EN

Stack Overflow用户
提问于 2014-09-26 09:02:49
回答 1查看 681关注 0票数 1

我想要一个div悬停在用Google制作的地图上。

然而,当浮动的div到达地图的缩放图标时,它就会开始抖动、扭曲或有时出现散斑现象。

你知道为什么会发生这种事吗?我该怎么解决呢?

我试过把z指数调高。但问题仍然存在。

下面是一个小摆设:http://jsfiddle.net/3ew56tkv/2/

CSS

代码语言:javascript
复制
html, body
{
    width:100%;
    height:100%;
}
.mainWrap
{
    width:100%;
    height:100%;
}
.map
{
  width:100%;
  height:100%;
}
.navigation
{
   width:inherit;
   position:absolute;
   z-index:99999;
    background-color:white;
}

代码语言:javascript
复制
<div class="mainWrap">
        <div class="mainIntro">
        <p class="year" id="yearTitle"></p>

        </div>
        <div class="navigation">
                <div> menu option </div>
                <div> menu option </div>
                <div> menu option </div>

            </div>
        <div id="mainMap" class="map">
        </div>
        <div style="margin-top:100%;">x</div>
    </div>

Javascript

代码语言:javascript
复制
            var mapZoom = 10; 
            var mapCenterLat = 41.82454868;
            var mapCenterLon = -87.6341629;
            var map;




        google.maps.event.addDomListener(window, 'load', initialize); 


        function initialize() {

            var map_canvas = document.getElementById('mainMap');    
            var map_options = {
                center: new google.maps.LatLng(mapCenterLat,mapCenterLon),
                zoom: mapZoom, 
                mapTypeId: google.maps.MapTypeId.TERRAIN 
            };  

            //Draw the map 
            map = new google.maps.Map(map_canvas, map_options);

            //Activate overlay
            var OverlayMap = new MyOverlay({map: map}); 

        } //End initialize()
$(window).scroll(function() { 

                    var scrollBar = $(this).scrollTop();
                    var windowHeight = $(window).height();
                    var bottomScroll = windowHeight-scrollBar; 
                    var scrollPosition = $(window).scrollLeft()  
            var navigationPosition = $('.navigation').offset(); 

        var navigationWidth = $('.navigation').width(); 

    if (scrollBar > navigationPosition.top) { 
                    $('.navigation').css({
                        position: 'fixed', 
                        top: '0px', 
                    }); //end css changes
                    $('.navigation').css("width",navigationWidth); 

                } else { 
                    $('.navigation').css("position","absolute"); 
                    }; //end else   
});//end scroll function
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-26 09:27:48

我认为闪烁是因为您正在计算.navigation div在窗口滚动中的位置。因此,删除该代码,只需将position:fixed交给css中的.navigation div。这将迫使div被固定到窗口。

请注意,固定的div将相对于窗口,而不是相对于其相对父级。

在演示中,我刚刚给了!important位置css以覆盖动态值。

演示

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26055845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档