javascript - 当用户导航到特定部分时执行功能(地理位置)

标签 javascript html google-geolocation

我正在为我正在构建的网站使用此免费模板:http://blackrockdigital.github.io/startbootstrap-scrolling-nav/

我正在使用地理定位服务 (Google)。但我不想强制用户每次进入网站时都按“批准”,只有当用户导航到/按“服务”按钮/区域时,我才希望执行我的地理位置功能。有人知道如何解决这个问题吗?

我可以以某种方式检查它们在网站上的位置吗?我可以获得部分 ID,但如何根据用户当前所在位置检查该 ID?

部分示例:

<!-- About Section -->
<section id="About" class="About-section">
    <div class="container">
        <div class="row">
            <div class="col-lg-12">
                <h1>About</h1>
                <h3>Here is text about us</h3>
            </div>
        </div>
    </div>
</section>

<!-- Services Section -->
<section id="Services-pdl" class="Services-section">
    <div class="container">
        <div class="row">
            <div class="col-lg-12">
                <h1>Services</h1>
                <div id="map"></div>
            </div>
        </div>
    </div>
</section>

谢谢。

最佳答案

通过使用滚动和单击解决了这个问题(单击按钮时页面滚动到一个部分):

$(window).scroll(function() { 
  if(isScrolledIntoView($(find)))
  {
     setTimeout(function() {
        initMap();
     }, 900);
  }    
});

function isScrolledIntoView(elem)
{
   var $elem = $(elem);
   var $window = $(window);

   var docViewTop = $window.scrollTop();
   var docViewBottom = docViewTop + $window.height();

   var elemTop = $elem.offset().top;
   var elemBottom = elemTop + $elem.height();

   return ((elemBottom <= docViewBottom) && (elemTop >= docViewTop));
}

setTimeout 在 .scroll() 中是必需的,因为当用户单击另一个按钮(位于本节下方)时,它将在没有 setTimeout 的情况下执行。不确定 setTimeout 是否可以低于 900,但目前工作正常。

从此线程中的答案中获取 isScrolledIntoView():Check if element is visible after scrolling

关于javascript - 当用户导航到特定部分时执行功能(地理位置),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35781635/

相关文章:

javascript - 具有固定比例和最小宽度的旋转木马图像

python - 使用 html5 输入类型 ='color'

javascript - 依赖查询参数来触发事件是否存在 JavaScript 中的安全风险

javascript - AngularJS,Karma - 使用 setPristine 清除 ng-dirty

javascript - 在 HTML5 &lt;input type ="range"> 中更改特定值的步骤

javascript - GOOGLE MAPS AUTOCOMPLETE 州名称而不是州代码

android - 应用程序在后台时的 GeoFence 设备

javascript - Geolocation API 从 Chrome 50 中的不安全来源中移除

javascript - Jquery 无法与 Rails 中的 sprockets 一起使用

javascript - 为什么符号不隐式转换字符串