Как мне сдвинуть (прокрутить) весь div, полученный из jquery .load ()? - PullRequest
2 голосов
/ 07 февраля 2011

Итак, у меня есть этот javascript, который загружает в div содержимое моего php (которое получает данные из базы данных mysql). При нажатии другой кнопки он снова вызывает файл eat.php с новыми данными для извлечения из MySQL и снова загружает новые данные в div.

<script type="text/javascript">
$(function() {
    $("a[name=eat]").click(function() {
        $("div.nav a[name=eat]").css({"background-color":"#666966","color":"#fff"});
        $(".user-main").load("eat.php");
    });
    $("a[name=analyze]").click(function() {
        $(".user-main").load("eat.php",{ name: "John", time: "2pm" });
    });
});
</script>

И это нормально и все. Мой вопрос: как я могу сделать этот «слайд» в новый div, как будто он прокручивается горизонтально? Мне не повезло с функцией анимации в jQuery, и я предпочел бы не использовать какие-либо рамки. Кроме того, это правильный способ проверить сообщение jQuery, выполнив:

if (isset($_POST['name']))

в моем файле eat.php?

1 Ответ

1 голос
/ 07 февраля 2011

Я не совсем уверен, что вы спрашиваете. Если вы хотите убедиться, что только что добавленные вами данные прокручиваются в поле зрения, вы можете использовать код, подобный этому

if (document.all) {
document.body.scrollIntoView(false);
} else {
    document.body.insertAdjacentHTML('beforeEnd','<a name="' + a + '"><\/a>');
window.location.hash = '#'+a;
}

Хитрость с insertAdjacentHTML заключается в вставке метки на экран и последующем указании браузеру перейти к нему. Метка - это содержимое переменной javascript, которая должна отличаться при каждом запуске кода.

Если вы хотите отобразить все разделение, вам придется использовать таймер. Настройте div таким образом, чтобы переполнение было скрыто и располагалось вне экрана, используя относительное положение и большие верхние или левые / правые значения. Затем, каждый раз, когда таймер отключается, уменьшайте смещение до нуля.

Если таймер отключается каждые 50 мс, а вы перемещаете только несколько пикселей, вы получите 20 кадров в секунду, и он будет выглядеть довольно плавным.

...