Исправление div в определенной позиции с отрицательным полем и его анимация позже при нажатии кнопки.

0

У меня как-то сложная ситуация:

Вот скрипка, чтобы попытаться объяснить это: http://jsfiddle.net/sqSj9/1/

Я хочу сделать три div на фиксированных позициях с отрицательным краем - слева, сверху и справа (так скрыто), и как только я нажимаю на кнопку, они должны появляться анимированным способом до середины стр. Я начал делать это в отдельной папке, чтобы попробовать, и он работал отлично. и я получил результат, который вы можете видеть в скрипке (так что да, скрипка - это то, что я хочу выполнить)

Но как только я поместил код в свой код веб-сайта, сначала ничего не появилось при щелчке, поэтому анимация не работала.

когда я удалил position:fixed анимация начала появляться, но divs, которые появились, подтолкнули div, который позади, так что скажем в скрипке: белый div подтолкнул серый div к нижней части, вместо того чтобы скрывать его.

Поэтому моим последним решением было поставить position:absolute. когда я это сделал, анимация работала правильно, но дело в том, что теперь, когда я нажимаю кнопку, divs анимируются, но не заполняют размер моего браузера, а это значит, что, скажем, я немного прокрутил больше, когда я нажимаю кнопку для анимации, происходит анимация, но я ее не вижу. Мне нужно снова прокрутиться, чтобы увидеть это.

Вот еще одна скрипка, чтобы показать, что я имею в виду. прокрутите вниз и попробуйте: http://jsfiddle.net/6xJhC/3/

Поэтому я уверен, что что-то не так с моим исходным кодом, чего я не должен был добавлять, но я просто не могу понять, что это такое! Вот соответствующие части моего кода:

Мой html:

 <?php include 'header.php';?>

    <!-- this is where the header ends and index starts-->
        <div id="container">
    <div id="intro">
       <!-- some content-->
    </div>

    <div id="content">
      <section id="def">    
         <!-- some content-->
      </section>

      <div id="selected-program">
          <div id="top">  
              <!-- some content-->
          </div>

          <div id="left">
              <!-- some content-->
          </div>

          <div id="right">
              <!-- some content-->
          </div>
     </div>

     <section id="program">
        <button id="click" value="click Me"> click me </button>
        <!-- some content-->
     </section>

     <section id="rec">
        <!-- some content-->
     </section>

     <section id="testi">
        <!-- some content-->
     </section>

     <section id="contact">
         <!-- some content-->
     </section>


<?php include 'footer.php';?>

Мои js:

<script type="text/javascript">

$(document).ready(function(){
    var allowScroll = true;

$("body").on('mousewheel DOMMouseScroll',function(e){   // this code prevents scrolling whenever the button is clicked is clicked
    if (!allowScroll){
        e.preventDefault();
    }
});
$("#click").click(function(){
    $("#top").animate({marginTop:'0px'},200);
    $("#left").animate({marginLeft:'0px'},200);
    $("#right").animate({marginRight:'0px'},200);
});
});
</script>

Мой css:

body, html{
    margin:0;
    padding:0;
    background: #fff;
    margin-bottom: 25px;
    overflow-x: hidden;
}

#container{
    padding-top:80px;
}

#intro{
    background:url(images/main.jpg) no-repeat;
    background-size: cover;
    height:492px;
    color: #fff;
    position:fixed;
    z-index: 0;
    width:100%;
}

#content{
    z-index: 600;
    position: relative;
    margin-top: 492px;
    background: #fff;
}

#program {
    height:700px;
}

#rec{
    height:140px;
    background: #f6f6f6;
}

#recommand{
    width:490px;
    padding-top:20px;
    margin:auto;
    height:100px;
}

#testi {
    height:700px;
}

section{
    border-bottom:1px solid;
    border-color:#eee;
    padding-left:130px;
}

#selected-program{
    z-index: 100000;
}

#top{
    width:100%;
    height:80px;
    margin-top:-120px;     
    background: #f6f6f6;
    position:absolute;
    border-top:1px solid #eee;
    border-bottom:1px solid #eee;
}

