在Krpano中点击热点放大图片并交互

在全景项目中,经常会遇到这样的功能:点击场景中的某个热点,能够进行图片放大,同时还可以对图片进行交互操作,比如放大图片、拖动图片等,本章节内容讲述如何在Krpano库中调用js代码实现图片的放大和交互。具体效果如下:

本次我们使用到的js库叫viewer,github地址

接下来进入本章的重点,如何在Krpano项目中集成使用:

步骤一:

  1. 下载 viewer.jsviewer.css 本文所使用版本为1.5.0 不同版本会有所区别,看官网使用(文件在dist) 百度网盘
  2. 下载后,将文件放到你工程里,我这里在工程下建立有css和js文件夹

步骤二:

在index.html中引入这两个文件,Krpano默认创建的项目叫vtour.html,我这里更名成index.html了,具体引入方式如下,将下面代码放到head标签里:

<!-- 图片预览使用 -->
<link rel="stylesheet" href="css/viewer.css" />

将下面代码放到head或body中都可以,我放到了body的第一行

<script src="js/viewer.js"></script>

步骤三:

在body中创建一个img标签,用于全局图片放大功能,创建时默认不显示,设置display为none,具体代码如下:

<!-- 该img标签用于全局图片放大功能(全景场景中点击图片热点展示图片使用) -->
<img src="" id="hideImg" style="display: none" />

封装js函数用于Krpano中热点事件调用,功能是根据热点点击展示要放大的图片,具体代码如下:

// 图片预览方式(krpano中调用)  
function openImage(imgscr) {document.getElementById("hideImg").src = imgscr;const viewer = new Viewer(document.getElementById('hideImg'), {url: "data-original",});viewer.show();
}

注意以上js代码放到html文件的body下默认生成的id为pano的div下的script标签里。

步骤四:

以上已基本完成所有前置工作,接下来就是在Krpano中调用了,找到你在场景中设置的图片点击热点,示例代码如下:

<!-- 添加图片热点 -->
<hotspot name="spot4-1-1" url="./images/waves.png" onloaded="do_crop_animation(128,128, 15);"
ath="0"  
atv="2" 
scale="0.6" 
zoom="true"
onclick="js(openImage('./images/rongyu/hotimage/4.企业文化.jpg'););"
/>

上述代码中,核心代码是onclick事件,在Krpano调用js方法格式:js(方法名(参数););
注意,这个在调用openImage函数时,传入的时当前要放大的图片路径。
以上就是在Krpano中调用js的函数库实现图片的放大效果,如果有什么问题可以私信我。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/857566.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL入门学习-连接查询.RIGHT JOIN

Rights Join 是 MySQL 中的一种连接查询类型&#xff0c;用于根据右表中的匹配条件&#xff0c;将左表中的数据与右表中的数据进行连接。 一、与其他连接查询相比&#xff0c;Rights Join 具有以下特点&#xff1a; 1. 连接方向&#xff1a; Rights Join 以右表为主表&#x…

django 身份验证与鉴权

目录 用户模型建立账号密码登录手机号登录验证码双后端鉴权JWT 介绍 用户模型建立 在django中自带auth_user表,字段名有id, password,username&#xff0c;is_superuer,is_activate , email &#xff0c;is_staff&#xff08;用于标识某个用户是否可以登录到 Django 的管理界面…

【Sa-Token|2】Sa-Token在微服务中的使用

在微服务架构中&#xff0c;使用 Sa-Token 进行分布式认证和权限管理需要考虑到各个服务之间的通信和 Token 的共享。以下是一个详细的教程&#xff0c;介绍如何在微服务中使用 Sa-Token。 1. 微服务架构介绍 假设有以下几个微服务&#xff1a; AuthService: 负责用户认证和 …

Python-日志模块

目录 一、日志级别 二、日志配置 1、日志基本配置 2、日志配置字典&#xff08;知道咋么改就可以&#xff09; 3、日志的使用 一、日志级别 import logginglogging.debug(调试日志) logging.info(消息日志) logging.warning(警告日志) logging.error(错误日志) logging.cr…

Java自增自减运算符

Java中的自增自减运算符分为两种&#xff1a; 自增运算符“ ”&#xff0c;作用是执行加法运算的变量值1 自减运算符“ -- ”&#xff0c;作用是执行加法运算的变量值-1 注意事项&#xff1a; “ ”和“ -- ”既可以放在变量的前面&#xff0c;也可以放在变量的后面。 自增自…

Linux驱动开发笔记(十三)Sysfs文件系统

文章目录 前言一、Sysfs1.1 Sysfs的引入1.2 Sysfs的目录结构1.2 Sysfs的目录详解1.2.1 devices1.2.2 bus1.2.3 class1.2.4 devices、bus、class目录之间的关系1.2.5 其他子目录 二、Sysfs使用2.1 核心数据结构2.2 相关函数2.2.1 kobject_create_and_add2.2.2 kobject_put()2.2.…

大模型自然语言生成自动驾驶可编辑仿真场景(其一 共十篇)

第一篇&#xff1a;LLM greater scene summarize 第二篇&#xff1a;LLM simulation Test effect 第三篇&#xff1a;LLM simulation driving scenario flow work 第四篇&#xff1a;LLM Algorithm flow description 第五篇&#xff1a;Configure the environment and back…

