Простые внутренние ссылки не работают

Это должно быть довольно просто, я пытаюсь создать "оглавление", которое ссылается на различные части длинной страницы...

Вот что я попробовал:

<ul>
      <li><a href="#features">Features</a></li>
</ul>

Далее вниз на странице...

<a name="features"></a>

Я что-то пропустил? Он просто никогда не связывает, как будто якорь не связан должным образом.

Я ценю любые советы на этот счет.

Спасибо заранее!

3 ответа

Решение

Тем, у кого была похожая проблема, я узнал, почему она не работает.

Многие элементы на моей странице являются плавающими элементами. В результате браузер не может найти точную точку для ссылки, если цель привязки не находится в плавающем элементе. Другими словами, если тег привязки находится за пределами плавающего элемента и у вас на странице много плавающих элементов, внутренние ссылки могут работать неправильно. Чтобы это исправить, поместите вашу якорную цель в один из плавающих элементов.

Я также нашел эту информацию здесь

Много раз вы будете видеть людей, которые используют эти ссылки, ничего не окружая (например, <a name="1" id="1"></a>), но это не такой надежный якорь, как когда вы окружаете слово или изображение. Многим браузерам нравится иметь какой-то элемент в верхней части экрана, и когда вы ничего не заключаете, вы рискуете запутаться в браузере.

У меня была та же проблема, что и у вас, и это исправило ее для меня:

    <a href="#ref" onclick="window.location.href = '#ref';">link content here</a>

Это не способ прокрутки к определенной части веб-страницы. Вам нужен код JavaScript здесь.

function scrollWindow() {
    window.scrollTo(x,y);
    // where
    // x = for horizontal co-ordinates, y = for vertical cordinates
    // e.g. x=100,y=600 -- try this
}

выполнить эту функцию по клику вашей ссылки

<ul>
  <li><a href="#features" onclick="scrollwindow();">Features</a></li>
</ul>

Эта страница очень хорошо объясняет свойство: http://www.w3schools.com/jsref/met_win_scrollto.asp

Другие вопросы по тегам