Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> смена картинки функцией, по событию onmousemove(over) 
V
    Опции темы
Dobermann
Дата 5.9.2009, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 992
Регистрация: 7.1.2008

Репутация: нет
Всего: 0



Код

<script type="text/javascript">
    var folder = 'scetchs/';
    var exe='.gif';
        function scetchClick()
        {
            var foto='';
            for(var i=2; i<=12; i++)
                {
                    foto=folder+i+exe;    
                }
                return foto        
        {
        
</script>
</head>
<body>
    <center>
     <img src="scetchs/1.gif" onmousemove="this.src=scetchClick()">
    </center>     
</body>
</html>

че то не работает... =\
...
а вот так работает, но только один раз(первая картинка меняется и все) =(
Код

<img src="scetchs/1.gif"
   onmousemove="this.src='scetchs/2.gif';" 
   onmousemove="this.src='scetchs/3.gif';" 
   onmousemove="this.src='scetchs/4.gif';" 
   onmousemove="this.src='scetchs/5.gif';" 
...
>


PM   Вверх
Amphiluke
Дата 5.9.2009, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 39
Всего: 112



Не понял, зачем цикл...
Код

<script type="text/javascript">
    var folder = 'scetchs/';
    var exe='.gif';
    var i = 1;
        function scetchClick()
        {
               i = (i < 12) ? i+1 : 1;
               var foto=folder+i.toString()+exe;    
               return foto;        
        }
        
</script>
</head>
<body>
    <center>
     <img src="scetchs/1.gif" onmousemove="this.src=scetchClick()">
    </center>     
</body>
</html>


P.S. Вы уверены, что событие именно onmousemove, а не onmouseover, скажем?

Это сообщение отредактировал(а) Amphiluke - 5.9.2009, 17:00
PM   Вверх
Dobermann
Дата 5.9.2009, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 992
Регистрация: 7.1.2008

Репутация: нет
Всего: 0



Цитата(Amphiluke @  5.9.2009,  17:56 Найти цитируемый пост)
P.S. Вы уверены, что событие именно onmousemove, а не onmouseover, скажем?

Я же в hgbcfybb так и написал
Цитата

по событию onmousemove(over)

а что за непонятное условие???
Код

 i = (i < 12) ? i+1 : 1;
...первый раз такое вижу... =\

Добавлено через 4 минуты и 58 секунд
при таком коде картинка просто пропадает после наведения указателя мыши, как будто их нету в папке...но они все там, может что то с путем??? по идее получающийся из этого foto=folder+i.toString()+exe; путь - правильный! 
PM   Вверх
Amphiluke
Дата 5.9.2009, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 39
Всего: 112



Цитата(Dobermann @  5.9.2009,  17:49 Найти цитируемый пост)
а что за непонятное условие???

=)))))
Это тернарный оператор. Посмотрите любой учебник по C-подобному языку программирования.


Цитата(Dobermann @  5.9.2009,  17:49 Найти цитируемый пост)
hgbcfybb

Что это?? O_o
PM   Вверх
Dobermann
Дата 5.9.2009, 17:58 (ссылка)  | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 992
Регистрация: 7.1.2008

Репутация: нет
Всего: 0



да и так чето не работает 
Код

var foto=folder+i.toString()+exe;
var www = new string(foto);    
return www; 


Добавлено через 1 минуту и 22 секунды
Цитата(Amphiluke @  5.9.2009,  18:56 Найти цитируемый пост)
Что это?? O_o 

сорри(punto switcher) 
*в описании темы (под названием...)
PM   Вверх
Amphiluke
Дата 5.9.2009, 18:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 39
Всего: 112



Вот ссылка

Пардон, немного не успел. Сейчас посмотрю, в чем дело.

Добавлено через 6 минут и 19 секунд
Цитата(Dobermann @  5.9.2009,  17:58 Найти цитируемый пост)
да и так чето не работает 


Потому что конструктор String() пишется с заглавной буквы