每天一个项目管理概念之PDCA

在项目管理中&#xff0c;PDCA&#xff08;计划-执行-检查-行动&#xff09;循环是一种广泛采用的质量管理工具&#xff0c;它帮助组织确保项目能够高效、有序地进行&#xff0c;并持续优化流程。本文将深入探讨PDCA循环的四个阶段&#xff0c;以及如何将其应用于项目管理中&am…

一键转换PDL至HTML,轻松驾驭文档格式,高效办公新纪元从此开启!

在信息爆炸的时代&#xff0c;文档格式繁多&#xff0c;如何高效处理这些文档成为了每个职场人士关注的焦点。现在&#xff0c;我们为您带来一款革命性的工具——一键转换PDL至HTML&#xff0c;让您轻松驾驭文档格式&#xff0c;开启高效办公新纪元&#xff01; 首先&#xff0…

八-工具包3-pandas数据清洗及相关性

数据清洗概述 数据清洗是对一些没有用的、不合理的数据进行处理的过程。 很多数据集存在数据缺失、数据格式错误、错误数据或重复数据的情况,如果要使数据分析更加准确,就需要对这些没有用的数据进行处理。 样本数据: from io import StringIO import pandas as pdcsv_d…

动手学深度学习(Pytorch版)代码实践 -卷积神经网络-14模型构造

14模型构造 import torch from torch import nn from torch.nn import functional as F#通过实例化nn.Sequential来构建我们的模型&#xff0c; 层的执行顺序是作为参数传递的 net1 nn.Sequential(nn.Linear(20, 256), nn.ReLU(), nn.Linear(256,10)) """ nn.…

不同@Transactional方法调用同一个synchronized方法引发的生成重复序号问题

背景&#xff1a; Transactional( propagation Propagation.REQUIRED ) 方法 A内调用synchronized方法 这种默认传播方式使得子函数也加入当前事务&#xff0c; synchronized方法结束之后&#xff0c; Transactional 方法A 执行结束之前, synchronized方法对数据库表所作变…

Electron快速入门(三):在(二)的基础上修改了一个文件夹做了个备忘录

Lingering Memories 诗绪萦怀 修改index.html <!--index.html--> <!DOCTYPE html> <html lang="zh-CN"><head><meta charset="UTF-8"><!-- https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP --><meta http…

opencv-python(十一)

图像加法 import numpy as np import cv2 img cv2.imread(jk.jpg) res cv2.add(img, img) cv2.imshow(Mypicture1,img) cv2.imshow(MyPicture2,res)cv2.waitKey(0) cv2.destroyAllWindows() res cv2.add(src1, src2, dstNone, maskNone, dtypeNone) src1&#xff1a;第一幅…

Android RecyclerView卡顿

Android RecyclerView卡顿的原因可能包括以下几点&#xff1a; 数据加载和渲染耗时&#xff1a; 当列表项较多或者数据量庞大时&#xff0c;如果在主线程中进行数据加载和布局渲染&#xff0c;会导致主线程阻塞&#xff0c;从而造成滑动卡顿。例如&#xff0c;在滚动过程中需要…

作为一名程序员,怎么才能写出简洁实用还漂亮的代码楼呢?这25个超惊艳的Python代码写法,你一定要学会!

前言 Python可以用于复杂的数据分析和Web开发项目&#xff0c;还能以极少的代码行数完成令人惊叹的任务。本文将分享25个简短的Python代码示例&#xff0c;用来展示Python编程语言的魅力和效率。 1.列表推导式 Python的列表推导式提供了一种优雅的方法来创建列表。 # 将一个…

以太坊==MetaMask获取测试币最新网址

估算分数https://community.infura.io/t/unable-to-receive-sepolia-eth-from-faucet/7715 Gitcoin Passport 水龙头地址&#xff0c;填入自己的测试地址 水龙头项目地址 GitHub - pk910/PoWFaucet: Modularized faucet for EVM chains with different protection methods (…

从0开发一个Chrome插件:用户反馈与更新 Chrome 插件

前言 这是《从0开发一个Chrome插件》系列的第二十二篇文章,也是最终篇,本系列教你如何从0去开发一个Chrome插件,每篇文章都会好好打磨,写清楚我在开发过程遇到的问题,还有开发经验和技巧。 专栏: 从0开发一个Chrome插件:什么是Chrome插件?从0开发一个Chrome插件:开发…

2023年JCR影响因子正式发布,点击查看能源与燃料领域期刊变化【持续更新02】

2024年6月20日&#xff0c;科睿唯安发布了2024年度《期刊引证报告》(Journal Citation Reports&#xff0c;JCR)&#xff0c;报告覆盖全面的高质量期刊资源&#xff0c;提供了丰富的数据、指标和分析。今年JCR的最大变化为&#xff1a;把属于不同数据库&#xff0c;但属于同一学…

学习笔记:(3)荔枝派Nano在lvgl下使用矢量字体显示中文(全志F1C200S))

荔枝派Nano在lvgl下使用矢量字体显示中文 1.软件版本要求2.在buildroot下编译freetype三级目录 1.软件版本要求 buildroot 2023.05.xFreeType 2.13.1lvgl v8.3.9lv_drivers v9.0.0-dev 2.在buildroot下编译freetype 三级目录