Модуль настройки PHP, чтобы показать, существует ли DIV - PullRequest
0 голосов
/ 12 января 2012

Я очень новичок в PHP, поэтому настройка готовых скриптов - еще не моя сильная сторона.

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

Маска #, как вы можете видеть из кода, представляет собой полупрозрачный слой черного цвета над страницей.

Вот скрипт, который мне нужно настроить:

$(document).ready(function() {  

    //select all the a tag with name equal to modal
    $('a[name=modal]').click(function(e) {
        //Cancel the link behavior
        e.preventDefault();
        //Get the A tag
        var id = $(this).attr('href');

        //Get the screen height and width
        var maskHeight = $(document).height();
        var maskWidth = $(window).width();

        //Set height and width to mask to fill up the whole screen
        $('#mask').css({'width':maskWidth,'height':maskHeight});

        //transition effect     
        $('#mask').fadeIn(1000);    
        $('#mask').fadeTo("slow",0.8);  

        //Get the window height and width
        var winH = $(window).height();
        var winW = $(window).width();

        //Set the popup window to center
        $(id).css('top',  winH/2-$(id).height()/2);
        $(id).css('left', winW/2-$(id).width()/2);

        //transition effect
        $(id).fadeIn(2000); 

    });

});

В настоящее время он открывается автоматически при нажатии на эту ссылку:

<a href="#" name="modal">

И я пытаюсь получить егозапускать автоматически, когда этот DIV существует на странице:

<div name="showintrovideo"></div>

Большое спасибо, ребята, вы всегда такая большая помощь!

- - Эндрю

РЕДАКТИРОВАТЬ

Вот полный код, с которым я работаю:

HTML

<div id="boxes">
    <div id="qrcodemarketing" class="window">

        <!-- close button is defined as close class -->
        <div style="float:right;">
        <a href="#" class="close"><img src="images/close_window.png" width="22"height="22" alt="Close Window" /></a>
        </div>

        <iframe width="640" height="480" src="http://www.youtube.com/embed/MYVIDEO" frameborder="0" allowfullscreen></iframe><br /><b>Pause the video before closing this window</b>

    </div>
    </div>




    <!-- Do not remove div#mask, because you'll need it to fill the whole screen --> 
    <div id="mask"></div>

CSS

#mask {
  position:absolute;
  width:100%;
  height:100%;
  left:0;
  top:0;
  z-index:9000;
  background-color:#000;
  display:none;
}

#boxes .window {
  position:absolute;
  background:none;
  display:none;
  z-index:9999;
  padding:20px;
  color:#fff;
}

.js файл

$(document).ready(function() {  

    //select all the a tag with name equal to modal
    $('a[name=modal]').click(function(e) {
        //Cancel the link behavior
        e.preventDefault();
        //Get the A tag
        var id = $(this).attr('href');

        //Get the screen height and width
        var maskHeight = $(document).height();
        var maskWidth = $(window).width();

        //Set height and width to mask to fill up the whole screen
        $('#mask').css({'width':maskWidth,'height':maskHeight});

        //transition effect     
        $('#mask').fadeIn(1000);    
        $('#mask').fadeTo("slow",0.8);  

        //Get the window height and width
        var winH = $(window).height();
        var winW = $(window).width();

        //Set the popup window to center
        $(id).css('top',  winH/2-$(id).height()/2);
        $(id).css('left', winW/2-$(id).width()/2);

        //transition effect
        $(id).fadeIn(2000); 

    });


    //if close button is clicked
    $('.window .close').click(function (e) {
        //Cancel the link behavior
        e.preventDefault();
        $('#mask, .window').hide();
    });     

    //if mask is clicked
    $('#mask').click(function () {
        $(this).hide();
        $('.window').hide();
    });         

});

Можно ли просто настроить файл .js, чтобы он также мог открываться как автоматически, так и нажатием кнопки?

Спасибо!

1 Ответ

0 голосов
/ 12 января 2012

Возможно, вам лучше использовать сеанс или файл cookie, чтобы определить, показывать ли вступительное видео. Я бы также обернул ваше всплывающее окно в метод, который вы можете вызвать для элемента jQuery. Что-то вроде:

$('a').myPopupMethod();

Таким образом, вы также можете вызвать его программно:

$.myPopupMethod();

На своей HTML-странице вы можете использовать PHP, чтобы определить, показывать ли ваше всплывающее окно или нет:

<?php
    session_start();

    $video_watched = $_SESSION['video_watched'];
?>
<!DOCTYPE html>
<html>
  <body>
    <script src="jquery.js"></script>
<?php if ($video_watched != true): ?>
    <script>
        $(document).ready(function() {
            $.myPopupMethod();
        });
    </script>
<?php endif; ?>
  </body>
</html>
...