Это сообщение отредактировал(а) Amphiluke - 5.9.2009, 18:02
PM   Вверх
Dobermann
Дата 5.9.2009, 18:50 (ссылка)  | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 992
Регистрация: 7.1.2008

Репутация: нет
Всего: 0



Цитата(Amphiluke @  5.9.2009,  19:01 Найти цитируемый пост)
Вот ссылка

с тернальным понятно...

Цитата(Amphiluke @  5.9.2009,  19:01 Найти цитируемый пост)
Потому что конструктор String() пишется с заглавной буквы

да и это не помогло =\

Добавлено через 10 минут и 11 секунд
может через switch?!
PM   Вверх
Amphiluke
Дата 5.9.2009, 19:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 39
Всего: 112



Попробуйте для эксперимента выкинуть всё лишнее и посмотреть, как будет работать разгруженный код
Код

<!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>Template</title>
   <script type="text/javascript">
      var folder = "scetchs/";
      var exe=".gif";
      var i = 1;
      function scetchClick() {
         i = (i < 12) ? i+1 : 1;
         var foto=folder+i.toString()+exe;
         document.getElementById("path").firstChild.nodeValue=foto;
         return foto;
     }
</script>
</head>
<body>
    <center>
     <img src="scetchs/1.gif" onmouseover="this.src=scetchClick();" alt="" /><br />
     <span id="path">&nbsp;</span>
    </center>     
</body>
</html>


У меня это работает во всех браузерах.
P.S. Вы на домашнем компутере экспериментируете? Или документ на сервере? Не могла страничка в старом варианте сохраниться в кэше браузера?

Это сообщение отредактировал(а) Amphiluke - 5.9.2009, 19:10
PM   Вверх
Dobermann
Дата 5.9.2009, 20:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 992
Регистрация: 7.1.2008

Репутация: нет
Всего: 0



Вот так работает! Спасибо!
Цитата(Amphiluke @  5.9.2009,  20:09 Найти цитируемый пост)
P.S. Вы на домашнем компутере экспериментируете?

Да, на денвере...

Добавлено через 6 минут и 17 секунд
Странно, сейчас и так работает:
Код

   <script type="text/javascript">
      var folder = "scetchs/";
      var exe=".gif";
      var i = 1;
      function scetchClick() {
         i = (i < 12) ? i+1 : 1;
         var foto=folder+i.toString()+exe;
        // document.getElementById("path").firstChild.nodeValue=foto;
         return foto;
     }
</script>
</head>
<body>
    <center>
     <img src="scetchs/1.gif" onmouseover="this.src=scetchClick();" /><br />
    <!-- <span id="path">&nbsp;</span> -->
    </center>     
</body>
</html>


Добавлено через 8 минут и 8 секунд
Слушай, а если сделать через onmousemove, можно как нить сделать хотя бы секундную задержку???

Добавлено через 12 минут и 52 секунды
window.setInterval(scetchClick(), 500); - не работает...
PM   Вверх
Dobermann
Дата 5.9.2009, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 992
Регистрация: 7.1.2008

Репутация: нет
Всего: 0



вот так не пашет =\
Код

   <script type="text/javascript">
      var folder = "scetchs/";
      var exe=".gif";
      var i = 1;
      
      function scetchClick() {      
         i = (i < 12) ? i+1 : 1;
         var foto=folder+i.toString()+exe;
         return foto;
     }


     setInterval( function scetchClick() , 1000)


</script>
</head>
<body>
    <center>
     <img src="scetchs/1.gif" onmousemove="this.src=scetchClick();" /><br />
    </center>     
</body>
</html>

PM   Вверх
Amphiluke
Дата 5.9.2009, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 39
Всего: 112



Цитата(Dobermann @  5.9.2009,  20:21 Найти цитируемый пост)
вот так не пашет =\


Вот, исправьте, попробуйте:
Код

