HTML链接到锚点而不更改网址

时间:2016-09-20 14:16:10

标签: javascript jquery html

我的页面顶部有一个链接到/#tabs的按钮(index id =" tabs")。它使用一个脚本很好地向下滚动到id,但它将URL更改为www.domain.com/#tabs我如何才能将#tabs部分移除?我正在考虑在.htaccess中进行此操作,但不确定这是否可行并且可能是一个坏主意。

继承人html:

    <a class="smoothscroll" href="/#tabs">
      <div class="scroll-down"></div>
    </a>
  </header>

<br />
  <div id="tabs" style="padding:20px;"></div>

  <div class="tabs">
    <h1>About</h1>
    <div class="p">
      about us
      <a href="/contact"><input type="submit" value="Contact Us" class="btn" name="contact" style="min-width:15%;"/></a>
    </div>  
  </div>
<a class="smoothscroll" href="/#tabs">
      <div class="scroll-down"></div>
    </a>

按钮部分是否使用此脚本滚动

<script>
/*----------------------------------------------------*/
/* Quote Loop
------------------------------------------------------ */

function fade($ele) {
    $ele.fadeIn(1000).delay(3000).fadeOut(1000, function() {
        var $next = $(this).next('.quote');
        fade($next.length > 0 ? $next : $(this).parent().children().first());
   });
}
fade($('.quoteLoop > .quote').first());


/*----------------------------------------------------*/
/* Smooth Scrolling
------------------------------------------------------ */

jQuery(document).ready(function($) {

   $('.smoothscroll').on('click',function (e) {
      e.preventDefault();

      var target = this.hash,
      $target = $(target);

      $('html, body').stop().animate({
          'scrollTop': $target.offset().top
      }, 800, 'swing', function () {
          window.location.hash = target;
      });
  });

});


TweenMax.staggerFrom(".heading", 0.8, {opacity: 0, y: 20, delay: 0.2}, 0.4);
</script>

忘记脚本的顶部,这只是索引的一部分。

4 个答案:

答案 0 :(得分:2)

你可以这样做:

在html中

--logdest <FILE>

在js

<a href="" class="smoothscroll" onclick="functionforscroll('tabs')">
<div class="scroll-down"></div></a>

这样您就可以滚动到所需位置而无需更改网址

答案 1 :(得分:1)

尝试使用“数据目标”代替“ href”。为我工作。

答案 2 :(得分:0)

您需要做的就是将 tabindex =&#34; -1&#34; 放到您想要关注的元素上,以及 focusout / blur <的事件/ em>删除该标签索引。这将使元素不被选项卡,但会将焦点带到元素。

我使用JQuery完成了这个:

(ELEMENT_FOR_FOCUS).attr('tabindex', -1).on('blur focusout', function () {
                $(this).removeAttr('tabindex');
            }).focus();

答案 3 :(得分:0)

改变 Vicky Kumar 的答案,这会奏效。

HTML:

<button class="smoothscroll" onclick="functionforscroll('id')">
<div class="scroll-down"></div></button>

Javascript

const functionforscroll = function(id){
    const reqId = "#"+id;
    window.scrollTo(0, $(reqId).offset().top-85);
}

您可以将按钮的样式设置为与项目中的其他链接一样。一件事是将outline设置为none,这样当有人点击按钮时,它不会显示按钮的边框/轮廓。