2013-04-03 4 views
0

Есть вопросы по всем вопросам по этой теме, но я пробовал много разных сценариев для этого, и я не могу заставить его работать с моим сайтом.Прокрутите до div по ссылке нажмите

Я сам создаю тему для Wordpress для личного портфолио и хотел бы оставить ее одной страницей. Я хочу, когда пользователь нажимает ссылку на навигацию, страница прокручивается до этого раздела. Легко ли? №

Я не знаю, почему он не работает на моем сайте, но я думаю, что он имеет отношение к сценарию, который я использую для прокрутки для фиксированной навигации.

Вот сценарий я в настоящее время пытаюсь использовать для создания этой навигации по страницам скроллинг эффект: http://css-tricks.com/snippets/jquery/smooth-scrolling/

А вот сценарий я использую для создания прокрутки фиксированной навигации эффекта:

window.onscroll=function() { 
    var top = window.pageXOffset ? window.pageXOffset : document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop; 
    if(top > 640){ 
     document.getElementById("nav").style.position = "fixed"; 
     document.getElementById("nav").style.height="65px"; 
    } else { 
     document.getElementById("nav").style.position = "relative"; 
     document.getElementById("nav").style.height="65px"; 
    } 
} 

Вы можете просматривать сайт я пытаюсь сделать это в http://www.tylerb.me

ли два сценария противоречат друг другу и сделать один из них не работает?

+0

Кажется, что это работает для меня, что конкретно «не работает»? – Daedalus

+0

Вы нажали ссылку, которую я предоставил сайту? Вы можете видеть, что там не работает. –

+0

Он работает на сайте, к которому вы привязаны для меня - он просто подбрасывает вас под заголовком и дает вам фактический абзац, который вы ищете. – Jon

ответ

3

Возможно, Wordpress использует метод jQuery.noConflict() для предотвращения конфликтов .. конфликтов. Из-за конфликтов сценариев (например, инструменты moo также используют $, например), замените каждый $ на jQuery. Это должно исправить вашу проблему .. и я имею в виду в коде, который вызывает плагин, а не сам плагин.

Пример:

//normal jquery method call: 
$("element").method(etc); 

//with noConflict code: 
jQuery("element").method(etc); 

UPDATE 1:

Казалось бы, что вы забыли оставить определенную $ в одиночку. Эта линия:

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

Должно быть так:

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

Это, конечно, идет с любой переменной, которая начинается с $. Те не должны удаляться.

+0

Это работает! Спасибо! –

1

Ядро вашей проблемы заключается в том, что jQuery не загружается.

enter image description here

Дедал только что передо мной. Это не конфликт, который вызывает вашу проблему. Просто используйте jQuery, а не $.

+0

Хм, это странно. Он кажется прекрасным в источнике ... –

+0

К сожалению, после замены всего '' '' 'jQuery' он все равно не работает. Ошибка, которую я получаю сейчас, это «Uncaught TypeError: Object #about не имеет никакого« смещения »метода» –

+0

Да, это не похоже на инициализацию объекта цели jQuery, он получает объект Plain Old JavaScript. Не следует читать эту строку: var target = jQuery (this.hash) || target = this.hash; ?? вместо запятой? –

0

Это может оказаться полезным для некоторых.

Попробуйте использовать:

jQuery(document).ready(function($){ 
    // do stuff here using $ 
}); 

вместо

$(document).ready(function($){ 
    // do stuff here 
}); 

Это объявляет локальные $ вместо конфликтует с ранее заявленным.

Это помогло мне много раз.

Смежные вопросы