<!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>Template</title>
   <script type="text/javascript">
      var folder = "scetchs/";
      var exe=".gif";
      var i = 1;
      var t = 0;
      function scetchClick() {
         if (t) window.clearTimeout(t);
         t = window.setTimeout(function() {
               i = (i < 12) ? i+1 : 1;
               document.getElementById("imag").src = folder+i.toString()+exe;
            }, 500);
     }
</script>
</head>
<body>
    <center>
     <img src="scetchs/1.gif" id="imag" onmouseover="scetchClick();" alt="" /><br />
    </center>     
</body>
</html>

PM   Вверх
diadiavova
Дата 5.9.2009, 20:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Цитата(Dobermann @  5.9.2009,  21:21 Найти цитируемый пост)
вот так не пашет

А так и не должно пахать. 
Код

<!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>Template</title>

    <script type="text/javascript">
        var folder = "scetchs/";
        var exe = ".gif";
        var images = new Array();
        for (var i = 0; i < 9; i++)
        {
            images[i] = new Image();
            images[i].src = folder + (i + 1).toString() + exe;
        }
        var index = 0;
        function scetchClick()
        {
            index = (index + 1) % images.length;
            document.getElementById("img").src = images[index].src;
            document.getElementById("path").innerHTML = images[index].src;
        }
     
    </script>

</head>
<body>
    <center>
     <img src="scetchs/1.gif" onmousemove="scetchClick();" alt="" id="img" /><br />
     <span id="path">&nbsp;</span>
    </center>

    <script type="text/javascript">
        setInterval("scetchClick();", 1000);
    </script>

</body>
</html>


Вое как-то так надо. Если ты, конечно это имел в виду. smile 


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Dobermann
Дата 5.9.2009, 20:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 992
Регистрация: 7.1.2008

Репутация: нет
Всего: 0



неа, не работает...

Добавлено @ 20:46
Цитата(diadiavova @  5.9.2009,  21:38 Найти цитируемый пост)
Вое как-то так надо. Если ты, конечно это имел в виду.

смену картинок то мы сделали...сейчас интервал между сменой пытаемся сделать на событие onmousemove

Добавлено @ 20:47
diadiavova, в твоем коде интервал между сменой не работает =\

Это сообщение отредактировал(а) Dobermann - 5.9.2009, 20:49
PM   Вверх
diadiavova
Дата 5.9.2009, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Вот специально во всех браузерах проверил.(Картинки надёргал с первого попавшегося сайта, другой формат)


Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  imgs.rar 50,11 Kb


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Amphiluke
Дата 5.9.2009, 20:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 39
Всего: 112



Цитата(Dobermann @  5.9.2009,  20:43 Найти цитируемый пост)
неа, не работает...


Dobermann, я сейчас свихнусь... Как же не работает? У меня всё работает!
PM   Вверх
Dobermann
Дата 5.9.2009, 20:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 992
Регистрация: 7.1.2008

Репутация: нет
Всего: 0



diadiavova , так они же сами меняются...а под курсор нельзя исправить???

Это сообщение отредактировал(а) Dobermann - 5.9.2009, 20:54
PM   Вверх
Amphiluke
Дата 5.9.2009, 20:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 39
Всего: 112



И, кстати, почему это метод setInterval используется? Нужна только задержка — значит, setTimeout.
PM   Вверх
Dobermann
Дата 5.9.2009, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 992
Регистрация: 7.1.2008

Репутация: нет
Всего: 0



Amphiluke, а, все, работает...просто тормозит очень сильно!!!! =\
PM   Вверх
diadiavova
Дата 5.9.2009, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Цитата(Dobermann @  5.9.2009,  21:50 Найти цитируемый пост)
А то они все за пол секунды успевают пролететь! =\ 

То есть всё-таки ты имел в виду не то что я подумал. На сколько я понимаю, тебе надо, чтобы при движении мыши картинка сменялась через секунду? Я то понял совсем не так. Тогда не очень понятно, зачем выполнять это действие на маузмув. Это событие возникает несколько раз при каждом движении мыши. Тогда посто вместо маузмув используй маузовер или тот же клик.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Amphiluke
Дата 5.9.2009, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 39
Всего: 112



