2

我有點麻煩,因爲我不知道如何在jQuery中爲firebase實現圖像彈出窗口。我在互聯網上搜索它,但沒有找到如何實現它的動態網站的方式。我有以下jQuery代碼,任何人都可以幫忙嗎?我還沒有發現任何關於此的stackoverflow。如何在jQuery中爲firebase實現圖像彈出框

這是我的html代碼

<html> 
<head> 
    <meta charset="utf-8"> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags --> 
    <meta name="description" content=""> 
    <meta name="author" content=""> 

    <title>images</title> 

    <!-- Latest compiled and minified CSS --> 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" integrity="sha384-1q8mTJOASx8j1Au+a5WDVnPi2lkFfwwEAa8hDDdjZlpLegxhjVME1fgjWPGmkzs7" crossorigin="anonymous"> 

    <!-- Optional theme --> 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap-theme.min.css" integrity="sha384-fLW2N01lMqjakBkx3l/M9EahuwpSfeNvV63J5ezn3uZzapT0u7EYsXMjQV+0En5r" crossorigin="anonymous"> 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css"> 
    <link rel="stylesheet" href="overrides.css"> 


    </head> 

    <style> 
.contentImage{ 
    position: relative; 
    } 


.image { 
    opacity: 1; 
    display: block; 
    width: 100%; 
    height: 40%; 
    transition: .5s ease; 
    backface-visibility: hidden; 
} 


.image:hover { 
    opacity: 0.3; 
} 

.gallery { 
    margin: 5px; 
    border: 1px solid #ccc; 
    float: left; 
    width: 180px; 
} 

.gallery:hover { 
    border: 1px solid #777; 
} 

.gallery img { 
    width: 100%; 
    height: auto; 
} 



</style> 
<body> 

    <nav class="navbar navbar-inverse navbar-static-top"> 
    <div class="container"> 
     <div class="navbar-header"> 
     <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> 
      <span class="sr-only">Toggle navigation</span> 
      <span class="icon-bar"></span> 
      <span class="icon-bar"></span> 
      <span class="icon-bar"></span> 
     </button> 
     <a class="navbar-brand" href="#">here is the title</a> 
     </div> 
     <div id="navbar" class="collapse navbar-collapse"> 
     <ul class="nav navbar-nav"> 
      <li><a href="index.html">Home</a></li> 
      <li><a href="#">Your images</a></li> 
      <li class="active"><a href="#">Public images</a></li> 
     </ul> 
     </div><!--/.nav-collapse --> 
    </div> 
    </nav> 

    <div class="container" id="contentHolder"> 
    </div> 


    <script src="https://www.gstatic.com/firebasejs/live/3.0/firebase.js"></script> 
    <script>  
    // Initialize Firebase 
    var config = { 
     apiKey: "AIzaSyB181Itkz9i9YjeJYLq9GbF94p8409wEfE", 
    authDomain: "farmyantra.firebaseapp.com", 
    databaseURL: "https://farmyantra.firebaseio.com", 
    storageBucket: "farmyantra.appspot.com", 
    messagingSenderId: "146534813177" 
    }; 
    firebase.initializeApp(config); 
    </script> 
    <script src="https://apis.google.com/js/platform.js" async defer></script> 
    <!-- Bootstrap core JavaScript 
    ================================================== --> 
    <!-- Placed at the end of the document so the pages load faster --> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 
    <script>window.jQuery || document.write('<script src="../../assets/js/vendor/jquery.min.js"><\/script>')</script> 
    <!-- Latest compiled and minified JavaScript --> 
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script> 
    <script type="text/javascript" src="timeline.js"></script> 


</body> 
</html> 

,這是我的JS文件

$(document).ready(function(){ 
    firebase.auth().onAuthStateChanged(function(user) { 
    if (user) { 
     // User is signed in. 
     var token = firebase.auth().currentUser.uid; 
     queryDatabase(token); 
    } else { 
     // No user is signed in. 
     window.location = "index.html"; 
    } 
}); 
}); 


function queryDatabase(token) { 
    firebase.database().ref('/Posts/').once('value').then(function(snapshot) { 
    var PostObject = snapshot.val(); 
    var keys = Object.keys(PostObject); 
    var currentRow; 
    for (var i = 0; i< keys.length; i++) { 
     var currentObject = PostObject[keys[i]]; 
     if (i % 4 == 0) { 
     currentRow = document.createElement("div"); 
     $(currentRow).addClass("row"); 
     $("#contentHolder").append(currentRow); 
     } 
     var col = document.createElement("div"); 
     $(col).addClass("col-lg-3"); 
     var image = document.createElement("img"); 
     image.src = currentObject.url; 
     $(image).addClass("contentImage image hover "); 
     var p = document.createElement("p"); 
     $(p).html(currentObject.caption); 
     $(p).addClass("contentCaption"); 
     $(col).append(image); 
     $(col).append(p); 
     $(currentRow).append(col); 
     //create new row on every third entry 
     //col-lg-4 
    } 
    // ... 
    }); 

} 
+1

@KENdi進行調整.. –

回答

2

嗯,你的問題是不明確的。不過,讓我試着按照我的理解來回答。如果要在彈出窗口中顯示圖像,請將引導模式添加到html,並單擊要從Firebase數據庫顯示的每個圖像,然後按照以下說明顯示引導模式:

將此模式div添加到您的HTML :

<div id="imageModal" class="modal fade" role="dialog"> 
    <div class="modal-dialog modal-sm"> 
    <div class="modal-content"> 
     <div class="modal-header"> 
      <button type="button" class="close" data-dismiss="modal">&times;</button> 
      <h3 class="modal-title">Caption goes here..</h3> 
     </div> 
     <div class="modal-body"> 
      <div id="image"> </div> 
     </div> 
    </div> 
    </div> 

現在,在您timeline.js文件,添加如下代碼:

$('img').on('click', function() { 
     $('#imageModal #image').empty(); 
     var imgUrl = $(this).attr('src'); 
     var caption = $(this).siblings('.contentCaption').html(); 
     $('#imageModal #image').append('<img width="100%" height="100%" src="' + imgUrl + '"></img>'); 
     $('#imageModal .modal-title').text(caption); 
     $('#imageModal').modal('show'); 
    }); 

注:有一個小錯誤在你queryDatabase樂趣ction:

var image = document.createElement("img"); 
image = document.createElement("div") 
image.src = currentObject.url; 

您正在創建一個圖像元素並將相同的變量分配給一個div元素。因此,圖像元素被div元素覆蓋。刪除第二條語句image = document.createElement("div"),以便顯示圖像元素。

+1

感謝您指出錯誤,我編輯了該錯誤。 –

+0

歡迎。但是你的問題得到了正確的答案嗎? – PrashanthBR

+1

感謝兄弟,你救了我的一天,upvoted你的答案,並表示接受..謝謝 –