N-son tabbed / JsScrollbar, пытающийся заставить gif играть от щелчка ссылки, используя jquery - PullRequest
0 голосов
/ 12 апреля 2010

Позвольте мне начать с констатации очевидного; Я здесь новичок. Тем не менее, я надеюсь, что я не нарушаю некоторые стандарты, которые я пропустил, опубликовав это. XD

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

Anywho! Я использую div с вкладками и JsScrollbar, созданные N-son (http://www.downloadjavascripts.com/list/javasitek60/Details.aspx)), и до сих пор использовал только jquery для динамического центрирования контента на странице.

Моя проблема, однако, заключается в следующем ... У меня есть gif на странице, которая выступает в качестве фона (он не мозаичный), и я хотел бы иметь его, чтобы при нажатии на одну из использованных ссылок на вкладках n-sons (пример: новости) он также приводит к тому, что gif загружается и проигрывается один раз.

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

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

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

Заранее спасибо.

1 Ответ

0 голосов
/ 16 апреля 2010

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

    <script type="text/javascript">
var scroller  = null;
var scrollbar = null;

window.onload = function () {
  scroller  = new jsScroller(document.getElementById("News"), 400, 180);
  scrollbar = new jsScrollbar (document.getElementById("Scrollbar-Container"), scroller, true, scrollbarEvent);
}

function scrollbarEvent (o, type) {
    if (type == "mousedown") {
        if (o.className == "Scrollbar-Track") o.style.backgroundColor = "none";
        else o.style.backgroundColor = "none";
    } else {
        if (o.className == "Scrollbar-Track") o.style.backgroundColor = "none";
        else o.style.backgroundColor = "none";
    }
}

function swapIt(o) {
    o.blur();
    if (o.className == "current") return false;

    var list = document.getElementById("Navigation").getElementsByTagName("a");
    for (var i = 0; i < list.length; i++) {
        if (list[i].className == "current") {
            list[i].className = "";
            document.getElementById(list[i].title).y = -scroller._y;
        }
        if (list[i].title == o.title) o.className = "current";
    }

    list = document.getElementById("Container").childNodes;
    for (var i = 0; i < list.length; i++) {
        if (list[i].tagName == "DIV") list[i].style.display = "none";
    }

    var top = document.getElementById(o.title);
    top.style.display = "block";
    scrollbar.swapContent(top);
    if (top.y) scrollbar.scrollTo(0, top.y);

    return false;
}
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
</script>
...