Цитата(Dobermann @  5.9.2009,  20:57 Найти цитируемый пост)
просто тормозит очень сильно!!!! =\


Возможно, это из-за того, что вы слишком много таймеров понаустанавливали методом setInterval (это ж при каждом наведении новый таймер!). Я ж неспроста перестраховывался, вызывая метод clearTimeout. У меня тормозов не наблюдается... ^_^


PM   Вверх
Dobermann
Дата 5.9.2009, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 992
Регистрация: 7.1.2008

Репутация: нет
Всего: 0



Цитата(diadiavova @  5.9.2009,  21:59 Найти цитируемый пост)
То есть всё-таки ты имел в виду не то что я подумал. На сколько я понимаю, тебе надо, чтобы при движении мыши картинка сменялась через секунду? Я то понял совсем не так. Тогда не очень понятно, зачем выполнять это действие на маузмув. Это событие возникает несколько раз при каждом движении мыши. Тогда посто вместо маузмув используй маузовер или тот же клик. 

Это да, но прикольней когда картинки меняются когда по ним водишь, т.е. маузмув, а маузовер - геморно, постоянно с картинки нужно курсор убирать, а онклик - ваще не в тему был бы...
всем спасибо!
PM   Вверх
Amphiluke
Дата 5.9.2009, 21:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 39
Всего: 112



Прошу прощения, из-за плохого соединения было продублировано предыдущее сообщение. Удаляю дубль.


Это сообщение отредактировал(а) Amphiluke - 5.9.2009, 21:13
PM   Вверх
Dobermann
Дата 5.9.2009, 21:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 992
Регистрация: 7.1.2008

Репутация: нет
Всего: 0



Цитата(Amphiluke @  5.9.2009,  22:05 Найти цитируемый пост)
Возможно, это из-за того, что вы слишком много таймеров понаустанавливали методом setInterval (это ж при каждом наведении новый таймер!). Я ж неспроста перестраховывался, вызывая метод clearTimeout. У меня тормозов не наблюдается... ^_^

ну так я твой код и заюзал =)
PM   Вверх
diadiavova
Дата 5.9.2009, 21:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Цитата(Dobermann @  5.9.2009,  22:05 Найти цитируемый пост)
Это да, но прикольней когда картинки меняются когда по ним водишь, т.е. маузмув, а маузовер - геморно

Ну вот .... наваял
Код

<!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>Template</title>

    <script type="text/javascript">
        var folder = "scetchs/";
        var exe = ".jpg";
        var images = new Array();
        for (var i = 0; i < 9; i++)
        {
            images[i] = new Image();
            images[i].src = folder + (i + 1).toString() + exe;
        }
        var index = 0;
        function scetchClick()
        {
            index = (index + 1) % images.length;
            document.getElementById("img").src = images[index].src;
            document.getElementById("path").innerHTML = images[index].src;
            document.getElementById("img").onmousemove = imgMousemove;
        
        }

        function imgMousemove()
        {
            document.getElementById("img").onmousemove = null;
            setTimeout("scetchClick();", 1000);
            
        }
    </script>

</head>
<body>
    <center>
     <img src="scetchs/1.jpg" onmousemove="imgMousemove();" alt="" id="img" /><br />
     <span id="path">&nbsp;</span>
    </center>

</body>
</html>



Это сообщение отредактировал(а) diadiavova - 5.9.2009, 21:33


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Dobermann
Дата 6.9.2009, 00:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 992
Регистрация: 7.1.2008

Репутация: нет
Всего: 0



а почему под картинкой выводится ее путь???
PM   Вверх
diadiavova
Дата 6.9.2009, 00:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 8
Всего: 142



Цитата(Dobermann @  6.9.2009,  01:19 Найти цитируемый пост)
а почему под картинкой выводится ее путь???

А разве не надо? smile 21-ю строку убери.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0834 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.