欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > IT业 > vue3使用panolens.js实现全景,带有上一个下一个,全屏功能

vue3使用panolens.js实现全景,带有上一个下一个,全屏功能

2024/10/24 23:28:47 来源:https://blog.csdn.net/weixin_46631078/article/details/142177396  浏览:    关键词:vue3使用panolens.js实现全景,带有上一个下一个,全屏功能

panolens官方文档Home - Panolens

1.加载核心js库 (文件在untils里面)

import '@/utils/panolens/three.min.js';

import '@/utils/panolens/panolens.min.js';

/项目中 /railway/modalIframe/playPanorama/player/js/panolens-ht.js 为修改后版本 可以获取在全景点击获取坐标

//<script src="js/panolens-ht.js"></script>

2.创建全景容器 

 <div id="newqj" :style="{ display: tabBcnclick == 1 ? 'block' : 'none' }"style="width: 60%;height: 422px;margin: 0 auto;margin-top: 30px;position: relative;overflow: hidden;"><div style="" class="leftArr"><el-icon style="font-size: 24px !important;cursor: pointer;" @click.stop="leftArrowFnc"><ArrowLeft /></el-icon></div><div class="rightArr" style=""><el-icon style="font-size: 24px !important;cursor: pointer;"@click.stop="rightArrowFnc"><ArrowRight /></el-icon></div></div>

3,加载函数和默认值

const currentIndex = ref(0);

const imgUrl = ref('')

const panorama = ref('')

const viewer = ref('')

panoramaFilesList为后端返回的数组,包含file_path

function panoramaFnc() {imgUrl.value = formData.value.panoramaFilesList[currentIndex.value].file_path;panorama.value = new PANOLENS.ImagePanorama(imgUrl.value);//将全景鱼眼图片生成全景// 加载图片数据viewer.value = new PANOLENS.Viewer({container: document.getElementById('newqj'),//选中容器承载视图autoHideInfospot: false,//点击非热点区域 自动隐藏信息点 true:触发,false:不触发 默认值为truecontrolButtons: ['fullscreen'],//全景底部按钮 默认值 ['fullscreen', 'setting', 'video'] fullscreen设置全屏 setting添加设置按钮});viewer.value.add(panorama.value);//生成的全景必须放入viewer视图中才能显示
}

4.上一个下一个方法

function leftArrowFnc(e) {if (currentIndex.value > 0) {currentIndex.value--;panorama.value.load(formData.value.panoramaFilesList[currentIndex.value].file_path)} else {return }}
function rightArrowFnc() {if (currentIndex.value < formData.value.panoramaFilesList.length - 1) {currentIndex.value++;panorama.value.load(formData.value.panoramaFilesList[currentIndex.value].file_path)} else {return}
}

5.切换到360全景方法

function tabBtnClickFnc(item) {tabBcnclick.value = item.valueconsole.log(tabBcnclick.value);nextTick(() => {panoramaFnc()// panorama.value.load(formData.value.panoramaFilesList[currentIndex.value].file_path)})}

效果图:

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com