iframe中position:fixed失效

本文介绍了一种使导航栏随页面滚动而移动的JavaScript代码,并指出该方法会导致页面出现跳动现象。同时提供了一个移动端类似问题的解决方案链接。
此段代码,确实可用,但是会产生跳动效果。等找到解决方案在更。
$(document).ready(function () {
    $(parent.window).scroll(function () {
        $("#Page-nav").css({
            top: $(parent.window).scrollTop() + 200
        });
    });
}


同时还有一篇移动端的此类问题,传送门在此

http://blog.youkuaiyun.com/gy127132060/article/details/50161947

</div> 如上所示vue代码,我要在class="gradient-rectangle" 下面也就是与class="vertical-button-bar"同一级别的在整个页面的右下角加一个指南针功能,指南针代码可以借鉴:<template> <div id="cesium-container" class="cesium-container"> <!-- 修改后的指南针按钮 --> <button class="compass-button" @click="resetNorth"> <img src="/image/zhinanzhen.png" alt="指南针" style="width: 30px; height: 30px;" /> </button> </div> </template> <script> import * as Cesium from 'cesium'; import 'cesium/Build/Cesium/Widgets/widgets.css'; import CircleRippleMaterialProperty from './CircleRippleMaterialProperty'; export default { name: 'CesiumRippleEffect', data() { return { viewer: null, rippleEntity: null }; }, mounted() { this.initCesium(); }, beforeDestroy() { if (this.viewer) { this.viewer.destroy(); // 完全移除Cesium实例 const cesiumContainer = document.getElementById('cesium-container'); if (cesiumContainer) { cesiumContainer.innerHTML = ''; } } }, methods: { initCesium() { // 修复沙箱错误:禁用InfoBox Cesium.InfoBoxViewModel.prototype._iframeHtml = '<div></div>'; // 初始化Cesium Viewer this.viewer = new Cesium.Viewer('cesium-container', { animation: false, timeline: false, baseLayerPicker: false, geocoder: false, homeButton: false, sceneModePicker: false, navigationHelpButton: false, fullscreenButton: true, infoBox: false // 完全禁用InfoBox组件 }); // 添加波纹圆效果 this.addRippleEffect(); // 调整相机位置 this.viewer.camera.flyTo({ destination: Cesium.Cartesian3.fromDegrees(113.194006, 27.399411, 2000), orientation: { heading: Cesium.Math.toRadians(0), pitch: Cesium.Math.toRadians(-60), roll: 0 }, duration: 2.0 }); }, addRippleEffect() { // 指定坐标 (113.194006, 27.399411) const position = Cesium.Cartesian3.fromDegrees(113.194006, 27.399411); // 创建波纹圆实体 this.rippleEntity = this.viewer.entities.add({ name: '动态波纹圆', position: position, ellipse: { semiMinorAxis: 500.0, semiMajorAxis: 700.0, height: 0, material: new CircleRippleMaterialProperty({ color: Cesium.Color.fromCssColorString("#00FFFF").withAlpha(0.6), speed: 1, count: 1, gradient: 0.1 }) } }); // 添加参考点 this.viewer.entities.add({ position: position, point: { pixelSize: 10, color: Cesium.Color.RED } }); }, // 指南针功能:重置北方向 resetNorth() { if (!this.viewer) return; // 获取当前相机位置 const camera = this.viewer.camera; const currentPosition = camera.position.clone(); // 创建新的方向,将heading(偏航角)设为0(正北方向) const orientation = { heading: 0, // 北方向 pitch: camera.pitch, roll: camera.roll }; // 平滑过渡到北方向 camera.flyTo({ destination: currentPosition, orientation: orientation, duration: 1.0, easingFunction: Cesium.EasingFunction.CUBIC_OUT }); } } }; </script> <style scoped> .cesium-container { width: 100%; height: 100vh; position: relative; overflow: hidden; /* 防止内容溢出 */ } /* 指南针按钮样式 - 确保可见 */ .compass-button { position: absolute; bottom: 20px; right: 20px; z-index: 1000; /* 确保在Cesium控件之上 */ width: 40px; height: 40px; background: rgba(255, 255, 255, 0.9); /* 提高背景不透明度 */ border: 1px solid #ddd; border-radius: 50%; /* 圆形按钮 */ cursor: pointer; display: flex; align-items: center; justify-content: center; box-shadow: 0 2px 8px rgba(0,0,0,0.3); /* 更明显的阴影 */ transition: all 0.3s ease; } .compass-button:hover { background: rgba(255, 255, 255, 1); transform: scale(1.1); box-shadow: 0 4px 12px rgba(0,0,0,0.4); } .compass-button svg { color: #1a73e8; /* 更明显的颜色 */ width: 24px; height: 24px; } </style> 基于此修改代码,然后原先vue中的其他无关代码不要动
07-07
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值