Андер в рубрику JavaScript

Вопрос: Background position animation

http://vremenno.net/js/plaginy-jquery-background-position-animations/

Сделал аналогию по этой статье, не работает. Интересно где ошибаюсь.


<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<link href="Untitled-2.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/jquery.bgpos.js"></script>
<style type="text/css">
$('#mbg1').mouseover(function()
        {
            $(this).stop(); $(this).animate({backgroundPosition: '(0px -20px)'});
        }).mouseout(function()
        {
            $(this).stop(); $(this).animate({backgroundPosition: '(0px 0px)'});
        });
</style>
</head>

<body>
<div class="movableBG" id="mbg1" style="background-position: 0px 0px">
    <div class="left">
        <div class="right">Vremenno.net</div>
    </div>
</div>

</body>
</html>



.left
    {
        background: url(o_nas_Plashka_40x170.png) left top no-repeat;
    }
.right
    {
        background:  url(o_nas_Plashka_40x170.png) left top no-repeat;
        
    }
.movableBG
    {
        margin: 0px;
        width: 170px;
        height: 20px;
        font-size: 16px;
        cursor: pointer;
    } 

Задайте свой вопрос

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

Задать свой вопрос

Расскажите друзьям

Ответы на вопрос — 13

Evgenij
Выложи в интернет. В дропбокс, например.
Андер
http://dl.dropbox.com/u/12457985/test/Untitled-2.css
http://dl.dropbox.com/u/12457985/test/Untitled-1.html
http://dl.dropbox.com/u/12457985/test/o_nas_Plashka_40x170.png
http://dl.dropbox.com/u/12457985/test/js/jquery.bgpos.js
http://dl.dropbox.com/u/12457985/test/js/jquery.min.js

так пойдет? :)
#
Андер
Evgenij
Можно было обойтись и html )

У тебя (ничего, что я на ты?) прописано движение бэкграунда для #mbg1, в то время как сам бэкграунд прописан у дочерних элементов.
Андер
Ничего, это ж интернет )

т.е. оставляю так и в css дописываю бэкграунд

<div class="movableBG" id="mbg1" style="background-position: 0px 0px">

</div>


Чегот та же фигня.
#
Андер
Андер
В чем может быть загвоздка? Уже несколько вариантов перепробовал. И класс и айди местами менять, и функцию вставлять в отдельный подгружаемый файл.
#
Андер
Robotti
Андер, ну вам ведь написали. У вас анимация применяется к фону элемента с id "mbg1". Но у этого элемента в фоне нет картинки. Картинки у вас у элементов с классами left и right.
Андер
Упростил.


<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<link href="Untitled-2.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/jquery.bgpos.js"></script>
<style type="text/css">
$('.mbg1').mouseover(function()
        {
            $(this).stop(); $(this).animate({backgroundPosition: '(0px -20px)'});
        }).mouseout(function()
        {
            $(this).stop(); $(this).animate({backgroundPosition: '(0px 0px)'});
        });
</style>
</head>

<body>
<div class="mbg1">

</div>

</body>
</html>



.mbg1 {
		background:  url(o_nas_Plashka_40x170.png) left top no-repeat;
        margin: 0px;
        width: 170px;
        height: 20px;
        font-size: 16px;
        cursor: pointer;
}
#
Андер
Андер
Видно забыл пометить, что такая версия тоже не дееспособная.
#
Андер
Андер
http://vremenno.net/examples/bg-position-animation/sample1.htm

почему тогда вот здесь работает с разными id? и даже если взять этот код и подставить в него значения координат и свой png все прекращает работать.
#
Андер
Robotti
Попробовал поменять координаты и ссылки на картинки в этом примере прямо через редактирование в Опере. Все прекрасно работает. У вас, в отличии от примера, скрипт не взят в:
$(document).ready(function(){
...
})

Попробуйте поправить.
Андер

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<link href="Untitled-2.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/jquery.bgpos.js"></script>
<style type="text/css">
$(document).ready(function(){
$('.mbg1').mouseover(function()
        {
            $(this).stop(); $(this).animate({backgroundPosition: '(0px -20px)'});
        }).mouseout(function()
        {
            $(this).stop(); $(this).animate({backgroundPosition: '(0px -20px)'});
        });
})
</style>
</head>

<body>
<div class="mbg1">
<a href="#"></a>
</div>

</body>
</html>



.mbg1 {
		background:  url(o_nas_Plashka_40x170.png) left top no-repeat;
        margin: 0px;
        width: 170px;
        height: 20px;
        font-size: 16px;
        cursor: pointer;
}


Вот все что у меня есть )
Ну и прикрепленные файлы jQuery.
Вариант с $(document).ready не сработал.
#
Андер
aktiv.by
У вас скрипт в тэге style!!!! Как вы его запустить хотите???
И удалите stop() - он тут явно необязателен!
И mouseover - это из прошлого века.
И картинку вы двигаете в одну и ту же позицию ( 0 -20)


jQuery(function(){
jQuery('#mbg1').hover(function(){
jQuery(this).animate({backgroundPosition: '(0px -20px)'}, 350);
},
function(){
jQuery(this).animate({backgroundPosition: '(0px 0px)'}, 200);
});
});
Михаил
там используеться заплатка backgriunPosition.js
(function($) {
$.extend($.fx.step,{
backgroundPosition: function(fx) {
if (fx.state === 0 && typeof fx.end == \'string\') {
var start = $.curCSS(fx.elem,\'backgroundPosition\');
start = toArray(start);
fx.start = [start[0],start[2]];
var end = toArray(fx.end);
fx.end = [end[0],end[2]];
fx.unit = [end[1],end[3]];
}
var nowPosX = [];
nowPosX[0] = ((fx.end[0] - fx.start[0]) * fx.pos) + fx.start[0] + fx.unit[0];
nowPosX[1] = ((fx.end[1] - fx.start[1]) * fx.pos) + fx.start[1] + fx.unit[1];
fx.elem.style.backgroundPosition = nowPosX[0]+\' \'+nowPosX[1];
function toArray(strg){
strg = strg.replace(/left|top/g,\'0px\');
strg = strg.replace(/right|bottom/g,\'100%\');
strg = strg.replace(/([0-9\\.]+)(\\s|\\)|$)/g,\"$1px$2\");
var res = strg.match(/(-?[0-9\\.]+)(px|\\%|em|pt)\\s(-?[0-9\\.]+)(px|\\%|em|pt)/);
return [parseFloat(res[1],10),res[2],parseFloat(res[3],10),res[4]];
}
}
});
})(jQuery);

Новый ответ

как выглядит какой тег
жирный текст <b>жирный текст</b>
курсивный тект <i>курсивный тект</i>
зачеркнутый текст <s>зачеркнутый текст</s>
подчеркнутый текст <u>подчеркнутый текст</u>
ссылка <a href="адрес">ссылка</a>
function foo() { ... }
<pre><code>function foo() { ... } </code></pre>
разрешенные теги или посмотреть как будет выглядеть
как выглядит какой тег
жирный текст <b>жирный текст</b>
курсивный тект <i>курсивный тект</i>
зачеркнутый текст <s>зачеркнутый текст</s>
подчеркнутый текст <u>подчеркнутый текст</u>
ссылка <a href="адрес">ссылка</a>
function foo() { ... }
<pre><code>function foo() { ... } </code></pre>
разрешенные теги или посмотреть как будет выглядеть

metin2 pvp metin2 pvp serverler pvp serverler