Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][AJAX]inkrementacja o dwa
Forum PHP.pl > Forum > Przedszkole
dabb
Jak w tym fragmencie kodu zmienić aby wartość num zmieniała się o 2, czyli domyślnie jest 1 i każdy następny skok to 3 5 itd
Ogólne założenie jest takie, aby przewijać warstwy na stronie o id ="project_numerek_nieparzysty"

CODE

function new_proj_id(which) {
current = $("#projects div.current").attr("id");
var num = current.substring(current.lastIndexOf('_') + 1, current.length);
if(which == 'next')
num++;
else
num--;
var new_id = 'project_' + num;
return new_id;
}
piotrooo89
num+2;

i

num-2;

?
dabb
nie działa taki zapis
piotrooo89
to może tak:

Kod
ile = 2;
if(which == 'next')
num = num + ile;
else
num = num - ile;
dabb
Przewijanie do tyłu działa. Poniżej cały kod js.

CODE
function preventDefaultAction(e) {
if (e) {
if (typeof e.preventDefault != 'undefined') {
e.preventDefault();
}
else {
e.returnValue = false;
}
}
return false;
}

function new_proj_id(which) {
current = $("#projects div.current").attr("id");
var num = current.substring(current.lastIndexOf('_') + 1, current.length);
ile = 2;
if(which == 'next')
num = num + ile;
else
num = num - ile;
var new_id = 'project_' + num;
return new_id;
}

function get_last_project_id() {
return $("#projects div.last").attr("id");
}

function set_current(id) {
$("#projects .current").removeClass('current');
$('#' + id).addClass('current');
}

function next_project(e) {
if($('#projects div.current').hasClass('last')) {
to_project('project_1', 1200);
}
else {
var new_id = new_proj_id('next');
to_project(new_id, 600);
}
return preventDefaultAction(e);
}

function previous_project(e) {
if($('#projects div.current').hasClass('first')) {
var last_id = get_last_project_id()
to_project(last_id, 1200);
}
else {
var new_id = new_proj_id('previous');
to_project(new_id, 600);
}
return preventDefaultAction(e);
}

function to_project(new_id, speed) {
if(speed) {
$("#projects").animate({
left: 70-$('#' + new_id).position().left
}, speed);
set_current(new_id);
}
else {
$("#projects").animate({
left: 370-$('#' + new_id).position().left
}, 600);
set_current(new_id);
}
}

function init() {
jQuery.easing.def = "easeOutQuint";
$("#next_project_btn").click(next_project);
$("#previous_project_btn").click(previous_project);
}

$(document).ready(function(){
init();
});


Style css dla warstw (warstwy mają szerokość 1024px):

CODE
#project_1 {left: 70px;}
#project_3 {left: 1094px;}
#project_5 {left: 2118px;}
#project_7 {left: 3142px;}
#project_9 {left: 4166px;}
#project_11 {left: 5190px;}
#project_13 {left: 6214px;}
#project_15 {left: 7238px;}
#project_17 {left: 8262px;}
#project_19 {left: 9286px;}
#project_21 {left: 10310px;}
#project_23 {left: 11334px;}
#project_25 {left: 12358px;}
#project_27 {left: 13382px;}
#project_29 {left: 14406px;}


Jak chce przesunąć w prawo function next_project(e) to dostaje błąd:

$("#" + new_id).position() is undefined
to_project("project_12", 600)action.js (wiersz 60)
next_project(Object originalEvent=Event click which=1 view=window)action.js (wiersz 40)
e()jquery-1...6.pack.js (wiersz 11)
e()jquery-1...6.pack.js (wiersz 11)
[Break on this error] left: 70-$('#' + new_id).position().left
erix
Spróbuj objąć:
Kod
370-$('#' + new_id).position().left

w nawiasy.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.