基于Three.js實現(xiàn)360度全景圖片
Three.js 是一款運行在瀏覽器中的3D引擎, 處理三維效果。在一些相機的官網(wǎng)首頁中,經(jīng)常有一張圖在旋轉(zhuǎn),圖上面懸浮著文字。這種效果是如何做出來的呢?先看效果,再講解。

1).建立一個java web 工程(或者其他工程), 因為three.js 的全景圖要通過服務(wù)端瀏覽(安全的考慮)

2).在上面的結(jié)構(gòu)中,只有css中的index.css是自定義的,其余css和js都屬于three.js自帶的工具文件。包含圖片在內(nèi),已經(jīng)上傳資源了,點擊此處下載。
3).index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!doctype html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>基于Three.js的360度全景圖片</title>
<link rel="stylesheet" type="text/css" href="css/normalize.css" />
<link rel="stylesheet" type="text/css" href="css/default.css" >
<link rel="stylesheet" type="text/css" href="css/index.css" >
<script src="js/three.min.js"></script>
<script src="js/photo-sphere-viewer.min.js"></script>
</head>
<body>
<div class="container">
<div class="description">
<h1>苑中遇雪</h1>
<p> 紫禁仙輿詰旦來,青旂遙倚望春臺。</p>
<p>不知庭霰今朝落,疑是林花昨夜開。</p>
</div>
<div id="my-pano" class="pano"></div>
</div>
</body>
<script>
window.onload = function() {
var div = document.getElementById('my-pano');
var PSV = new PhotoSphereViewer({
// Panorama, given in base 64
panorama: 'images/snow.jpg',
// Container
container: div,
autoload:true,
// Deactivate the animation
time_anim: 2000,
// Display the navigation bar
navbar: true,
// Resize the panorama
size: {
width: '70%',
height: 700
}
});
};
</script>
</html>
4).index.css
body{ text-align:center}
.container {
margin:0 auto;
}
.pano {
margin:0 auto;
z-index:1;
}
.description {
width:400px;
left:350px;
margin-top:40px;
z-index:100;
position:absolute;
float:left;
}
.description h1 {
font-size:40px;
color:#FFF
}
.description p {
font-size:22px;
color:#FFF
}
5).根據(jù)實際應(yīng)用在瀏覽器測試,全景圖可自動旋轉(zhuǎn)、可鼠標(biāo)拖拽轉(zhuǎn)動、可全屏
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
JavaScript數(shù)據(jù)結(jié)構(gòu)之二叉查找樹的定義與表示方法
這篇文章主要介紹了JavaScript數(shù)據(jù)結(jié)構(gòu)之二叉查找樹的定義與表示方法,簡單講述了二叉查找樹的概念、特點及javascript針對二叉查找樹的創(chuàng)建、插入、遍歷等操作相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2017-04-04
僅用[]()+!等符號就足以實現(xiàn)幾乎任意Javascript代碼
僅用一些符號就足以實現(xiàn)幾乎任意Javascript代碼的方法,比較怪異,對于特殊需要可能用得到。2010-03-03
關(guān)于JavaScript實現(xiàn)動畫時動畫抖動的原因與解決方法
最近在使用JS動畫做一些練習(xí)的時候我發(fā)現(xiàn)在動畫執(zhí)行時間內(nèi)快速移開鼠標(biāo)時會出現(xiàn)動畫因鼠標(biāo)移動過快從而導(dǎo)致代碼沖突讓畫面抖動的bug,這篇文章主要給大家介紹了關(guān)于JavaScript實現(xiàn)動畫時動畫抖動的原因與解決方法,需要的朋友可以參考下2022-06-06
Javascript中的var_dump函數(shù)實現(xiàn)代碼
發(fā)現(xiàn)了一個非常好的JavaScript調(diào)試方法,目前看到的是可以打印Object/Array/Function/String四種類型,使用方法和PHP中的var_dump()一樣,只要直接dump(變量名)即可。2009-09-09
JavaScript組合模式Composite Pattern
這篇文章主要介紹了學(xué)習(xí)理解JavaScript組合模式,組合模式及Composite Pattern又叫部分整體模式,是用于把一組相似的對象當(dāng)作一個單一的對象2022-04-04
微信內(nèi)置瀏覽器私有接口WeixinJSBridge介紹
這篇文章主要介紹了微信內(nèi)置瀏覽器私有接口WeixinJSBridge介紹,本文講解了發(fā)送給好友、分享函數(shù)、隱藏工具欄、隱藏三個點按鈕等功能,需要的朋友可以參考下2015-05-05

