Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.02.2011, 01:08
Новичок на форуме
Отправить личное сообщение для festerod Посмотреть профиль Найти все сообщения от festerod
 
Регистрация: 01.02.2011
Сообщений: 3

Переключатель картинок
Доброго времени суток. Я тут бьюсь над созданием блока с кучей картинок которые переключаются по клику. Вот что у меня вышло:
Сам блок, при нажатии на которые картинка переключается
<style>
.no { background: url(/images/001/01.png) no-repeat; background-position: center top; height: 1400px; cursor: pointer;}
</style> 
<form method="post">
<input type="hidden" id="checkbox1" name="checkbox1" value="1">
</form>
<div class="no" id="div1" onclick="checked('div1', 'checkbox1', 'sel')"></div>

И скрипт к нему
<script language="JavaScript"> 
function checked (divs, box, sel) 
{ 
var val = document.getElementById (box).value * 1 + 1 ; 
if(document.getElementById (box).value<9)
{
document.getElementById (divs).style.background = "url('/images/001/0" + val + ".png') no-repeat center top "; 
document.getElementById (box).value = val; 
document.getElementById (sel).value = val; 
}
else
{
document.getElementById (divs).style.background = "url('/images/001/" + val + ".png') no-repeat center top "; 
document.getElementById (box).value = val; 
document.getElementById (sel).value = val; 
}}
</script>

И у меня еще есть выпадающая менюшка:
<select id="sel" name="sel" title="Номер страницы" style="width: 100px;"><option value="1" selected>1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
     </select>


Так вот у меня не получилось сделать чтобы при нажатии на пункты этой менюхи картинка переключалась на нужную. И не получилось сделать кнопку "предыдущая картинка"
Помогите дописать, а то я уже не знаю как быть

Последний раз редактировалось festerod, 01.02.2011 в 01:32.
Ответить с цитированием
  #2 (permalink)  
Старый 01.02.2011, 09:39
Интересующийся
Отправить личное сообщение для softovik88 Посмотреть профиль Найти все сообщения от softovik88
 
Регистрация: 01.02.2011
Сообщений: 19

ничего не понятно
Ответить с цитированием
  #3 (permalink)  
Старый 01.02.2011, 09:44
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

festerod, сделай полный тестовый пример а не куски какие-то...
Ответить с цитированием
  #4 (permalink)  
Старый 01.02.2011, 14:59
Интересующийся
Отправить личное сообщение для Soul D Esire Посмотреть профиль Найти все сообщения от Soul D Esire
 
Регистрация: 25.01.2011
Сообщений: 15

Вот изваял... На самом деле я тоже совсем недавно начал изучать JS и единственное на что меня хватило так это на:

<html>
<head>
 <style>
    #Picture { 
       background-image:url(../img/1.jpg);
       background-color: black;
       width: 100px;
       height: 100px; 
    }
 </style>
</head>
<body>
        <select id="select1">
            <option value="1">First Picture</option>
            <option value="2">Second Picture</option>
            <option value="3">Third Picture</option>
            <option value="4">Fourth Picture</option>
        </select>
        <input id="button1" type="button" value="Next"/>
        <input id="button2" type="button" value="Previous"/>
    <div id="Picture"></div>
    
    <script type="text/javascript">
        document.getElementById('button1').onclick = function(){
            var k = document.getElementById('select1').value;
            if (document.getElementById('select1').value < 4) {
                k++;
                document.getElementById('Picture').style.backgroundImage = "url(../img/" +k+".jpg)";
                document.getElementById('select1').value++;
            };
        };
        
        document.getElementById('button2').onclick = function(){
            var k = document.getElementById('select1').value;
            if (document.getElementById('select1').value > 1) {
                k--;
                document.getElementById('Picture').style.backgroundImage = "url(../img/" +k+".jpg)";
                document.getElementById('select1').value--;
            };
        };
        
        document.getElementById('select1').onchange = function(){
            var k = document.getElementById('select1').value;
            document.getElementById('Picture').style.backgroundImage = "url(../img/" +k+".jpg)";
        }
    </script>

</body>
</html>


Собственно, функции вроде как понятно что делают...
Ответить с цитированием
  #5 (permalink)  
Старый 01.02.2011, 16:02
Новичок на форуме
Отправить личное сообщение для festerod Посмотреть профиль Найти все сообщения от festerod
 
Регистрация: 01.02.2011
Сообщений: 3

Soul D Esire,
спасибо, это почти то что надо, только не подскажешь как сделать чтобы картинка была не фоном и при клике на нее она переключалась на следующую
Ответить с цитированием
  #6 (permalink)  
Старый 02.02.2011, 09:28
Интересующийся
Отправить личное сообщение для Soul D Esire Посмотреть профиль Найти все сообщения от Soul D Esire
 
Регистрация: 25.01.2011
Сообщений: 15

Ну можно оставить картинку в <div> и навесить на блок событие, например, на клик мыши. Что-то типа:

document.getElementById('Picture').onclick = function(){
            var k = document.getElementById('select1').value;
            if (document.getElementById('select1').value < 4) {
                k++;
                document.getElementById('Picture').style.backgroundImage = "url(../img/" +k+".jpg)";
                document.getElementById('select1').value++;
            } else {
                document.getElementById('Picture').style.backgroundImage = "url(../img/" +1+".jpg)";
                document.getElementById('select1').value = 1;
            }
        };


Сорри, если есть косяки в коде... Пишу без возможности проверить, что я пишу)) но вроде должно работать...
Ответить с цитированием
  #7 (permalink)  
Старый 02.02.2011, 10:51
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Soul D Esire, в js есть такая арифметическая операция как % (Модуль числа). Так вот она ооочень удобна для таких случаев. Твой пример примет вид


document.getElementById('Picture').onclick = function(){
            var k = document.getElementById('select1').value;
            k = parseInt(k);
            k++;
            k = k%4;
            k = (k==0)? 1: k;
            document.getElementById('Picture').style.backgroundImage = "url(../img/" +k+".jpg)";
            document.getElementById('select1').value=k;
        };

Сообщение от Soul D Esire
Пишу без возможности проверить, что я пишу
Я также не проверял... Но думаю что идея понятна.
Ответить с цитированием
  #8 (permalink)  
Старый 02.02.2011, 13:45
Интересующийся
Отправить личное сообщение для Soul D Esire Посмотреть профиль Найти все сообщения от Soul D Esire
 
Регистрация: 25.01.2011
Сообщений: 15

Угу, понял) Стало красивее и изящнее) Только вот % - это вроде как остаток от целочисленного деления, а не модуль)
Ответить с цитированием
  #9 (permalink)  
Старый 02.02.2011, 14:18
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от Soul D Esire
Только вот % - это вроде как остаток от целочисленного деления, а не модуль
Я скопировал как тут написали
http://javascript.ru/arithmetic

В институте мне его давали как "деление по модулю".
Ответить с цитированием
  #10 (permalink)  
Старый 02.02.2011, 14:23
Интересующийся
Отправить личное сообщение для Soul D Esire Посмотреть профиль Найти все сообщения от Soul D Esire
 
Регистрация: 25.01.2011
Сообщений: 15

Ну для меня запись -7%2 = -(7%2) = -(1) = -1... Тот же унарный минус, навешанный на целочисленное деление...
Для мя модуль = это функция abs() из библиотеки Math))
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите, пжлста, найти (или написать) скрипт для смены картинок. Artweb Работа 9 25.02.2011 11:28
Замена картинок Леночка Элементы интерфейса 1 28.09.2010 22:05
Java ScrollTo. Скрол картинок на java. Надо подправить. vdm Ваши сайты и скрипты 1 28.10.2009 20:46
Java ScrollTo. Скрол картинок на java. Надо подправить. vdm Работа 0 27.10.2009 14:57
Как сделать прокрутку картинок Lugan Элементы интерфейса 1 26.06.2009 12:52