#left{
    left:0%;
    margin-left:-859px;
    padding-left:130px;
    padding-top:30px;
    width:860px;
    height:603px;
    margin-top:80px;
    float:left;
    position:absolute;
    background:#fff;
}

#right{
    right:0%;
    margin-right:-449px;
    float:right;
    height:633px;
    width:449px;
    margin-top:80px;
    border-left:1px solid #eee;
    position:absolute;
    background: #fff;
}

Поэтому любая помощь будет принята с благодарностью.

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

  • 0
    Я прочитал это, и это вроде имело смысл ... но в то же время это не имело смысла (во всяком случае, для меня). Не могли бы вы создать образ того, что вы хотите? Или объясните это шаг за шагом. Также, если он работает в скрипке, он будет работать на любом сайте.
  • 0
    Так это то, что вы хотите? ДЕМО ЗДЕСЬ . Еще ДЕМО ЗДЕСЬ
Показать ещё 5 комментариев
Теги:
position

1 ответ

0

Справа давайте посмотрим здесь, это не использует ни один из ваших кодов, и я знаю, что это работает!

Поэтому мы устанавливаем divs которые мы хотим скрыть до position: fixed; затем вытащите их из поля зрения, используя left, right и top.

Отсюда так же просто, как установить jQuery (или Javascript) .click чтобы сообщить скрытым divs выйти. Просто.

Поэтому нажмите в любом месте экрана, чтобы открыть скрытые divs и снова нажмите, чтобы скрыть их. Прокрутите вниз и нажмите, и они будут на экране по-прежнему, потому что мы position: fixed.

Побеседуйте с ним, чтобы узнать, как это работает.

Примечание. Для моего я использовал transition CSS для анимации.

HTML:

<div></div>
<div></div>
<div></div>
<div>Scroll Down and Click</div>
<div>Scroll Down and Click</div>
<span></span>

CSS:

html, body {
    margin: 0;
}
div:nth-child(1) {
    width: 200px;
    height: 400px;
    border: 1px solid;
    background: #ddd;
    position: fixed;
    left: -401px;
    -webkit-transition: left 2s;
    transition: left 2s;
}
div:nth-child(2) {
    width: 400px;
    height: 200px;
    border: 1px solid;
    background: #ddd;
    position: fixed;
    top: -401px;
    left: 0;
    right:0;
    margin: auto;
    -webkit-transition: top 2s;
    transition: top 2s;
}
div:nth-child(3) {
    width: 200px;
    height: 400px;
    border: 1px solid;
    background: #ddd;
    position: fixed;
    right: -401px;
    -webkit-transition: right 2s;
    transition: right 2s;
}
div:nth-child(4) {
    width: 100%;
    height: 500px;
    border: 1px solid;
    background: blue;
}
div:nth-child(5) {
    width: 100%;
    height: 500px;
    border: 1px solid;
    background: purple;
}
span {
    height: 1000px;
    width: 100%;
    display: block;
    position: absolute;
    top: 0;
}

JQuery:

$("span").click(function () {
    var clicks = $(this).data('clicks');
    if (clicks) {
        $("div:nth-child(1)").css("left", "-401px");
        $("div:nth-child(2)").css("top", "-401px");
        $("div:nth-child(3)").css("right", "-401px");
    } else {

        $("div:nth-child(1)").css("left", "0");
        $("div:nth-child(2)").css("top", "0");
        $("div:nth-child(3)").css("right", "0");
    }
    $(this).data("clicks", !clicks);
});

ДЕМО ЗДЕСЬ

  • 0
    вау я понял проблема с position:relative в #content . когда я его убрал, это дало мне ужасный результат, но по крайней мере это дало мне результат ... У вас есть идеи, почему? или как это сделать? Ваш код действительно помогает, но я пытаюсь решить проблему с наименьшими возможными изменениями. в любом случае спасибо: D .. но да, есть идеи, почему position:relative влияет на это?
  • 0
    Я должен был бы увидеть код.
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню