Explore all augmented reality, virtual reality open source software, libraries, packages, source code, cloud functions and APIs.

Augmented reality (AR) is an interactive experience of a real-world environment where the objects that reside in the real world are enhanced by computer-generated perceptual information, sometimes across multiple sensory modalities, including visual, auditory, haptic, somatosensory and olfactory. Virtual reality (VR) is a simulated experience that can be similar to or completely different from the real world. Applications of virtual reality include entertainment (e.g. video games) and education (e.g. medical or military training). Other distinct types of VR-style technology include augmented reality and mixed reality, sometimes referred to as extended reality or XR.

Explore Related Topics

Popular New Releases in Virtual Reality

aframe

v1.2.0

engine

v1.53.2

Relativty

Relativty 2 early Release

MixedRealityToolkit-Unity

Microsoft Mixed Reality Toolkit v2.7.3

openvr

v1.16.8

Popular Libraries in Virtual Reality

AR.js

by jeromeetienne doticonhtmldoticon

star image 15308 doticonMIT

Efficient Augmented Reality for the Web - 60fps on mobile!

ar-cutpaste

by cyrildiagne doticontypescriptdoticon

star image 14263 doticonMIT

Cut and paste your surroundings using AR

aframe

by aframevr doticonjavascriptdoticon

star image 13681 doticonMIT

:a: web framework for building virtual reality experiences.

engine

by playcanvas doticonjavascriptdoticon

star image 7301 doticonMIT

Fast and lightweight JavaScript game engine built on WebGL and glTF

Awesome-ARKit

by olucurious doticonswiftdoticon

star image 6962 doticon

A curated list of awesome ARKit projects and resources. Feel free to contribute!

Relativty

by relativty doticonc++doticon

star image 5416 doticonGPL-3.0

An open source VR headset with SteamVR supports for $200

MixedRealityToolkit-Unity

by microsoft doticoncsharpdoticon

star image 5032 doticonMIT

Mixed Reality Toolkit (MRTK) provides a set of components and features to accelerate cross-platform MR app development in Unity.

ARKit-CoreLocation

by ProjectDent doticonswiftdoticon

star image 4993 doticonMIT

Combines the high accuracy of AR with the scale of GPS data.

openvr

by ValveSoftware doticonc++doticon

star image 4789 doticonBSD-3-Clause

OpenVR SDK

Trending New libraries in Virtual Reality

ar-cutpaste

by cyrildiagne doticontypescriptdoticon

star image 14263 doticonMIT

Cut and paste your surroundings using AR

AR.js

by AR-js-org doticonjavascriptdoticon

star image 3449 doticonMIT

Image tracking, Location Based AR, Marker tracking. All on the Web.

react-xr

by pmndrs doticonjavascriptdoticon

star image 1002 doticonMIT

🤳 VR/AR with react-three-fiber

three-mesh-ui

by felixmariotto doticonjavascriptdoticon

star image 686 doticonMIT

⏚ Make VR user interfaces for Three.js

RealityMixer

by fabio914 doticoncdoticon

star image 641 doticonGPL-2.0

Mixed Reality app for iOS

mind-ar-js

by hiukim doticonjavascriptdoticon

star image 621 doticonMIT

Web Augmented Reality. Image Tracking, Face Tracking. Tensorflow.js

PaintingLight

by lllyasviel doticonpythondoticon

star image 550 doticonApache-2.0

Generating Digital Painting Lighting Effects via RGB-space Geometry (SIGGRAPH2020/TOG2020)

April-Tag-VR-FullBody-Tracker

by ju1ce doticonc++doticon

star image 510 doticonMIT

Full-body tracking in VR using AprilTag markers.

arcore-depth-lab

by googlesamples doticoncsharpdoticon

star image 445 doticonApache-2.0

ARCore Depth Lab is a set of Depth API samples that provides assets using depth for advanced geometry-aware features in AR interaction and rendering. (UIST 2020)

Top Authors in Virtual Reality

1

microsoft

29 Libraries

star icon9752

2

MozillaReality

20 Libraries

star icon2418

3

jeromeetienne

15 Libraries

star icon15863

4

udacity

14 Libraries

star icon98

5

maxxfrazer

13 Libraries

star icon1147

6

PacktPublishing

13 Libraries

star icon144

7

immersive-web

13 Libraries

star icon4977

8

Unity-Technologies

12 Libraries

star icon5925

9

Utopiah

11 Libraries

star icon71

10

marpi

10 Libraries

star icon240

1

29 Libraries

star icon9752

2

20 Libraries

star icon2418

3

15 Libraries

star icon15863

4

14 Libraries

star icon98

5

13 Libraries

star icon1147

6

13 Libraries

star icon144

7

13 Libraries

star icon4977

8

12 Libraries

star icon5925

9

11 Libraries

star icon71

10

10 Libraries

star icon240

Trending Kits in Virtual Reality


Projection Based AR is an Image/video projection technique that can be extended and reinforce visual data by throwing images on the surface of 3D objects.  Graphical and Imaginary representation is straightforward to implement with Projection Based AR techniques that standard lighting techniques cannot express. This kit helps users to experience the shopping experience like wearing Glasses, cap, earring in AR mode. Aframe is a framework for building virtual reality websites. This project will show you how to build an e-commerce site using aframe, AR.js, mind-AR.js, and Sketch-three.js.


Aframe has many components that can be used together or separately in your project. You may already be familiar with React or Three.js - these are two of the most common technologies used in web development today. They're used here as well! Aframe brings together these technologies and provides a simple interface for building virtual reality experiences on the web while maintaining the power of React and Three.js behind the scenes.

Troubleshooting

  1. While running batch file, if you encounter Windows protection alert, select More info --> Run anyway
  2. During kit installer, if you encounter a Windows security alert, click Allow

For a detailed tutorial on installing & executing the solution as well as learning resources including training & certification opportunities, please visit the OpenWeaver Community

Development Environment

Visual studio code IDE is used for this development. It becomes easy and simple to develop an interactive UI with Visual studio code.

AR Libraries

A-Frame is an open-source web framework used for building Augmented reality (AR) experiences. Web-based augmented reality (WebAR) is the most advanced technology that allows users to access AR experiences directly from their smartphones. Three.js is the open-source web framework used to develop augmented reality (AR) projects.

Support

If you need help using this kit, you may reach us at the OpenWeaver Community.

kandi 1-Click Install


Location based AR Kit is a tool for creating augmented reality apps. It applies computer vision techniques to place digital objects in real-world scenes. AR Kit can locate horizontal planes like tables and floors, allowing you to place objects on a surface without additional calibration. It can also detect a user's position and direction as they walk around an area, which lets you anchor 3D content to specific locations in the physical world.


We have used many libraries like aframe, three.js, and location-based AR libraries to build this AR kit. An HTML5 web framework of aframe that provides you with all the tools needed to create experiences for desktop and mobile devices using WebGL, WebVR and Web Audio. Three.js is an open-source web framework used to develop augmented reality (AR) projects.


kandi kit provides you with a fully deployable Location Based AR app. Source code included so that you can customize it for your requirement.

Troubleshooting

  1. While running batch file, if you encounter Windows protection alert, select More info --> Run anyway
  2. During kit installer, if you encounter a Windows security alert, click Allow


For a detailed tutorial on installing & executing the solution as well as learning resources including training & certification opportunities, please visit the OpenWeaver Community

Development Environment

Visual studio code IDE is used for this development. It becomes easy and simple to develop an interactive UI with Visual studio code.

Location Based AR Libraries

Geo AR is an advanced technology that allows developers to add digital content to geographical points of interest. This means that unlike the typical marker-based Augmented Reality features like Image Tracking & Object Tracking, Geo AR projects do not need a physical target to trigger the feeling of AR experience.


A-Frame is an open-source web framework used for building Augmented reality (AR) experiences.


Three.js is an open-source web framework used to develop augmented reality (AR) projects.

Support

If you need help using this kit, you may reach us at the OpenWeaver Community.

kandi 1-Click Install

AR Core app allows users to experience augmented reality on their Android devices. This kit helps developers and users to experience their own 3d models.


The users have the liberty to choose their own 3d models with all the fun elements also. Please see below a sample solution kit to jumpstart your solution on AR App using Android Kit. To use this kit to build your own solution, scroll down to the Kit Deployment Instructions sections.

Development Environment

The Android Studio IDE is open source and used for this development. It has a rich UI development environment with templates to give new developers launching their innovations into Android development.

Android Libraries

ARCore is the advanced platform that enables Android app developers and users to quickly and easily build AR experiences into their mobile apps and games.

Google Sceneform is an open-source 3D framework that makes it easy for you to build ARCore apps.

Android-Gradle is the open-source Android framework used to develop AR projects.

AR Fragments are used to build these ARCore apps.

Instruction to Replace 3d Models

  1. To place your own 3d model, initially, you need to set up your Android studio with "Google Sceneform Tool (Beta)"
  2. To install Google Sceneform Tool just follow the below steps : a. Go to file > settings b. In settings, click on 'plugins' c. In plugins search for "Google Sceneform Tool" in Marketplace d. Once you find, Install and restart the Android Studio
  3. Place your 3d model obj and mtl file in sampledata folder in the application Note:- Name of the obj file should be in lowercase
  4. Make a raw folder under app > src > main > res > raw
  5. Right-click on the obj file and generate the Sceneform for your 3d model under the raw folder.

Support

If you need help to use this kit, you can email us at kandi.support@openweaver.com or direct message us on Twitter Message @OpenWeaverInc.

kandi 1-Click Install


AR Face Filter has been very popular recently, especially with the rise of social media apps. It can create an AR experience by overlaying virtual objects. 


The technology is similar to the one used by Facebook camera effects OR Snapchat selfie lens to add filters to their photos and videos but has its own unique style and capabilities.


kandi kit provides you with a fully deployable Face Filter for Insta & Snapchat. The source code included so that you can customize it for your requirement.

Troubleshooting

  1. While running batch file, if you encounter a Windows protection alert, select More info --> Run anyway
  2. During kit installer, if you encounter a Windows security alert, click Allow

For a detailed tutorial on installing & executing the solution as well as learning resources including training & certification opportunities, please visit the OpenWeaver Community

Development Environment

Visual studio code IDE is used for this development. It becomes easy and simple to develop an interactive UI with Visual studio code.

AR Libraries

Three.js is the open-source web framework used to develop augmented reality (AR) projects.


Web-based augmented reality (WebAR) is the most advanced technology that allows users to access AR experiences directly from their smartphones.

Support

If you need help using this kit, you may reach us at the OpenWeaver Community.

kandi 1-Click Install


The AR learning app is an educational app that uses Augmented Reality technology. It provides an interactive learning experience for students.  


The app allows users to learn about different animals or plants by placing them in a virtual world, where they can interact with them and learn more about their characteristics. The app uses augmented reality technology to overlay 3D virtual objects onto real-world images and videos. Students can use the app to learn about science topics through experiments, including chemical reactions and the effects of gravity on objects and similar many other concepts.


AR is a new technology that is being adopted by many developers and businesses. We have seen many examples of AR applications that have been developed. This AR learning application is built using the A-Frame framework. This app will help you learn how to create an augmented reality app using A-Frame and VSCODE, etc.


Please see below a sample solution kit to jumpstart your solution on the AR Learning Kit. To use this kit to build your own solution, scroll down to the Kit Deployment Instructions sections.

Instruction to run:

Follow below instructions to run the solution:

  1. Locate and open the respective extracted zip file.
  2. Open the command prompt and start your local HTTP server with Python by using the command "python -m http.server 8000," or you can deploy this in any other web server also.
  3. Use the "G" marker, i.e., available in the assets folder. Show the marker to the application, and then see the 3d image in the browser. (can use the print-out-based marker or marker can be downloaded in your mobile and can also show the same).
  4. The application currently has 15 models. Refer the same under < a-assets > in the "index.html" file. You can replace any of the 3d models with your own model.
  5. Use left arrow and right arrow available on the screen to experience the models. Zoom in option is also available in the application.


ďťżFor changing the images for your topics,

Create your own 3d images related to the themes that you would like to explain with AR features.

1. To add your 3d models, follow below procedure:

  • The 3d models should be in the format of ".gltf"
  • If your 3d model contains a single file, then place the same directly in the assets folder i.e., available under the "AR-Alphabets-master" folder otherwise if your 3d model contains multiple files, then create a folder with the respective name inside assets and place the files in the folder.
  • Then go to the "index.html" file and update the src attribute accordingly Example :- src="assets/3d-model-name.gltf" or src="assets/your-folder-name/3d-model-name.gltf"
  • To place your 3d model, some more helpful comments are available under < a-assets > in "index.html" file. Note:- To experience your 3d models, you should run the application on your local web server mode only. For information about creating the 3d models, kindly refer to the Creation of 3d Model Repository section.

2. You can change the size of the 3d models by adjusting the scale values in "main.js" (eg:-scale: "0.2 0.2 0.2")

3. You can also change the voice assistant corresponding to the 3d image by changing the description name in "main.js" (eg:-description: "Earth")

4. Once changes are done, make sure to restart the application for the changes to be effective.

5. Now, you will experience your theme with AR in your Environment!

6. For more details or clarification please refer this Link

Creation of 3d Model Repository

1. You can create your own 3d models by using open source IDE like unity3d, Blender, AutoCAD or you can get 3d models from open source websites given below

Note:- Kindly check the license of the 3d models before using them.

2. Make sure that 3d models should be in the form of ".gltf" format, if not so kindly change them to the respective format. You can refer to the below links to convert your 3d models in the ".gltf" format.

Troubleshooting

  1. While running batch file, if you encounter Windows protection alert, select More info --> Run anyway
  2. During kit installer, if you encounter a Windows security alert , click Allow

For a detailed tutorial on installing & executing the solution as well as learning resources including training & certification opportunities, please visit the OpenWeaver Community

Development Environment

Visual studio code IDE is used for this development. It becomes easy to modify the code and the configuration with Visual studio code.

AR Libraries

A-Frame is an open-source web framework used for building Augmented reality (AR) experiences. In the spirit of open-source software development, jQuery plays a vital role in community code contribution.


The below library could be used to create jQuery scripts and respective models.

Support

If you need help using this kit, you may reach us at the OpenWeaver Community.

kandi 1-Click Install


The Build Marker Based AR Solution is an application that can detect a marker and create a semblance of an augmented reality experience.


The marker can be detected and identified using the phone's camera and OpenCV library. When the marker is detected, it is then analyzed for color, size, and orientation. This information is used to determine what kind of marker it is (3D or 2D) and whether it can be used to place 3D objects in the scene. If this check passes, the 3D object is drawn at the correct position and orientation in relation to the camera feed from the device.


We used MindAR for marker detection and VSCode for development. We also used aframe and three.js for our applications. Mind AR is a platform that allows developers to build Augmented Reality applications. It is written in Javascript, HTML, and CSS. Mind AR works with the marker-based AR system.

Troubleshooting

  1. While running batch file, if you encounter Windows protection alert, select More info --> Run anyway
  2. During kit installer, if you encounter a Windows security alert, click Allow


ďťżFor a detailed tutorial on installing & executing the solution as well as learning resources including training & certification opportunities, please visit the OpenWeaver Community

Development Environment

Visual studio code IDE is used for this development. It becomes easy and simple to develop an interactive UI with Visual studio code.

AR Libraries

A-Frame is an open-source web framework used for building Augmented reality (AR) experiences. Web-based augmented reality (WebAR) is the most advanced technology that allows users to access AR experiences directly from their smartphones. Three.js is the open-source web framework used to develop augmented reality (AR) projects.

Support

If you need help using this kit, you may reach us at the OpenWeaver Community.

kandi 1-Click Install

Most JavaScript libraries support marker-based AR, where users scan a physical marker with their device’s camera to trigger an AR experience.


Some libraries support markerless AR, which uses object recognition to trigger AR experiences without requiring a physical marker. Here are the top JavaScript Augmented Reality libraries used to create web AR experiences. AR libraries support the display of 3D models in AR, which will allow developers to create immersive experiences which blend digital content with the real world. It supports the display of image and video overlays in AR which can be used for displaying information or creating interactive experiences.


It uses advanced tracking algorithms for tracking the orientation and position of the device in real-time, which will allow the AR content to be accurately placed and aligned with the real world. These libraries are optimized for best performance with the help of techniques like feature and image recognition for reducing the amount of processing required for tracking the device’s orientation and position. 


Here is the list of top 19 JavaScript Augmented Reality libraries that are handpicked to help developers: 

three.js

  • Is a JavaScript library that makes creating and displaying 3D graphics in a web browser easier.  
  • Is one of the most popular 3D graphics libraries for the web and is widely used by web designers and developers for creating immersive and interactive experiences.  
  • Uses WebGL, a web standard to render 3D graphics, for creating high-performance graphics which can be displayed in a web browser. 

AR.js

  • Is a JavaScript library to create AR experiences on the web which uses computer vision to enable marker-based AR experiences without additional plugins or software.  
  • Is a lightweight library for Augmented Reality on the web with features like Location-based AR, Marker Tracking, and Image Tracking.  
  • Supports marker-based AR that will allow users to scan physical markers with their device’s camera to trigger AR experiences. 

three.ar.js

  • Is a JavaScript library that extends Three.js and AR.js to provide a framework for creating AR experiences in a web browser.  
  • Is designed to simplify the process of creating an AR experience by offering utilities and tools which integrate seamlessly with AR.js and Three.js. 
  • Is optimized for use on mobile devices and supports both Android and iOS. 

webxr

  • The WebXR device API to access VR and AR devices, like head-mounted displays and sensors on the Web.  
  • Is designed for creating immersive augmented reality and virtual experiences in web browsers. 
  • Is designed to be easy to set up and use with a simple API, allowing developers to get started quickly. 

jeelizFaceFilter

  • Is lightweight and does not include a 3D engine or third-party library.  
  • Is a JavaScript library that detects and tracks the face in real time from the camera video feed captured with WebRTC.  
  • Offers various demonstrations using the main WebGL 3D engines, which can overlay 3D content for AR applications. 

viro

  • Is a platform for developers to build Augmented and Virtual Reality experiences rapidly.  
  • Is a cross-platform AR/VR development platform that allows developers to create immersive experiences for web, virtual reality, and mobile device headsets. 
  • Provides a suite of features and tools for making creating high-quality AR and VR experiences easier. 

exokit

  • Is an open source JavaScript engine to create and run immersive experiences in virtual reality headsets, web browsers, and other platforms. 
  • Offers various features and tools, allowing developers to create and deploy immersive experiences and applications. 
  • Supports virtual experiences by allowing developers to create immersive experiences which can run on virtual reality headsets. 

js-aruco

  • Is a JavaScript library for marker-based augmented reality.  
  • Is an implementation of the ARToolKit library, allowing developers to create marker-based AR experiences in web browsers. 
  • Includes algorithms for detecting markers in real-time video streams, allowing developers to create experiences that respond to the physical world. 

React-Web-AR

  • Is based on the WebXR API and Three.js library, making creating high-quality AR experiences in the browser easier.  
  • Includes various components and tools for creating animations, 3D models, and other assets, making it easier to create high-quality AR content. 
  • Supports image tracking, allowing developers to create experiences triggered by specific patterns or images. 

ar-facedoodle

  • Is a JavaScript library that can enable developers to create AR experiences that track and draw on the user’s face in real-time.  
  • Is based on the WebRTC and TensorFlow.js libraries, making it possible to create a high-quality AR experience in web browsers without additional software or plugins. 
  • Is easy to set up and use with a simple API, allowing developers to get started quickly. 

jeelizAR

  • Is a JavaScript Object Detection lightweight library for AR that uses convolutional neural networks running on the GPU with WebGL.  
  • Is designed to work on various platforms, like mobile devices and desktops, and is compatible with various browsers.  
  • Includes algorithms to detect markers in real-time video streams, allowing developers to create experiences that respond to the physical world. 

threex.webar

  • Is a threex extension for three.js, which offers an easy-to-use extension for experimenting with augmented reality and three.js.  
  • Is built on top of the Three.js library, making it possible to create high-quality AR experiences with 3D graphics and animation.  
  • Has an active community of contributors and developers, making it easy to get support and help when required. 

WebXR-emulator-extension

  • Is a browser extension that helps your WebXR content creation and enables you to run WebXR applications on your browser without any XR devices. 
  • Includes multiple XR devices emulation, graphical device emulator control with Three.js, and cross browsers support with WebExtensions API. 
  • Allows developers to customize the environment they are testing their WebEX projects in, like adjusting the room lighting, scale, and other parameters. 

webxr-polyfill

  • Is a JavaScript implementation of the WebXR Device API and the WebXR Gamepad Module.  
  • Allows developers to write against the latest specifications, offering support if run on browsers that implement the WebVR 1.1 spec or on mobile devices.  
  • Offers a fallback mechanism for legacy browsers and provides additional functionality unavailable in native WebXR API. 

3dio-js

  • Is a JavaScript library that enables developers to create interactive 3D audio experiences in web browsers.  
  • Is built on top of the Web Audio API and Three.js, making it easy to create high-quality audio experiences with 3D spatialization.  
  • Various customization options allow developers to adjust the audio spatialization, sound effects, and other parameters to suit their requirements. 

wasm-sudoku-solver

  • Is a JavaScript library that uses WebAssembly to offer an efficient Sudoku-solving algorithm in web browsers.  
  • Is designed for solving sudoku puzzles quickly and accurately, making it a valuable tool for developers creating Sudoku puzzle applications or games.  
  • Various customization options allow developers to adjust the solving algorithm and other parameters to suit their requirements. 

webxr-polyfill

  • Is a JavaScript library that offers support for the WebXR API on browsers that do not natively support it. 
  • Is designed to enable responsive and immersive AR and VR experiences on the web, like support for hand tracking, head-mounted displays, and other features. 
  • Includes optimizations for performance, including asynchronous loading of resources, reducing latency, and minimizing the impact on CPU and memory usage. 

aframe-ar

  • Is a JavaScript library that offers an effortless way to create AR experiences on the web. 
  • Includes a range of customization options, allowing developers to adjust the appearance and behavior of their AR experiences 
  • Offers an accessible and user-friendly way for developers to create compelling AR experiences on the web. 

WebAR-Article

  • Is a JavaScript library created by Google AR which offers a straightforward way to embed AR content into web pages.  
  • Includes various customization options, allowing developers to adjust the behavior and appearance of their AR experiences.  
  • Can be easily integrated with other JavaScript libraries, making it possible to create more complex AR experiences. 

FAQ

1. What advantages does the AR-Display AR library offer for making Augmented Reality? 

Here are the advantages of using AR – Display AR library for developing AR experiences: 

  • Simplified Development: Developers can create AR experiences more easily without starting from scratch. It can significantly reduce development time and effort.  
  • Hardware Abstraction: It simplifies using various AR devices and sensors by removing complications. No matter what hardware they use, developers can always interact with it consistently.    
  • Optimized Performance: Optimized Performance helps improve how AR experiences work. It makes rendering more efficient, handles camera inputs, and manages 3D objects.   
  • Feature Set: It often comes with various built-in features and tools. It can be marker detection, gesture recognition, 3D rendering capabilities, and object tracking.  
  • Scalability: It helps your AR experiences work well in different situations and places. 
  • Rapid Prototyping: It helps with quick prototyping and testing of AR concepts. It is essential for iterating on ideas and refining the user experience. 

 

2. How can webcam filters be used to build JavaScript Augmented Reality experiences? 

Creating JavaScript-based Augmented Reality experiences using webcam filters involves using computer vision methods. It processes the live video feed from a user’s webcam and overlays virtual elements. We can achieve it by combining JavaScript, HTML, and CSS.  

Here is a basic outline of how you can build such experiences: 

  • Access Webcam Feed: You can use the ‘getUserMedia’ API to access the user’s webcam feed in the browser. It allows you to request permission to access the webcam and receive a live video stream. 
  • Canvas Rendering: You can make a canvas on your webpage to show the webcam and AR elements. You can use JavaScript to capture frames from the webcam and render them onto the canvas. 
  • Computer Vision Libraries: It can help track objects, detect features, and process images. It assists in finding markers, applying filters to video frames, and tracking movements. 
  • Marker Detection: The camera can display virtual markers by recognizing patterns or images. 
  • Applying Filters: You can improve videos by adding CSS and HTML filters and effects. You can use this for image overlays, animations, and color adjustments. 
  • Interaction and Animation: JavaScript can make interactive elements respond to user actions. It can also respond to movements detected by the webcam. Implement animations and transformations based on user interactions. 
  • Testing and Debugging: To ensure your AR experience works on all devices, test and debug it. Debug any issues related to webcam access, rendering, or the application of filters. 
  • Deployment: To share your AR experience online, deploy it on a web server or hosting platform. 

 

3. Can you create immersive and interactive experiences using a JavaScript AR library? 

Creating immersive and interactive AR experiences using a JavaScript AR library. The difficulty of the task depends on the library you select. It can be easy or hard. Here is a breakdown of the factors to consider: 

Advantages: 

  • Familiar technology 
  • Web-based  
  • Quick Prototyping 
  • Community Support 
  • Web Standards 

Disadvantages: 

  • Complexity 
  • Performance 
  • Learning Curve 
  • Compatibility 
  • Hardware Limitations 
  • Advanced Interactions 

 

4. What AR experiences can you have with a JavaScript AR library? 

JavaScript AR libraries can make interactive and engaging experiences using marker-based AR. The camera finds special markers, like pictures or patterns, to trigger these experiences. Here are many types of marker-based AR experiences: 

  • Image Overlay 
  • 3D Model Augmentation 
  • Informational Displays 
  • Virtual Try-on 
  • Interactive Games 
  • Educational Tools 
  • Navigation and Wayfinding 
  • Art and Creativity 
  • Social Sharing 
  • Animation Stories 
  • Training and Simulations 
  • AR Marketing Campaigns 

 

5. Are there any limitations with JavaScript augmented reality library? 

Yes, JavaScript AR libraries come with limitations. The limitations can affect the complexity of experiences you can create. They can also impact how well your applications work and how users experience them. Here are some common limitations associated with JavaScript AR libraries: 

  • Performance 
  • Device Compatibility 
  • Tracking Accuracy 
  • Limited Features 
  • Latency 
  • Battery Drain 
  • Network Dependency 
  • Marker Design Constraints 
  • Web Browser Limitations 
  • Learning Curve 
  • Limited Offline Functionality 
  • Privacy Concerns 
  • Lack of Native Integration 

 

6. Which libraries are popular for tracking AR types like markers, locations, and images? 

Here are some popular libraries for various types of AR experiences: 

  • Marker-based AR 
  • AR.js 
  • Vuforia 
  • Wikitude 
  • Location-based AR 
  • GeoAR 
  • Google ARCore and Apple ARKit 
  • Image Recognition-Based AR 
  • EasyAR 
  • Vuforia 
  • Wikitude 

 

7. How can an existing JavaScipt AR library be integrated into a project or website?   

Follow these steps to add a JavaScript AR library to your project or website. Here is how you can integrate: 

  • Choose the library 
  • Include the library files 
  • Set Up HTML structure 
  • Access Camera Feed 
  • Initialize the Library 
  • Configure and Customize 
  • Implement AR interactions 
  • Style and UI 
  • Testing and Debugging 
  • Deployment 
  • Ongoing Maintenance 

 

8. Can developers find tutorials or guides for creating augmented reality with these libraries?  

You can use JavaScript AR libraries to create AR experiences. Find online tutorials and guides. Here are some places to find tutorials and guides: 

  • Official documentation 
  • YouTube 
  • Online Learning Platforms 
  • Blogs and Websites 
  • Forums and Communities 
  • GitHub Repositories 
  • AR library Websites 
  • Social Media 
  • Webinars and Conferences 
  • Community Workshops

Why is Facebook is rebranding itself to focus on the metaverse? 7 years after its billion-dollar acquisition of Oculus, Facebook is pivoting itself towards virtual reality. While the earlier acquisitions of Instagram and WhatsApp successfully extended social engagement, metaverse is a much bigger bet. While metaverse looks like VR in a new bottle at some levels, betting the company's future on metaverse shows a strategic intent. It was interesting to see Microsoft announce immersive experiences on MS Teams. Multiple metaverses exist today in individual 3D gaming platforms and VR platforms. We are seeing companies fighting it out for cloud and AI platform dominance. Could Meta be positioning itself to own the user engagement channel in a new way? If users move towards using VR as a primary engagement model, this can pay off well. While this will play out over the decade or more, there are multiple low-hanging fruits to build mixed reality experiences into your applications. The kandi kit on Mixed Reality Solutions showcases popular open source libraries across AR, dedicated VR platforms, and device-specific solutions. Get ready for the next platform war!

Web Focused AR and VR Solutions

Virtual Reality Platforms

Virtual Reality Headset Focused Solutions

Virtual, Augmented, and Mixed realities bring in additional dimensions of collaboration in this distributed world. This collection represents a starter collection to experiment with different mixed reality use cases. It showcases toolkits, remote work use cases, and other exciting use cases for you to try across C#, JavaScript, and Java. If you have specific technologies or use cases in mind, use our search to find libraries specific to you.

This is a simple kit for developing virtual agents

kandi 1-Click Install

Augmented reality enables you to bring virtual objects into your environment, augmenting the real world around with new digital content. With AR Kit, you can create experiences that integrate virtual images into the real world to interact with people, things, places, and services; simply by walking around a store, office, outdoors, or at home with a mobile device in their hands. A-Frame is a web framework for building virtual reality experiences. A-Frame is built on top of the web platform to allow it to work across multiple browsers without plugins. Arframe is a library that provides React components for working with A-Frame and React components for working with AR.js (AR library). Networked-aframe is an extension that makes it possible to use interactivity between multiple devices running A-Frame by connecting them over the WebRTC protocol. The entire list of open-source repos, popular and easy to use AR-specific libraries and a demo is provided below.

Aframe for Augmented Reality

A-Frame is an open-source web framework used for building Augmented reality (AR) experiences.

Three.js for AR Libraries

Three.js is the open-source web framework used to develop augmented reality (AR) projects.

Web AR Libraries

Web-based augmented reality (WebAR) is the most advanced technology that allows users to access AR experiences directly from their smartphones.

Node.js is a powerful web framework. It allows developers to build various applications, including virtual and augmented reality experiences. By leveraging the capabilities of Node.js, developers can create immersive applications. It can bridge the gap between real and virtual worlds.  


We can use NodeJS to develop Virtual reality applications. It can range from simple demos to full-blown multi-user virtual reality experiences. Node.js provides a versatile platform. It helps build these applications, offering a pure web solution. We can access it using a web browser. By utilizing frameworks, developers can leverage React components. It helps code to create interactive and engaging virtual reality experiences.  


To create VR applications, developers can start by installing the necessary modules. They can do it using the npm install command. Modules like a frame-react allow the integration of A-Frame and React. It combines the power of A-Frame's lightweight library with React's component-based approach. This results in better user experiences and improved browsing experiences for VR applications.  


The WebXR API is another important tool for creating virtual reality applications. It provides access to core concepts like location-based augmented reality (AR). It allows developers to create applications that blend virtual and physical worlds.  


Creating an application using Node.js involves designing the UI and implementing the code. Utilizing the modules provided by Node.js can create complex UI elements. It can simulate immersive environments through WebGL.  


Debugging VR applications requires familiar tools like code editors and prompt engineering. Developers can identify and fix errors and optimize performance. It will ensure a smooth user experience. Additionally, leveraging platforms like Meta's new framework or Vuforia for marker tracking. It can enhance the functionality of VR applications.  


We can use NodeJS for developing Marketing and selling VR applications. We can do it through various channels. Developers can develop a simple website to showcase their applications. Then promote them on social media platforms or sell them through online marketplaces. We can dedicate it to virtual reality content.  


In conclusion, Node.js provides a robust platform. It helps create VR applications to leverage the power of the web to deliver experiences. It blurs the borders between the real and virtual worlds. Developers can create stunning VR applications using modules, libraries, and frameworks. With Node.js, the possibilities for creating captivating VR experiences are limitless.  

Babylon.js  

  • Used to create interactive 3D experiences, including VR.  
  • Helps in building VR applications with rich graphics and physics simulations.  
  • Supports various VR devices and controllers.  
  • We can use it for developing VR games, architectural visualizations, and training simulations.  

AR.js: 

  • Used to create virtual reality experiences using HTML and JavaScript.  
  • Helps in building immersive VR environments for web browsers.  
  • Supports 3D models, animations, and interactivity.  
  • We can use it for creating VR games, interactive simulations, and virtual tours.  

react-360: 

  • Used to develop VR applications using React.  
  • Helps in building cross-platform VR experiences for web and mobile.  
  • Supports 360-degree media, spatial audio, and interactive UI components.  
  • We can use it for creating VR presentations, educational experiences, and product visualizations.  

viro  

  • Used to build VR experiences using React.  
  • Helps in creating cross-platform VR applications for web and mobile.  
  • Supports 360-degree media, 3D models, and interactive components.  
  • We can use it for developing VR presentations, virtual tours, and immersive storytelling.  

aframe-react  

  • Used to integrate A-Frame with React applications.  
  • It helps in combining the power of A-Frame with the flexibility of React.  
  • Supports creating VR experiences using React's component-based approach.  
  • We can use it for building VR games, data visualizations, and architectural walkthroughs.  

Primrose  

  • Used to develop VR applications and games using WebGL.  
  • Helps in building VR experiences with custom shaders and graphics effects.  
  • Supports immersive audio, motion controllers, and physics simulations.  
  • We can use it for creating games, visualizations, and experiences with graphics capabilities.  

WebVR-Extension  

  • Used to develop VR applications in the browser.  
  • It helps in accessing VR devices and sensors through JavaScript.  
  • It supports building VR experiences without any extra libraries.  
  • We can use it for creating browser-based VR games, educational apps, and visualizations.  

FAQ  

1. What is NodeJS virtual reality library? How can we use it to create virtual and augmented reality experiences?  

A NodeJS VR library is a collection of modules, frameworks, and tools. It enables developers to create virtual and augmented reality experiences using NodeJS. It provides the necessary components and functionalities to build immersive applications. It will merge the real and virtual worlds. By leveraging the NodeJS capabilities, developers can create interactive and engaging VR experiences.  


2. What web solution do NodeJs provide for developing React VR applications?  

NodeJS provides a web solution for developing React VR applications. This web solution helps leverage the React components and code to create applications. With NodeJS, developers can use frameworks to build cross-platform VR experiences.  


3. How do I use the npm start command to develop a React application with NodeJS?  

You can use the npm start order to develop a React application with NodeJS. This command lets you see your real-time changes as you build your application. It helps compile and serve your application. Once you have set up and established the necessary dependencies using npm install. We can also set it by running npm start starts the development server.  


4. Can we use A-Frame and React to build a web-based virtual reality experience?  

A-Frame and React can build a web-based VR experience. A-Frame is a powerful library for creating virtual reality scenes and environments. It helps create interactive and immersive virtual reality experiences. In contrast, React provides a component-based approach to building user interfaces. By combining A-Frame and React, developers can leverage the strengths of both frameworks.  


5. How can we implement the Location API in an application built on NodeJS?  

We can implement the location API in an application built on NodeJS. We can do so by utilizing the capabilities of the WebXR API. We can build WebXR API on top of the WebVR API. It provides access to location-based augmented reality (AR). By utilizing this API, developers can create applications. It will help integrate virtual elements into the physical world. It will enhance the experience by blending real and virtual environments.  

6. What are some advantages of WebXR when creating a VR experience with NodeJS?  

WebXR offers several advantages when creating a VR experience with NodeJS. It provides a standardized and browser-supported API. It allows developers to create immersive content for various devices and platforms. WebXR simplifies the development process by providing access to VR and AR features. It does so by enabling developers to create cross-platform experiences easily. 

One of the advantages of using VRChat is that you can use third-party libraries. This includes things like cats-blender-plugin, UdonSharp, and VRCX.


The main reason why people choose to use these libraries is because they provide a ready-to-use avatar model with animations. This saves you time and effort, as you don't have to create your own model from scratch or spend hours on animation. cats-blender-plugin provides a number of utilities for working with meshes and textures. This includes mesh generation, mesh manipulation, and texture extraction from image files. You may also find it useful if you need access to some of the more advanced features of Blender's API. The VRChat SDK provides an API for interacting with users and avatars, as well as an interface for adding new features to your game or experience. There are several popular open source VRChat libraries available for developers.

cats-blender-plugin  

  • The Cats Blender Plugin is a tool designed for Blender.  
  • cat's blender plugin is a Python library used in Gaming and game Engine applications.  
  • A tool designed to shorten steps needed to import and optimize models into VRChat.  


cats-blender-plugin  

  • A popular 3D modeling and animation software.  
  • The plugin focused on facilitating the import and export of 3D models.  
  • The Cats Blender Plugin is used in combination with Unity to streamline. 


April-Tag-VR-FullBody-Tracker  

  • AprilTag is a popular system for detecting markers in images.  
  • These markers are black-and-white patterns that can be identified by computer vision.  
  • AprilTags are used in augmented reality and virtual reality applications for tracking.  


UdonSharp  

  • UdonSharp is a C# library.  
  • UdonSharp allows developers to write scripts in C# for VRChat worlds and avatars.  
  • It's tailored for writing scripts for VRChat, a popular virtual reality platform.  


VRCX  

  • VRCX is a JavaScript library typically used in Gaming and video Game applications.  
  • VRCX is designed to enhance the VRChat experience by providing more features.  
  • VRCX allows users to track the online status of their friends in VRChat.  


PoiyomiToonShader  

  • Poiyomi Toon Shader is a custom shader for Unity, a popular game development engine.  
  • The shader is designed to create a toon or cel-shaded look for 3D models.  
  • This type of shader is often used in various applications.  

osc  

  • OSC is a C# library.  
  • Osc has no bugs, It has no vulnerabilities.  
  • It has a Permissive License, and it has low support.  


VRCMods  

  • VRCMods is a C# library typically used in Gaming, Game Engine applications.  
  • VRCMods has no bugs, It has no vulnerabilities.  
  • This repository contains my mods for VRChat.  


CyanEmu  

  • CyanEmu is a term associated with modifications or patches for certain video games.  
  • CyanEmu appears to be related to bypassing certain protections or restrictions in games.  
  • It's crucial to emphasize that using unofficial patches, cracks, or modifications.  


vrchatapi.github.io  

  • vrchatapi.github.io is an HTML library used in Web Services and REST applications.  
  • vrchatapi.github.io has no bugs, It has no vulnerabilities.  
  • vrchatapi.github.io has a low active ecosystem.  


material-combiner-addon  

  • material-combiner-addon is a Python library used in Plugin, Addon, and Three.js applications.  
  • material-combiner-addon has a Permissive License.  
  • material-combiner-addon has two bugs, It has four vulnerabilities.  


XSOverlay-VRChat-Parser  

  • XSOverlay-VRChat-Parser is a C# library.  
  • A tool for parsing the VRChat output log and leveraging XSNotifications to displays.  
  • The application is built on .NET 5.0 and is both framework-dependent and standalone builts.  


FAQ  

1. Is VRChat age restricted?  

The platform built to cater to people 13+ by knowing that it does not make sense to have warnings. To try to scare away their target user base from using the platform because they are under 18.  

  

2. Why is VRChat popular?  

VRChat's popularity has been attributed to its use by YouTubers and Twitch streamers. VRChat has spawned media such as a weekly newspaper in its forums. It talks shows and podcasts dedicated to a discussion of the game.  

3. What does VRChat use?  

VRChat is a popular and free multiplayer online experience. As you may guess from the name, it's compatible with the HTC Vive and Oculus Rift virtual reality headsets. It's accessible on your computer via Steam or the VRChat website.  

  

4. Can I play VRChat on my phone?  

The VRChat Beta is open to everyone with a compatible Android device. The Android Alpha is locked to accounts with VRChat Plus. The Beta is opens to everyone who owns a device that meets our requirements.  

  

5. What engine does VRChat use?  

The VRChat Software Development Kit enables users to create interactive worlds and avatars. All tools that Unity provides should work in VRChat. It includes lighting, nav mesh, and animations. 

 

With Facebook rebranding itself as Meta and multiple corporations betting on the Metaverse, the interest for development on Metaverse and Extended Reality (XR) have peaked. And it’s no surprise: XR technologies are changing the way we interact with our environment while offering immersive experiences. But what is Extended Reality (XR)? Extended Reality (XR) is an environment or experience that combines virtual and physical realities through the use of augmented reality (AR), mixed reality, virtual reality (VR) or any similar immersive technologies. Think Pokemon Go or The Walking Dead: Our World — games that combine your phone’s camera with a layer of 3D animated objects superimposed on top of it. Or imagine being able to virtually open up a virtual world inside of real-world buildings, like in Ready Player One. Whether you’re new to XR and just starting out, or you’re looking for specific tools to help you in your development process, you can use the following open source resources for your Extended Reality (XR) applications.

Trending Discussions on Virtual Reality

Algorithm to fill arbitrary marked/selected tiles on a square grid with the smallest number of rectangles?

Centering element in LaTeX table with fixed column width

How can I display an array of strings of an object as spans in a JS template literal?

Python regular expression unable to find pattern - using pyspark on Apache Spark

Why is my website slightly wider than the window?

Unity Gameobject not visible in Hololens 2

Why does my webpage look different upon resizing the browser window VS on mobile?

NoClassDefFoundError in OSGi although it is exported and imported

Why does the mobile-version navbar pops up automatically when downsizing screen?

count sum of values of selected radio buttons which have particular data-id

QUESTION

Algorithm to fill arbitrary marked/selected tiles on a square grid with the smallest number of rectangles?

Asked 2022-Jan-12 at 15:58

What I am asking here is an algorithm question. I'm not asking for specifics of how to do it in the programming language I'm working in or with the framework and libraries I'm currently using. I want to know how to do this in principle.

As a hobby, I am working on an open source virtual reality remake of the 1992 first-person shooter game Wolfenstein 3D. My program will support classic mods and map packs for WOLF3D made in the original format from the 90s. This means that my program will not know in advance what the maps are going to be. They are loaded in at runtime from user provided files.

A Wolfenstein 3D map is a 2D square grid of normally 64x64 tiles. let's assume I have a 2D array of bools which return true if a particular tile can be traversed by the player and false if the tile will never be traversable no matter what happens in the game.

I want to generate rectangular collision objects for a modern game engine which will prevent collisions into non traversable tiles on the map. Right now, I have a small collision object on each surface of each wall tile with a traversible tile next to it and that is very inefficient because it makes way more collision objects than necessary. What I should have instead is a smaller number of large rectangles which fill all of the squares on the grid where that 2D array I mentioned has a false value to indicate non-traversible.

When I search for any algorithms or research that might have been done for problems similar to this, I find lots of information about rectangle packing for the purposes of making texture atlases for games, which packs rectangles into a square, but I haven't found anything that tries to pack the smallest number of rectangles into an arbitrary set of selected / marked square tiles.

The naive approach which occurs to me is to first make 64 rectangles representing 64 rows and then chop out whatever squares are traversible. but I suspect that there's got to be an algorithm which can do better, meaning that it can fill the same spaces with a smaller number of rectangles. Maybe something that starts with my naive approach and then checks each rectangle for adjacent rectangles which it could merge with? But I'm not sure how far to take that approach or if it will even truly reduce the number of rectangles.

The result doesn't have to be perfect. I am just fishing here to see if anyone has any magic tricks that could take me even a little bit beyond the naive approach.

Has anyone done this before? What is it called? Just knowing what some of the vocabulary words I would need to even talk about this are would help. Thanks!

(later edit)

Here is some sample input as comma-separated values. The 1s represent the area that must be filled with the rectangles while the 0s represent the area that should not be filled with the rectangles.

I expect that the result would be a list of sets of 4 integers where each set represents a rectangle like this:

  1. First integer would be the x coordinate of the left/western edge of the rectangle.
  2. Second integer would be the y coordinate of the top/northern edge of the rectangle.
  3. Third integer would be the width of the rectangle.
  4. Fourth integer would be the depth of the rectangle.

My program is in C# but I'm sure I can translate anything in a normal mainstream general purpose programming language or psuedocode.

ANSWER

Answered 2022-Jan-12 at 14:46
1Mark all tiles as not visited
2For each tile:
3    skip if the tile is not a top-left corner or was visited before
4    # now, the tile is a top-left corner
5    expand right until top-right corner is found
6    expand down
7    save the rectangle
8    mark all tiles in the rectangle as visited
9

However simplistic it looks, it will likely generate minimal number of rectangles - simply because we need at least one rectangle per pair of top corners.

For faster downward expansion, it makes sense to precompute a table holding sum of all element top and left from the tile (aka integral image).

For non-overlapping rectangles, worst case complexity for an n x n "image" should not exceed O(n^3). If rectangles can overlap (would result in smaller number of them), integral image optimization is not applicable and the worst case will be O(n^4).

Source https://stackoverflow.com/questions/70674385

QUESTION

Centering element in LaTeX table with fixed column width

Asked 2021-Dec-02 at 10:09

I am having some problems with LaTeX tables. In particular, I have the following code:

1\begin{table}[ht]
2    \centering
3    \setlength{\tabcolsep}{2pt}
4    \renewcommand{\arraystretch}{1.5}
5    \begin{tabular}{|p{0.15\textwidth}&gt;{\centering}p{0.15\textwidth}&gt;{\centering}p{0.15\textwidth}&gt;{\centering}p{0.15\textwidth}&gt;{\centering}p{0.15\textwidth}p{0.15\textwidth}|}
6        \hline
7         &amp; \textbf{Virtual Reality Experience} &amp; \textbf{First Person Experience} &amp; \textbf{Multimedia Presentation Experience} &amp; \multicolumn{2}{c|}{\textbf{Full sample}} \\ 
8         \hline
9         &amp; \textit{n} &amp; \textit{n} &amp; \textit{n} &amp; \textit{n} &amp; \textit{\%} \\
10         \hline
11         \textbf{Gender} &amp;&amp;&amp;&amp;&amp; \\
12         Female &amp; 12 &amp; 10 &amp; 18 &amp; 40 &amp; 52.6 \\
13         Male &amp; 10 &amp; 13 &amp; 13 &amp; 36 &amp; 47.4 \\
14         \hline
15         \textbf{Educational level} &amp;&amp;&amp;&amp;&amp; \\
16         High School &amp; 8 &amp; 5 &amp; 6 &amp; 19 &amp; 25.0 \\
17         Bachelor's Degree &amp; 13 &amp; 9 &amp; 19 &amp; 41 &amp; 53.9 \\
18         Master's Degree &amp; 1 &amp; 8 &amp; 6 &amp; 15 &amp; 19.7 \\
19         PhD &amp; 0 &amp; 1 &amp; 0 &amp; 1 &amp; 1.3 \\
20         \hline \hline
21         \textbf{Age} &amp;&amp;&amp;&amp;&amp; \\
22         Mean &amp; 23.6 &amp; 24.6 &amp; 24 &amp; \multicolumn{2}{c|}{24.1} \\
23         Median &amp; 23.6 &amp; 24.6 &amp; 24 &amp; \multicolumn{2}{c|}{24.1} \\
24         \hline
25    \end{tabular}
26    \caption{Participants demographic information}
27    \label{tab:demographic}
28\end{table}
29

This code gives me the following output: generated table.

I would like to center also the last column (using, like in the other columns, >{\centering} ). However, when I try to do so, I have a lot of errors:

  • Misplaced \noalign - You have used a \hline command in the wrong place, probably outside a table. If the \hline command is written inside a table, try including \\ before it (on the 3rd \hline )

  • Extra alignment tab has been changed to \cr - You have written too many alignment tabs in a table, causing one of them to be turned into a line break. Make sure you have specified the correct number of columns in your table (on the \textbf{Gender} line)

  • LaTeX Error: There's no line here to end - You have used a \\ or \newline command where LaTeX was not expecting one. Make sure that you only use line breaks after blocks of text, and be careful using linebreaks inside lists and other environments (on the \textbf{Gender} line)

Could anyone help me? The table is far more beautiful if I manage to center also the last line.

ANSWER

Answered 2021-Dec-02 at 10:09

You can centre the last column with >{\centering\arraybackslash}

1\begin{table}[ht]
2    \centering
3    \setlength{\tabcolsep}{2pt}
4    \renewcommand{\arraystretch}{1.5}
5    \begin{tabular}{|p{0.15\textwidth}&gt;{\centering}p{0.15\textwidth}&gt;{\centering}p{0.15\textwidth}&gt;{\centering}p{0.15\textwidth}&gt;{\centering}p{0.15\textwidth}p{0.15\textwidth}|}
6        \hline
7         &amp; \textbf{Virtual Reality Experience} &amp; \textbf{First Person Experience} &amp; \textbf{Multimedia Presentation Experience} &amp; \multicolumn{2}{c|}{\textbf{Full sample}} \\ 
8         \hline
9         &amp; \textit{n} &amp; \textit{n} &amp; \textit{n} &amp; \textit{n} &amp; \textit{\%} \\
10         \hline
11         \textbf{Gender} &amp;&amp;&amp;&amp;&amp; \\
12         Female &amp; 12 &amp; 10 &amp; 18 &amp; 40 &amp; 52.6 \\
13         Male &amp; 10 &amp; 13 &amp; 13 &amp; 36 &amp; 47.4 \\
14         \hline
15         \textbf{Educational level} &amp;&amp;&amp;&amp;&amp; \\
16         High School &amp; 8 &amp; 5 &amp; 6 &amp; 19 &amp; 25.0 \\
17         Bachelor's Degree &amp; 13 &amp; 9 &amp; 19 &amp; 41 &amp; 53.9 \\
18         Master's Degree &amp; 1 &amp; 8 &amp; 6 &amp; 15 &amp; 19.7 \\
19         PhD &amp; 0 &amp; 1 &amp; 0 &amp; 1 &amp; 1.3 \\
20         \hline \hline
21         \textbf{Age} &amp;&amp;&amp;&amp;&amp; \\
22         Mean &amp; 23.6 &amp; 24.6 &amp; 24 &amp; \multicolumn{2}{c|}{24.1} \\
23         Median &amp; 23.6 &amp; 24.6 &amp; 24 &amp; \multicolumn{2}{c|}{24.1} \\
24         \hline
25    \end{tabular}
26    \caption{Participants demographic information}
27    \label{tab:demographic}
28\end{table}
29\documentclass{article}
30
31\usepackage{array}
32
33\begin{document}
34
35\begin{table}[ht]
36    \centering
37    \setlength{\tabcolsep}{2pt}
38    \renewcommand{\arraystretch}{1.5}
39    \begin{tabular}{
40      |
41      p{0.15\textwidth}
42      &gt;{\centering}p{0.15\textwidth}
43      &gt;{\centering}p{0.15\textwidth}
44      &gt;{\centering}p{0.15\textwidth}
45      &gt;{\centering}p{0.15\textwidth}
46      &gt;{\centering\arraybackslash}p{0.15\textwidth}
47      |
48    }
49        \hline
50         &amp; \textbf{Virtual Reality Experience} &amp; \textbf{First Person Experience} &amp; \textbf{Multimedia Presentation Experience} &amp; \multicolumn{2}{c|}{\textbf{Full sample}} \\ 
51         \hline
52         &amp; \textit{n} &amp; \textit{n} &amp; \textit{n} &amp; \textit{n} &amp; \textit{\%} \\
53         \hline
54         \textbf{Gender} &amp;&amp;&amp;&amp;&amp; \\
55         Female &amp; 12 &amp; 10 &amp; 18 &amp; 40 &amp; 52.6 \\
56         Male &amp; 10 &amp; 13 &amp; 13 &amp; 36 &amp; 47.4 \\
57         \hline
58         \textbf{Educational level} &amp;&amp;&amp;&amp;&amp; \\
59         High School &amp; 8 &amp; 5 &amp; 6 &amp; 19 &amp; 25.0 \\
60         Bachelor's Degree &amp; 13 &amp; 9 &amp; 19 &amp; 41 &amp; 53.9 \\
61         Master's Degree &amp; 1 &amp; 8 &amp; 6 &amp; 15 &amp; 19.7 \\
62         PhD &amp; 0 &amp; 1 &amp; 0 &amp; 1 &amp; 1.3 \\
63         \hline \hline
64         \textbf{Age} &amp;&amp;&amp;&amp;&amp; \\
65         Mean &amp; 23.6 &amp; 24.6 &amp; 24 &amp; \multicolumn{2}{c|}{24.1} \\
66         Median &amp; 23.6 &amp; 24.6 &amp; 24 &amp; \multicolumn{2}{c|}{24.1} \\
67         \hline
68    \end{tabular}
69    \caption{Participants demographic information}
70    \label{tab:demographic}
71\end{table}
72
73
74\end{document}
75

enter image description here

Source https://stackoverflow.com/questions/70197417

QUESTION

How can I display an array of strings of an object as spans in a JS template literal?

Asked 2021-Aug-20 at 22:55

I have an array of objects. In each object there is a key with a value of an array of strings (the number of strings changes in each object). How can I display each string of the array as <span> in a JS template literal?

If the array contains 2 strings, than 2 <span> should appear, If 3 strings, 3 <span> etc.

Code:

1let items = [{
2  &quot;id&quot;: 1,
3  &quot;name&quot;: &quot;item 1&quot;,
4  &quot;captionTags&quot;: [&quot;Stills&quot;, &quot;Animation&quot;, &quot;Virtual Reality&quot;]
5},
6{
7  &quot;id&quot;: 2,
8  &quot;name&quot;: &quot;item 2&quot;,
9  &quot;captionTags&quot;: [&quot;Configurator&quot;, &quot;Animation&quot;, &quot;Application&quot;]
10},
11{
12  &quot;id&quot;: 3,
13  &quot;name&quot;: &quot;item 3&quot;,
14  &quot;captionTags&quot;: [&quot;Stills&quot;, &quot;Configurator&quot;]
15}];
16
17function displayItems() {
18  let itemsContainer = document.querySelector('.items-container');
19  itemsContainer.innerHTML = '';
20  items.forEach(item =&gt; {
21
22    itemsContainer.innerHTML += `
23        &lt;div class=&quot;items-wrapper&quot;&gt;
24        &lt;div class=&quot;item-caption&quot;&gt;
25            &lt;span class=&quot;item-caption-col&quot;&gt;
26                &lt;h3&gt;${item.name}&lt;/h3&gt;
27                &lt;span class=&quot;item-caption-tags&quot;&gt;
28                I WANT TO DISPLAY HERE EACH ELEMENT OF CAPTION TAGS ARRAY IN EACH OBJECT 
29               AS SPANS 
30                &lt;/span&gt;
31            &lt;/span&gt;
32        &lt;/div&gt;
33    &lt;/div&gt;`
34  });
35};
36
37
38displayItems();
39

Thank you in advance for your help!

ANSWER

Answered 2021-Aug-20 at 12:29

Try this:

1let items = [{
2  &quot;id&quot;: 1,
3  &quot;name&quot;: &quot;item 1&quot;,
4  &quot;captionTags&quot;: [&quot;Stills&quot;, &quot;Animation&quot;, &quot;Virtual Reality&quot;]
5},
6{
7  &quot;id&quot;: 2,
8  &quot;name&quot;: &quot;item 2&quot;,
9  &quot;captionTags&quot;: [&quot;Configurator&quot;, &quot;Animation&quot;, &quot;Application&quot;]
10},
11{
12  &quot;id&quot;: 3,
13  &quot;name&quot;: &quot;item 3&quot;,
14  &quot;captionTags&quot;: [&quot;Stills&quot;, &quot;Configurator&quot;]
15}];
16
17function displayItems() {
18  let itemsContainer = document.querySelector('.items-container');
19  itemsContainer.innerHTML = '';
20  items.forEach(item =&gt; {
21
22    itemsContainer.innerHTML += `
23        &lt;div class=&quot;items-wrapper&quot;&gt;
24        &lt;div class=&quot;item-caption&quot;&gt;
25            &lt;span class=&quot;item-caption-col&quot;&gt;
26                &lt;h3&gt;${item.name}&lt;/h3&gt;
27                &lt;span class=&quot;item-caption-tags&quot;&gt;
28                I WANT TO DISPLAY HERE EACH ELEMENT OF CAPTION TAGS ARRAY IN EACH OBJECT 
29               AS SPANS 
30                &lt;/span&gt;
31            &lt;/span&gt;
32        &lt;/div&gt;
33    &lt;/div&gt;`
34  });
35};
36
37
38displayItems();
39let items = [{
40        "id": 1,
41        "name": "item 1",
42        "captionTags": ["Stills", "Animation", "Virtual Reality"]
43    },
44    {
45        "id": 2,
46        "name": "item 2",
47        "captionTags": ["Configurator", "Animation", "Application"]
48    },
49    {
50        "id": 3,
51        "name": "item 3",
52        "captionTags": ["Stills", "Configurator"]
53    }];
54
55function displayItems() {
56    let itemsContainer = document.querySelector('.items-container');
57    itemsContainer.innerHTML = '';
58    items.forEach(item =&gt; {
59
60        itemsContainer.innerHTML += `
61        &lt;div class="items-wrapper"&gt;
62        &lt;div class="item-caption"&gt;
63            &lt;span class="item-caption-col"&gt;
64                &lt;h3&gt;${item.name}&lt;/h3&gt;
65                `;
66                item.captionTags.forEach(tag =&gt; {
67                  itemsContainer.innerHTML +=`&lt;span class="item-caption-tags"&gt; ${tag} &lt;/span&gt;`
68                })
69               itemsContainer.innerHTML +=`
70            &lt;/span&gt;
71        &lt;/div&gt;
72    &lt;/div&gt;`
73    });
74};
75
76
77displayItems();
1let items = [{
2  &quot;id&quot;: 1,
3  &quot;name&quot;: &quot;item 1&quot;,
4  &quot;captionTags&quot;: [&quot;Stills&quot;, &quot;Animation&quot;, &quot;Virtual Reality&quot;]
5},
6{
7  &quot;id&quot;: 2,
8  &quot;name&quot;: &quot;item 2&quot;,
9  &quot;captionTags&quot;: [&quot;Configurator&quot;, &quot;Animation&quot;, &quot;Application&quot;]
10},
11{
12  &quot;id&quot;: 3,
13  &quot;name&quot;: &quot;item 3&quot;,
14  &quot;captionTags&quot;: [&quot;Stills&quot;, &quot;Configurator&quot;]
15}];
16
17function displayItems() {
18  let itemsContainer = document.querySelector('.items-container');
19  itemsContainer.innerHTML = '';
20  items.forEach(item =&gt; {
21
22    itemsContainer.innerHTML += `
23        &lt;div class=&quot;items-wrapper&quot;&gt;
24        &lt;div class=&quot;item-caption&quot;&gt;
25            &lt;span class=&quot;item-caption-col&quot;&gt;
26                &lt;h3&gt;${item.name}&lt;/h3&gt;
27                &lt;span class=&quot;item-caption-tags&quot;&gt;
28                I WANT TO DISPLAY HERE EACH ELEMENT OF CAPTION TAGS ARRAY IN EACH OBJECT 
29               AS SPANS 
30                &lt;/span&gt;
31            &lt;/span&gt;
32        &lt;/div&gt;
33    &lt;/div&gt;`
34  });
35};
36
37
38displayItems();
39let items = [{
40        "id": 1,
41        "name": "item 1",
42        "captionTags": ["Stills", "Animation", "Virtual Reality"]
43    },
44    {
45        "id": 2,
46        "name": "item 2",
47        "captionTags": ["Configurator", "Animation", "Application"]
48    },
49    {
50        "id": 3,
51        "name": "item 3",
52        "captionTags": ["Stills", "Configurator"]
53    }];
54
55function displayItems() {
56    let itemsContainer = document.querySelector('.items-container');
57    itemsContainer.innerHTML = '';
58    items.forEach(item =&gt; {
59
60        itemsContainer.innerHTML += `
61        &lt;div class="items-wrapper"&gt;
62        &lt;div class="item-caption"&gt;
63            &lt;span class="item-caption-col"&gt;
64                &lt;h3&gt;${item.name}&lt;/h3&gt;
65                `;
66                item.captionTags.forEach(tag =&gt; {
67                  itemsContainer.innerHTML +=`&lt;span class="item-caption-tags"&gt; ${tag} &lt;/span&gt;`
68                })
69               itemsContainer.innerHTML +=`
70            &lt;/span&gt;
71        &lt;/div&gt;
72    &lt;/div&gt;`
73    });
74};
75
76
77displayItems();span.item-caption-tags {
78  border: 1px solid black
79}
1let items = [{
2  &quot;id&quot;: 1,
3  &quot;name&quot;: &quot;item 1&quot;,
4  &quot;captionTags&quot;: [&quot;Stills&quot;, &quot;Animation&quot;, &quot;Virtual Reality&quot;]
5},
6{
7  &quot;id&quot;: 2,
8  &quot;name&quot;: &quot;item 2&quot;,
9  &quot;captionTags&quot;: [&quot;Configurator&quot;, &quot;Animation&quot;, &quot;Application&quot;]
10},
11{
12  &quot;id&quot;: 3,
13  &quot;name&quot;: &quot;item 3&quot;,
14  &quot;captionTags&quot;: [&quot;Stills&quot;, &quot;Configurator&quot;]
15}];
16
17function displayItems() {
18  let itemsContainer = document.querySelector('.items-container');
19  itemsContainer.innerHTML = '';
20  items.forEach(item =&gt; {
21
22    itemsContainer.innerHTML += `
23        &lt;div class=&quot;items-wrapper&quot;&gt;
24        &lt;div class=&quot;item-caption&quot;&gt;
25            &lt;span class=&quot;item-caption-col&quot;&gt;
26                &lt;h3&gt;${item.name}&lt;/h3&gt;
27                &lt;span class=&quot;item-caption-tags&quot;&gt;
28                I WANT TO DISPLAY HERE EACH ELEMENT OF CAPTION TAGS ARRAY IN EACH OBJECT 
29               AS SPANS 
30                &lt;/span&gt;
31            &lt;/span&gt;
32        &lt;/div&gt;
33    &lt;/div&gt;`
34  });
35};
36
37
38displayItems();
39let items = [{
40        "id": 1,
41        "name": "item 1",
42        "captionTags": ["Stills", "Animation", "Virtual Reality"]
43    },
44    {
45        "id": 2,
46        "name": "item 2",
47        "captionTags": ["Configurator", "Animation", "Application"]
48    },
49    {
50        "id": 3,
51        "name": "item 3",
52        "captionTags": ["Stills", "Configurator"]
53    }];
54
55function displayItems() {
56    let itemsContainer = document.querySelector('.items-container');
57    itemsContainer.innerHTML = '';
58    items.forEach(item =&gt; {
59
60        itemsContainer.innerHTML += `
61        &lt;div class="items-wrapper"&gt;
62        &lt;div class="item-caption"&gt;
63            &lt;span class="item-caption-col"&gt;
64                &lt;h3&gt;${item.name}&lt;/h3&gt;
65                `;
66                item.captionTags.forEach(tag =&gt; {
67                  itemsContainer.innerHTML +=`&lt;span class="item-caption-tags"&gt; ${tag} &lt;/span&gt;`
68                })
69               itemsContainer.innerHTML +=`
70            &lt;/span&gt;
71        &lt;/div&gt;
72    &lt;/div&gt;`
73    });
74};
75
76
77displayItems();span.item-caption-tags {
78  border: 1px solid black
79}&lt;script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"&gt;&lt;/script&gt;
80&lt;div class="items-container" &gt; &lt;/div&gt;

css is for example only

Source https://stackoverflow.com/questions/68861893

QUESTION

Python regular expression unable to find pattern - using pyspark on Apache Spark

Asked 2021-Jul-15 at 21:31

Can someone let me why the regular expression

1df = df2.withColumn(&quot;extracted&quot;, F.regexp_extract(&quot;title&quot;, &quot;[Pp]ython&quot;, 0))
2

Can find the pattern 'Python' or 'python' from the followng column called title

1df = df2.withColumn(&quot;extracted&quot;, F.regexp_extract(&quot;title&quot;, &quot;[Pp]ython&quot;, 0))
2title
3A fast PostgreSQL client library for Python: 3x faster than psycopg2
4A project template for data science in Python
5A simple python framework to build/train LUIS models
6An Introduction to Stock Market Data Analysis with Python (Part 1)
7Asynchronous Python
8Cubr  A Rubiks Cube Solver Written in Python and using Webcam Input (2013)
9Python 4 Kids: Python for Kids: Python 3  Project 10
10

But the regular expression can't find the pattern Python or python from the following

1df = df2.withColumn(&quot;extracted&quot;, F.regexp_extract(&quot;title&quot;, &quot;[Pp]ython&quot;, 0))
2title
3A fast PostgreSQL client library for Python: 3x faster than psycopg2
4A project template for data science in Python
5A simple python framework to build/train LUIS models
6An Introduction to Stock Market Data Analysis with Python (Part 1)
7Asynchronous Python
8Cubr  A Rubiks Cube Solver Written in Python and using Webcam Input (2013)
9Python 4 Kids: Python for Kids: Python 3  Project 10
10title
11Python Core Development Sprint 2016: 3.6 and beyond
12Hypothesis.works articles: 3.5.0 and 3.5.1 Releases of Hypothesis for Python
13Total pip packages downloaded, separated by Python versions (June  August 2016)
14PEP 530: Asynchronous Comprehensions in Python 3.6
15Python 2.7 still reigns supreme in pip installs
16CheckiO  games for Python and JavaScript coders. ClassRoom support is included
17VR Zero, Virtual Reality on the RaspberryPi, in Python
18

Thanks

ANSWER

Answered 2021-Jul-15 at 21:31

Use the ignore case regex;

(?i)-ignore or case-insensitive mode ON

Data

data=[

1df = df2.withColumn(&quot;extracted&quot;, F.regexp_extract(&quot;title&quot;, &quot;[Pp]ython&quot;, 0))
2title
3A fast PostgreSQL client library for Python: 3x faster than psycopg2
4A project template for data science in Python
5A simple python framework to build/train LUIS models
6An Introduction to Stock Market Data Analysis with Python (Part 1)
7Asynchronous Python
8Cubr  A Rubiks Cube Solver Written in Python and using Webcam Input (2013)
9Python 4 Kids: Python for Kids: Python 3  Project 10
10title
11Python Core Development Sprint 2016: 3.6 and beyond
12Hypothesis.works articles: 3.5.0 and 3.5.1 Releases of Hypothesis for Python
13Total pip packages downloaded, separated by Python versions (June  August 2016)
14PEP 530: Asynchronous Comprehensions in Python 3.6
15Python 2.7 still reigns supreme in pip installs
16CheckiO  games for Python and JavaScript coders. ClassRoom support is included
17VR Zero, Virtual Reality on the RaspberryPi, in Python
18  (1,&quot;Python Core Development Sprint 2016: 3.6 and beyond&quot;),
19  (2,&quot;Hypothesis.works articles: 3.5.0 and 3.5.1 Releases of Hypothesis for Python&quot;),
20  (3,&quot;CheckiO  games for python and JavaScript coders. ClassRoom support is included&quot;)
21  ]
22df=spark.createDataFrame(data, ['id','title'])
23df.show(truncate=False)
24

Solution

1df = df2.withColumn(&quot;extracted&quot;, F.regexp_extract(&quot;title&quot;, &quot;[Pp]ython&quot;, 0))
2title
3A fast PostgreSQL client library for Python: 3x faster than psycopg2
4A project template for data science in Python
5A simple python framework to build/train LUIS models
6An Introduction to Stock Market Data Analysis with Python (Part 1)
7Asynchronous Python
8Cubr  A Rubiks Cube Solver Written in Python and using Webcam Input (2013)
9Python 4 Kids: Python for Kids: Python 3  Project 10
10title
11Python Core Development Sprint 2016: 3.6 and beyond
12Hypothesis.works articles: 3.5.0 and 3.5.1 Releases of Hypothesis for Python
13Total pip packages downloaded, separated by Python versions (June  August 2016)
14PEP 530: Asynchronous Comprehensions in Python 3.6
15Python 2.7 still reigns supreme in pip installs
16CheckiO  games for Python and JavaScript coders. ClassRoom support is included
17VR Zero, Virtual Reality on the RaspberryPi, in Python
18  (1,&quot;Python Core Development Sprint 2016: 3.6 and beyond&quot;),
19  (2,&quot;Hypothesis.works articles: 3.5.0 and 3.5.1 Releases of Hypothesis for Python&quot;),
20  (3,&quot;CheckiO  games for python and JavaScript coders. ClassRoom support is included&quot;)
21  ]
22df=spark.createDataFrame(data, ['id','title'])
23df.show(truncate=False)
24df.withColumn('extract', F.regexp_extract(col('title'),'(?i)[P]ython',0)).show()
25

Outcome

1df = df2.withColumn(&quot;extracted&quot;, F.regexp_extract(&quot;title&quot;, &quot;[Pp]ython&quot;, 0))
2title
3A fast PostgreSQL client library for Python: 3x faster than psycopg2
4A project template for data science in Python
5A simple python framework to build/train LUIS models
6An Introduction to Stock Market Data Analysis with Python (Part 1)
7Asynchronous Python
8Cubr  A Rubiks Cube Solver Written in Python and using Webcam Input (2013)
9Python 4 Kids: Python for Kids: Python 3  Project 10
10title
11Python Core Development Sprint 2016: 3.6 and beyond
12Hypothesis.works articles: 3.5.0 and 3.5.1 Releases of Hypothesis for Python
13Total pip packages downloaded, separated by Python versions (June  August 2016)
14PEP 530: Asynchronous Comprehensions in Python 3.6
15Python 2.7 still reigns supreme in pip installs
16CheckiO  games for Python and JavaScript coders. ClassRoom support is included
17VR Zero, Virtual Reality on the RaspberryPi, in Python
18  (1,&quot;Python Core Development Sprint 2016: 3.6 and beyond&quot;),
19  (2,&quot;Hypothesis.works articles: 3.5.0 and 3.5.1 Releases of Hypothesis for Python&quot;),
20  (3,&quot;CheckiO  games for python and JavaScript coders. ClassRoom support is included&quot;)
21  ]
22df=spark.createDataFrame(data, ['id','title'])
23df.show(truncate=False)
24df.withColumn('extract', F.regexp_extract(col('title'),'(?i)[P]ython',0)).show()
25+---+--------------------+-------+
26| id|               title|extract|
27+---+--------------------+-------+
28|  1|Python Core Devel...| Python|
29|  2|Hypothesis.works ...| Python|
30|  3|CheckiO  games fo...| python|
31+---+--------------------+-------+
32

Source https://stackoverflow.com/questions/68400780

QUESTION

Why is my website slightly wider than the window?

Asked 2021-May-04 at 13:42

I'm working on a school project in which I have to create a small Webpage introducing you to a topic of choice.

Unfortunately my website has a horizontal scrollbar and I don't have a clue which element causes it. I tried disabling the elements one after another but haven't found a solution

Thanks in advance for any tips!

1&lt;!doctype html&gt;
2&lt;html lang=&quot;de&quot;&gt;
3    &lt;head&gt;
4        &lt;title&gt;VR&lt;/title&gt;
5        &lt;!-- Required meta tags --&gt;
6        &lt;meta charset=&quot;utf-8&quot;&gt;
7        &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1, shrink-to-fit=no&quot;&gt;
8
9        &lt;!-- Bootstrap CSS --&gt;
10        &lt;link rel=&quot;stylesheet&quot; href=&quot;https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css&quot; integrity=&quot;sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T&quot; crossorigin=&quot;anonymous&quot;&gt;
11        &lt;link rel=&quot;stylesheet&quot; href=&quot;style.css&quot;&gt;
12    &lt;/head&gt;
13    &lt;body&gt;
14        &lt;nav id=&quot;colorlib-main-nav&quot; role=&quot;navigation&quot;&gt;
15            &lt;a href=&quot;#&quot; class=&quot;js-colorlib-nav-toggle colorlib-nav-toggle active&quot;&gt;&lt;i&gt;&lt;/i&gt;&lt;/a&gt;
16            &lt;div class=&quot;js-fullheight colorlib-table&quot;&gt;
17                &lt;div class=&quot;img&quot; style=&quot;background-image: url(images/bg_3.jpg);&quot;&gt;&lt;/div&gt;
18                &lt;div class=&quot;colorlib-table-cell js-fullheight&quot;&gt;
19                &lt;div class=&quot;row no-gutters&quot;&gt;
20                    &lt;div class=&quot;col-md-12 text-center&quot;&gt;
21                    &lt;h1 class=&quot;mb-4&quot;&gt;&lt;a href=&quot;index.html&quot; class=&quot;logo&quot;&gt;Company Logo&lt;/a&gt;&lt;/h1&gt;
22                    &lt;ul&gt;
23                        &lt;li class=&quot;active&quot;&gt;&lt;a href=&quot;index.html&quot;&gt;&lt;span&gt;Home&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
24                        &lt;li&gt;&lt;a href=&quot;about.html&quot;&gt;&lt;span&gt;About&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
25                        &lt;li&gt;&lt;a href=&quot;blog.html&quot;&gt;&lt;span&gt;Blog&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
26                        &lt;li&gt;&lt;a href=&quot;contact.html&quot;&gt;&lt;span&gt;Contact&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
27                    &lt;/ul&gt;
28                    &lt;/div&gt;
29                &lt;/div&gt;
30                &lt;/div&gt;
31            &lt;/div&gt;
32        &lt;/nav&gt;
33
34        &lt;div class=&quot;header h-100&quot;&gt;
35            &lt;a href=&quot;#&quot; class=&quot;js-colorlib-nav-toggle colorlib-nav-toggle&quot;&gt;&lt;i&gt;&lt;/i&gt;&lt;/a&gt;
36            &lt;h1 id=&quot;h-100&quot; class=&quot;introduction h-100&quot;&gt;Virtual Reality&lt;/h1&gt;
37            
38        &lt;/div&gt;
39
40        &lt;div class=&quot;h-100&quot;&gt;
41            &lt;h2 class=&quot;center&quot;&gt;Was ist Virtual Reality (VR)&lt;/h2&gt;
42            &lt;p class=&quot;center&quot;&gt;Eine virtuelle Welt oder ein Computerspiel, in das der Nutzer mit Hilfe eines VR-Headsets vollständig eintauchen kann&lt;/p&gt;
43        &lt;/div&gt;
44        
45
46        &lt;div id=&quot;vr-headset-kategorien&quot; class=&quot;&quot;&gt;
47            &lt;!--Show each one as a full screen information - Picture or animation embeded at the left side - Text about it right--&gt;
48            &lt;div id=&quot;standalone&quot; class=&quot;row&quot;&gt;
49                &lt;!----&gt;
50                &lt;div class=&quot;vr-left_side container col-lg-6&quot;&gt;
51                    &lt;div class=&quot;sketchfab-embed-wrapper&quot;&gt; &lt;iframe title=&quot;Quest 2 Headset - FanArt&quot; frameborder=&quot;0&quot; allowfullscreen mozallowfullscreen=&quot;true&quot; webkitallowfullscreen=&quot;true&quot; allow=&quot;fullscreen; autoplay; vr&quot; xr-spatial-tracking execution-while-out-of-viewport execution-while-not-rendered web-share src=&quot;https://sketchfab.com/models/ee496aa030bf4f37a52b445196796af3/embed?autospin=1&amp;autostart=1&amp;ui_hint=0&quot;&gt; &lt;/iframe&gt; &lt;p style=&quot;font-size: 13px; font-weight: normal; margin: 5px; color: #4A4A4A;&quot;&gt; &lt;a href=&quot;https://sketchfab.com/3d-models/quest-2-headset-fanart-ee496aa030bf4f37a52b445196796af3?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=ee496aa030bf4f37a52b445196796af3&quot; target=&quot;_blank&quot; style=&quot;font-weight: bold; color: #1CAAD9;&quot;&gt; Quest 2 Headset - FanArt &lt;/a&gt; by &lt;a href=&quot;https://sketchfab.com/josevillotguisan?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=ee496aa030bf4f37a52b445196796af3&quot; target=&quot;_blank&quot; style=&quot;font-weight: bold; color: #1CAAD9;&quot;&gt; joseVG &lt;/a&gt; on &lt;a href=&quot;https://sketchfab.com?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=ee496aa030bf4f37a52b445196796af3&quot; target=&quot;_blank&quot; style=&quot;font-weight: bold; color: #1CAAD9;&quot;&gt;Sketchfab&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
52                &lt;/div&gt;
53                
54                &lt;div class=&quot;vr-right_side container col-lg-6&quot;&gt;
55                    &lt;h3&gt;Standalone&lt;/h3&gt;
56                
57                    &lt;p&gt;Standalone VR-Headsets ben&amp;ouml;tigen nur WLAN und Strom. In der VR-Brille ist ein eigener Prozessor eingebaut. Damit ist dieser Art super f&amp;uuml;r Anf&amp;auml;nger geeignet&lt;/p&gt;
58
59                    &lt;p&gt;
60                    Vorteile:&lt;br /&gt;
61                    Kein guter PC ben&amp;ouml;tigt&lt;br /&gt;
62                    Niedriger Einstiegspreis trotz guter Hardware&lt;br/&gt;
63                    Gut optimierbar, da es fĂźr das Heaset nur einen Prozessor gibt&lt;/p&gt;
64                    
65                    &lt;p&gt;Nachteile:&lt;br /&gt;
66                    Je nach Headset schlechte Performance bei fordernden Spielen&lt;/p&gt;
67                &lt;/div&gt;
68                
69            &lt;/div&gt;
70
71            &lt;div id=&quot;pc&quot; class=&quot;row&quot;&gt;
72                &lt;div class=&quot;vr-left_side container col-lg-6&quot;&gt;
73                    &lt;div class=&quot;sketchfab-embed-wrapper&quot;&gt; &lt;iframe title=&quot;HTC Vive&quot; frameborder=&quot;0&quot; allowfullscreen mozallowfullscreen=&quot;true&quot; webkitallowfullscreen=&quot;true&quot; allow=&quot;fullscreen; autoplay; vr&quot; xr-spatial-tracking execution-while-out-of-viewport execution-while-not-rendered web-share src=&quot;https://sketchfab.com/models/4cee0970fe60444ead77d41fbb052a33/embed?autospin=1&amp;autostart=1&amp;ui_hint=0&quot;&gt; &lt;/iframe&gt; &lt;p style=&quot;font-size: 13px; font-weight: normal; margin: 5px; color: #4A4A4A;&quot;&gt; &lt;a href=&quot;https://sketchfab.com/3d-models/htc-vive-4cee0970fe60444ead77d41fbb052a33?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=4cee0970fe60444ead77d41fbb052a33&quot; target=&quot;_blank&quot; style=&quot;font-weight: bold; color: #1CAAD9;&quot;&gt; HTC Vive &lt;/a&gt; by &lt;a href=&quot;https://sketchfab.com/EternalRealm?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=4cee0970fe60444ead77d41fbb052a33&quot; target=&quot;_blank&quot; style=&quot;font-weight: bold; color: #1CAAD9;&quot;&gt; Eternal Realm &lt;/a&gt; on &lt;a href=&quot;https://sketchfab.com?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=4cee0970fe60444ead77d41fbb052a33&quot; target=&quot;_blank&quot; style=&quot;font-weight: bold; color: #1CAAD9;&quot;&gt;Sketchfab&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
74                &lt;/div&gt;
75                
76                &lt;div class=&quot;vr-right_side container col-lg-6&quot;&gt;
77                    &lt;h3&gt;PC-VR&lt;/h3&gt;
78                    &lt;p&gt;PC-VR Headsets funktionieren nur zusammen mit einem PC. Sie werden &amp;uuml;ber ein langes Kabel verbunden. Mit einem passenden PC kann ein PC-VR Headset ein extrem sch&amp;ouml;nes Bild liefern. Der Einstiegspreis ist jedoch sehr hoch, daher sind sie vor allem f&amp;uuml;r Enthusiasten geeignet&lt;/p&gt;
79
80                    &lt;p&gt;Vorteile:&lt;br /&gt;
81                    Hohe Aufl&amp;ouml;sung&lt;br /&gt;
82                    Wenig Lags&lt;/p&gt;
83
84                    &lt;p&gt;Nachteile:&lt;br /&gt;
85                    Hoher Einstiegspreis&lt;/p&gt;
86                &lt;/div&gt;
87            &lt;/div&gt;
88
89            &lt;div id=&quot;fulldive&quot; class=&quot;row&quot;&gt;
90                &lt;div class=&quot;vr-left_side container col-lg-6&quot;&gt;
91                    &lt;div class=&quot;sketchfab-embed-wrapper&quot;&gt; &lt;iframe title=&quot;neuraLink&quot; frameborder=&quot;0&quot; allowfullscreen mozallowfullscreen=&quot;true&quot; webkitallowfullscreen=&quot;true&quot; allow=&quot;fullscreen; autoplay; vr&quot; xr-spatial-tracking execution-while-out-of-viewport execution-while-not-rendered web-share src=&quot;https://sketchfab.com/models/6a157c614d0641c2a2d2c7c7628fb01b/embed?autospin=1&amp;autostart=1&quot;&gt; &lt;/iframe&gt; &lt;p style=&quot;font-size: 13px; font-weight: normal; margin: 5px; color: #4A4A4A;&quot;&gt; &lt;a href=&quot;https://sketchfab.com/3d-models/neuralink-6a157c614d0641c2a2d2c7c7628fb01b?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=6a157c614d0641c2a2d2c7c7628fb01b&quot; target=&quot;_blank&quot; style=&quot;font-weight: bold; color: #1CAAD9;&quot;&gt; neuraLink &lt;/a&gt; by &lt;a href=&quot;https://sketchfab.com/rfarencibia?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=6a157c614d0641c2a2d2c7c7628fb01b&quot; target=&quot;_blank&quot; style=&quot;font-weight: bold; color: #1CAAD9;&quot;&gt; rfarencibia &lt;/a&gt; on &lt;a href=&quot;https://sketchfab.com?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=6a157c614d0641c2a2d2c7c7628fb01b&quot; target=&quot;_blank&quot; style=&quot;font-weight: bold; color: #1CAAD9;&quot;&gt;Sketchfab&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
92                &lt;/div&gt;
93                
94                &lt;div class=&quot;vr-right_side container col-lg-6&quot;&gt;
95                    &lt;h3&gt;Full-Dive VR&lt;/h3&gt;
96                    &lt;p&gt;Tauche komplett in die VR-Welt ein. Full-Dive VR-Headsets befinden sich bereits in Entwicklung. Bei diesem Ansatz wird keine VR-Brille verwendet, die wie ein Monitor funktioniert sondern Full-Dive VR-Headsets greifen direkt auf die Seh-, Tast-, und weitere Nerven zu. Daher ist dies auch die umstrittenste Technologie&lt;/p&gt;
97
98                    &lt;p&gt;Vorteile:&lt;br /&gt;
99                    Unvergleichliche Immersion&lt;/p&gt;
100
101                    &lt;p&gt;Nachteile:&lt;br /&gt;
102                    Sicherheit - Z.B. In der VR-Welt einsperren - Unwahrscheinlich aber m&amp;ouml;glich&lt;/p&gt;
103                &lt;/div&gt;
104            &lt;/div&gt;
105
106        &lt;/div&gt;
107
108        
109
110      
111        &lt;!-- Optional JavaScript --&gt;
112        &lt;!-- jQuery first, then Popper.js, then Bootstrap JS --&gt;
113        &lt;script src=&quot;https://code.jquery.com/jquery-3.3.1.slim.min.js&quot; integrity=&quot;sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo&quot; crossorigin=&quot;anonymous&quot;&gt;&lt;/script&gt;
114        &lt;script src=&quot;https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js&quot; integrity=&quot;sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1&quot; crossorigin=&quot;anonymous&quot;&gt;&lt;/script&gt;
115        &lt;script src=&quot;https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js&quot; integrity=&quot;sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM&quot; crossorigin=&quot;anonymous&quot;&gt;&lt;/script&gt;
116        &lt;script&gt;
117            (function($) {
118
119            &quot;use strict&quot;;
120
121            var fullHeight = function() {
122
123                $('.js-fullheight').css('height', $(window).height());
124                $(window).resize(function(){
125                    $('.js-fullheight').css('height', $(window).height());
126                });
127
128            };
129            fullHeight();
130
131            var burgerMenu = function() {
132
133                $('.js-colorlib-nav-toggle').on('click', function(event) {
134                    event.preventDefault();
135                    var $this = $(this);
136                    if( $('body').hasClass('menu-show') ) {
137                        $('body').removeClass('menu-show');
138                        $('#colorlib-main-nav &gt; .js-colorlib-nav-toggle').removeClass('show');
139                    } else {
140                        $('body').addClass('menu-show');
141                        setTimeout(function(){
142                            $('#colorlib-main-nav &gt; .js-colorlib-nav-toggle').addClass('show');
143                        }, 900);
144                    }
145                })
146            };
147            burgerMenu();
148
149
150            })(jQuery);
151        &lt;/script&gt;
152    &lt;/body&gt;
153&lt;/html&gt;
154
1&lt;!doctype html&gt;
2&lt;html lang=&quot;de&quot;&gt;
3    &lt;head&gt;
4        &lt;title&gt;VR&lt;/title&gt;
5        &lt;!-- Required meta tags --&gt;
6        &lt;meta charset=&quot;utf-8&quot;&gt;
7        &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1, shrink-to-fit=no&quot;&gt;
8
9        &lt;!-- Bootstrap CSS --&gt;
10        &lt;link rel=&quot;stylesheet&quot; href=&quot;https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css&quot; integrity=&quot;sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T&quot; crossorigin=&quot;anonymous&quot;&gt;
11        &lt;link rel=&quot;stylesheet&quot; href=&quot;style.css&quot;&gt;
12    &lt;/head&gt;
13    &lt;body&gt;
14        &lt;nav id=&quot;colorlib-main-nav&quot; role=&quot;navigation&quot;&gt;
15            &lt;a href=&quot;#&quot; class=&quot;js-colorlib-nav-toggle colorlib-nav-toggle active&quot;&gt;&lt;i&gt;&lt;/i&gt;&lt;/a&gt;
16            &lt;div class=&quot;js-fullheight colorlib-table&quot;&gt;
17                &lt;div class=&quot;img&quot; style=&quot;background-image: url(images/bg_3.jpg);&quot;&gt;&lt;/div&gt;
18                &lt;div class=&quot;colorlib-table-cell js-fullheight&quot;&gt;
19                &lt;div class=&quot;row no-gutters&quot;&gt;
20                    &lt;div class=&quot;col-md-12 text-center&quot;&gt;
21                    &lt;h1 class=&quot;mb-4&quot;&gt;&lt;a href=&quot;index.html&quot; class=&quot;logo&quot;&gt;Company Logo&lt;/a&gt;&lt;/h1&gt;
22                    &lt;ul&gt;
23                        &lt;li class=&quot;active&quot;&gt;&lt;a href=&quot;index.html&quot;&gt;&lt;span&gt;Home&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
24                        &lt;li&gt;&lt;a href=&quot;about.html&quot;&gt;&lt;span&gt;About&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
25                        &lt;li&gt;&lt;a href=&quot;blog.html&quot;&gt;&lt;span&gt;Blog&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
26                        &lt;li&gt;&lt;a href=&quot;contact.html&quot;&gt;&lt;span&gt;Contact&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
27                    &lt;/ul&gt;
28                    &lt;/div&gt;
29                &lt;/div&gt;
30                &lt;/div&gt;
31            &lt;/div&gt;
32        &lt;/nav&gt;
33
34        &lt;div class=&quot;header h-100&quot;&gt;
35            &lt;a href=&quot;#&quot; class=&quot;js-colorlib-nav-toggle colorlib-nav-toggle&quot;&gt;&lt;i&gt;&lt;/i&gt;&lt;/a&gt;
36            &lt;h1 id=&quot;h-100&quot; class=&quot;introduction h-100&quot;&gt;Virtual Reality&lt;/h1&gt;
37            
38        &lt;/div&gt;
39
40        &lt;div class=&quot;h-100&quot;&gt;
41            &lt;h2 class=&quot;center&quot;&gt;Was ist Virtual Reality (VR)&lt;/h2&gt;
42            &lt;p class=&quot;center&quot;&gt;Eine virtuelle Welt oder ein Computerspiel, in das der Nutzer mit Hilfe eines VR-Headsets vollständig eintauchen kann&lt;/p&gt;
43        &lt;/div&gt;
44        
45
46        &lt;div id=&quot;vr-headset-kategorien&quot; class=&quot;&quot;&gt;
47            &lt;!--Show each one as a full screen information - Picture or animation embeded at the left side - Text about it right--&gt;
48            &lt;div id=&quot;standalone&quot; class=&quot;row&quot;&gt;
49                &lt;!----&gt;
50                &lt;div class=&quot;vr-left_side container col-lg-6&quot;&gt;
51                    &lt;div class=&quot;sketchfab-embed-wrapper&quot;&gt; &lt;iframe title=&quot;Quest 2 Headset - FanArt&quot; frameborder=&quot;0&quot; allowfullscreen mozallowfullscreen=&quot;true&quot; webkitallowfullscreen=&quot;true&quot; allow=&quot;fullscreen; autoplay; vr&quot; xr-spatial-tracking execution-while-out-of-viewport execution-while-not-rendered web-share src=&quot;https://sketchfab.com/models/ee496aa030bf4f37a52b445196796af3/embed?autospin=1&amp;autostart=1&amp;ui_hint=0&quot;&gt; &lt;/iframe&gt; &lt;p style=&quot;font-size: 13px; font-weight: normal; margin: 5px; color: #4A4A4A;&quot;&gt; &lt;a href=&quot;https://sketchfab.com/3d-models/quest-2-headset-fanart-ee496aa030bf4f37a52b445196796af3?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=ee496aa030bf4f37a52b445196796af3&quot; target=&quot;_blank&quot; style=&quot;font-weight: bold; color: #1CAAD9;&quot;&gt; Quest 2 Headset - FanArt &lt;/a&gt; by &lt;a href=&quot;https://sketchfab.com/josevillotguisan?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=ee496aa030bf4f37a52b445196796af3&quot; target=&quot;_blank&quot; style=&quot;font-weight: bold; color: #1CAAD9;&quot;&gt; joseVG &lt;/a&gt; on &lt;a href=&quot;https://sketchfab.com?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=ee496aa030bf4f37a52b445196796af3&quot; target=&quot;_blank&quot; style=&quot;font-weight: bold; color: #1CAAD9;&quot;&gt;Sketchfab&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
52                &lt;/div&gt;
53                
54                &lt;div class=&quot;vr-right_side container col-lg-6&quot;&gt;
55                    &lt;h3&gt;Standalone&lt;/h3&gt;
56                
57                    &lt;p&gt;Standalone VR-Headsets ben&amp;ouml;tigen nur WLAN und Strom. In der VR-Brille ist ein eigener Prozessor eingebaut. Damit ist dieser Art super f&amp;uuml;r Anf&amp;auml;nger geeignet&lt;/p&gt;
58
59                    &lt;p&gt;
60                    Vorteile:&lt;br /&gt;
61                    Kein guter PC ben&amp;ouml;tigt&lt;br /&gt;
62                    Niedriger Einstiegspreis trotz guter Hardware&lt;br/&gt;
63                    Gut optimierbar, da es fĂźr das Heaset nur einen Prozessor gibt&lt;/p&gt;
64                    
65                    &lt;p&gt;Nachteile:&lt;br /&gt;
66                    Je nach Headset schlechte Performance bei fordernden Spielen&lt;/p&gt;
67                &lt;/div&gt;
68                
69            &lt;/div&gt;
70
71            &lt;div id=&quot;pc&quot; class=&quot;row&quot;&gt;
72                &lt;div class=&quot;vr-left_side container col-lg-6&quot;&gt;
73                    &lt;div class=&quot;sketchfab-embed-wrapper&quot;&gt; &lt;iframe title=&quot;HTC Vive&quot; frameborder=&quot;0&quot; allowfullscreen mozallowfullscreen=&quot;true&quot; webkitallowfullscreen=&quot;true&quot; allow=&quot;fullscreen; autoplay; vr&quot; xr-spatial-tracking execution-while-out-of-viewport execution-while-not-rendered web-share src=&quot;https://sketchfab.com/models/4cee0970fe60444ead77d41fbb052a33/embed?autospin=1&amp;autostart=1&amp;ui_hint=0&quot;&gt; &lt;/iframe&gt; &lt;p style=&quot;font-size: 13px; font-weight: normal; margin: 5px; color: #4A4A4A;&quot;&gt; &lt;a href=&quot;https://sketchfab.com/3d-models/htc-vive-4cee0970fe60444ead77d41fbb052a33?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=4cee0970fe60444ead77d41fbb052a33&quot; target=&quot;_blank&quot; style=&quot;font-weight: bold; color: #1CAAD9;&quot;&gt; HTC Vive &lt;/a&gt; by &lt;a href=&quot;https://sketchfab.com/EternalRealm?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=4cee0970fe60444ead77d41fbb052a33&quot; target=&quot;_blank&quot; style=&quot;font-weight: bold; color: #1CAAD9;&quot;&gt; Eternal Realm &lt;/a&gt; on &lt;a href=&quot;https://sketchfab.com?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=4cee0970fe60444ead77d41fbb052a33&quot; target=&quot;_blank&quot; style=&quot;font-weight: bold; color: #1CAAD9;&quot;&gt;Sketchfab&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
74                &lt;/div&gt;
75                
76                &lt;div class=&quot;vr-right_side container col-lg-6&quot;&gt;
77                    &lt;h3&gt;PC-VR&lt;/h3&gt;
78                    &lt;p&gt;PC-VR Headsets funktionieren nur zusammen mit einem PC. Sie werden &amp;uuml;ber ein langes Kabel verbunden. Mit einem passenden PC kann ein PC-VR Headset ein extrem sch&amp;ouml;nes Bild liefern. Der Einstiegspreis ist jedoch sehr hoch, daher sind sie vor allem f&amp;uuml;r Enthusiasten geeignet&lt;/p&gt;
79
80                    &lt;p&gt;Vorteile:&lt;br /&gt;
81                    Hohe Aufl&amp;ouml;sung&lt;br /&gt;
82                    Wenig Lags&lt;/p&gt;
83
84                    &lt;p&gt;Nachteile:&lt;br /&gt;
85                    Hoher Einstiegspreis&lt;/p&gt;
86                &lt;/div&gt;
87            &lt;/div&gt;
88
89            &lt;div id=&quot;fulldive&quot; class=&quot;row&quot;&gt;
90                &lt;div class=&quot;vr-left_side container col-lg-6&quot;&gt;
91                    &lt;div class=&quot;sketchfab-embed-wrapper&quot;&gt; &lt;iframe title=&quot;neuraLink&quot; frameborder=&quot;0&quot; allowfullscreen mozallowfullscreen=&quot;true&quot; webkitallowfullscreen=&quot;true&quot; allow=&quot;fullscreen; autoplay; vr&quot; xr-spatial-tracking execution-while-out-of-viewport execution-while-not-rendered web-share src=&quot;https://sketchfab.com/models/6a157c614d0641c2a2d2c7c7628fb01b/embed?autospin=1&amp;autostart=1&quot;&gt; &lt;/iframe&gt; &lt;p style=&quot;font-size: 13px; font-weight: normal; margin: 5px; color: #4A4A4A;&quot;&gt; &lt;a href=&quot;https://sketchfab.com/3d-models/neuralink-6a157c614d0641c2a2d2c7c7628fb01b?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=6a157c614d0641c2a2d2c7c7628fb01b&quot; target=&quot;_blank&quot; style=&quot;font-weight: bold; color: #1CAAD9;&quot;&gt; neuraLink &lt;/a&gt; by &lt;a href=&quot;https://sketchfab.com/rfarencibia?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=6a157c614d0641c2a2d2c7c7628fb01b&quot; target=&quot;_blank&quot; style=&quot;font-weight: bold; color: #1CAAD9;&quot;&gt; rfarencibia &lt;/a&gt; on &lt;a href=&quot;https://sketchfab.com?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=6a157c614d0641c2a2d2c7c7628fb01b&quot; target=&quot;_blank&quot; style=&quot;font-weight: bold; color: #1CAAD9;&quot;&gt;Sketchfab&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
92                &lt;/div&gt;
93                
94                &lt;div class=&quot;vr-right_side container col-lg-6&quot;&gt;
95                    &lt;h3&gt;Full-Dive VR&lt;/h3&gt;
96                    &lt;p&gt;Tauche komplett in die VR-Welt ein. Full-Dive VR-Headsets befinden sich bereits in Entwicklung. Bei diesem Ansatz wird keine VR-Brille verwendet, die wie ein Monitor funktioniert sondern Full-Dive VR-Headsets greifen direkt auf die Seh-, Tast-, und weitere Nerven zu. Daher ist dies auch die umstrittenste Technologie&lt;/p&gt;
97
98                    &lt;p&gt;Vorteile:&lt;br /&gt;
99                    Unvergleichliche Immersion&lt;/p&gt;
100
101                    &lt;p&gt;Nachteile:&lt;br /&gt;
102                    Sicherheit - Z.B. In der VR-Welt einsperren - Unwahrscheinlich aber m&amp;ouml;glich&lt;/p&gt;
103                &lt;/div&gt;
104            &lt;/div&gt;
105
106        &lt;/div&gt;
107
108        
109
110      
111        &lt;!-- Optional JavaScript --&gt;
112        &lt;!-- jQuery first, then Popper.js, then Bootstrap JS --&gt;
113        &lt;script src=&quot;https://code.jquery.com/jquery-3.3.1.slim.min.js&quot; integrity=&quot;sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo&quot; crossorigin=&quot;anonymous&quot;&gt;&lt;/script&gt;
114        &lt;script src=&quot;https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js&quot; integrity=&quot;sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1&quot; crossorigin=&quot;anonymous&quot;&gt;&lt;/script&gt;
115        &lt;script src=&quot;https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js&quot; integrity=&quot;sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM&quot; crossorigin=&quot;anonymous&quot;&gt;&lt;/script&gt;
116        &lt;script&gt;
117            (function($) {
118
119            &quot;use strict&quot;;
120
121            var fullHeight = function() {
122
123                $('.js-fullheight').css('height', $(window).height());
124                $(window).resize(function(){
125                    $('.js-fullheight').css('height', $(window).height());
126                });
127
128            };
129            fullHeight();
130
131            var burgerMenu = function() {
132
133                $('.js-colorlib-nav-toggle').on('click', function(event) {
134                    event.preventDefault();
135                    var $this = $(this);
136                    if( $('body').hasClass('menu-show') ) {
137                        $('body').removeClass('menu-show');
138                        $('#colorlib-main-nav &gt; .js-colorlib-nav-toggle').removeClass('show');
139                    } else {
140                        $('body').addClass('menu-show');
141                        setTimeout(function(){
142                            $('#colorlib-main-nav &gt; .js-colorlib-nav-toggle').addClass('show');
143                        }, 900);
144                    }
145                })
146            };
147            burgerMenu();
148
149
150            })(jQuery);
151        &lt;/script&gt;
152    &lt;/body&gt;
153&lt;/html&gt;
154html, body {
155    background-color: black;
156
157    color: white;
158    height: 100%;
159    min-height: 100%;
160
161}
162
163#h-100{
164    /*height: 100%;
165    min-height: 100%;*/
166
167    /*padding-top: 30%;
168    padding-bottom: 30%;*/
169
170    text-align: center;
171}
172
173.introduction {
174    background-image: url(&quot;beat-saber-intro.jpg&quot;);
175    background-repeat: no-repeat;
176    background-attachment: fixed;
177    background-position: center;
178    background-size: cover;
179}
180
181.row{
182    padding-bottom: 10%;
183}
184
185.sketchfab-embed-wrapper{
186    height: 100%;
187    margin-bottom: 200px;
188}
189
190iframe{
191    height: 100%;
192    width: 100%;
193}
194
195header {
196    height: 100%;
197    min-height: 100%;
198}
199
200.center{
201    text-align: center;
202}
203
204/* Menu*/
205.img {
206    background-size: cover;
207    background-repeat: no-repeat;
208    background-position: center center; }
209  
210  #colorlib-main-nav {
211    position: absolute;
212    top: 0;
213    bottom: 0;
214    right: 0;
215    padding: 0;
216    width: 100%;
217    height: 100%;
218    background: rgba(0, 0, 0, 0.99);
219    z-index: 1002;
220    text-align: center;
221    visibility: hidden;
222    opacity: 0;
223    -webkit-transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
224    -moz-transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
225    -ms-transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
226    -o-transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
227    transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
228    -webkit-transform: scale(0.1);
229    -moz-transform: scale(0);
230    -ms-transform: scale(0);
231    -o-transform: scale(0);
232    transform: scale(0);
233    overflow-y: scroll; }
234    #colorlib-main-nav .colorlib-table {
235      display: table;
236      width: 100%;
237      height: 100%; }
238      #colorlib-main-nav .colorlib-table .img {
239        position: absolute;
240        top: 0;
241        left: 0;
242        bottom: 0;
243        height: 100%;
244        width: 100%;
245        opacity: 1; }
246        #colorlib-main-nav .colorlib-table .img:after {
247          position: absolute;
248          top: 0;
249          left: 0;
250          bottom: 0;
251          right: 0;
252          content: '';
253          background: rgba(0, 0, 0, 0.3); }
254      #colorlib-main-nav .colorlib-table .colorlib-table-cell {
255        display: table-cell;
256        vertical-align: middle; }
257    #colorlib-main-nav .colorlib-nav-toggle {
258      position: absolute;
259      top: 40px;
260      right: 40px;
261      padding: 20px;
262      height: 44px;
263      width: 44px;
264      line-height: 0;
265      padding: 0 !important;
266      visibility: hidden;
267      opacity: 0;
268      -webkit-transition: 0.3s;
269      -o-transition: 0.3s;
270      transition: 0.3s; }
271      @media (prefers-reduced-motion: reduce) {
272        #colorlib-main-nav .colorlib-nav-toggle {
273          -webkit-transition: none;
274          -o-transition: none;
275          transition: none; } }
276      #colorlib-main-nav .colorlib-nav-toggle i {
277        top: 18px !important;
278        left: 0 !important;
279        margin: 0 !important;
280        padding: 0 !important;
281        line-height: 0;
282        text-indent: 0; }
283      #colorlib-main-nav .colorlib-nav-toggle.show {
284        visibility: visible;
285        opacity: 1; }
286      #colorlib-main-nav .colorlib-nav-toggle:hover i::before, #colorlib-main-nav .colorlib-nav-toggle:hover i::after {
287        content: '';
288        width: 40px;
289        height: 2px;
290        background: #fff;
291        position: absolute;
292        left: 0; }
293    .menu-show #colorlib-main-nav {
294      visibility: visible;
295      opacity: 1;
296      -webkit-transform: scale(1);
297      -moz-transform: scale(1);
298      -ms-transform: scale(1);
299      -o-transform: scale(1);
300      transform: scale(1); }
301    #colorlib-main-nav .logo {
302      font-size: 40px;
303      color: #fff;
304      text-transform: uppercase;
305      letter-spacing: 2px;
306      font-weight: 700;
307      position: relative;
308      display: inline-block;
309      margin-bottom: 0;
310      line-height: 1.5;
311      font-family: &quot;Poppins&quot;, Arial, sans-serif; }
312      #colorlib-main-nav .logo span {
313        font-size: 14px;
314        display: block;
315        font-weight: 300;
316        color: rgba(255, 255, 255, 0.8);
317        letter-spacing: 8px; }
318    #colorlib-main-nav ul {
319      padding: 0;
320      margin: 0;
321      display: block; }
322      @media (max-width: 767.98px) {
323        #colorlib-main-nav ul {
324          padding: 20px 0 0 0; } }
325      #colorlib-main-nav ul li {
326        padding: 0;
327        margin: 0;
328        list-style: none;
329        font-weight: 600;
330        font-size: 14px;
331        letter-spacing: 5px;
332        text-transform: uppercase; }
333        #colorlib-main-nav ul li a {
334          display: block;
335          color: white;
336          padding: 5px 0; }
337          #colorlib-main-nav ul li a span {
338            color: white;
339            position: relative;
340            padding: 0 10px; }
341            #colorlib-main-nav ul li a span small {
342              position: absolute;
343              bottom: 7px;
344              left: -30px;
345              font-size: 16px;
346              color: rgba(255, 255, 255, 0.3);
347              border-bottom: 1px solid rgba(255, 255, 255, 0.3); }
348          #colorlib-main-nav ul li a:hover, #colorlib-main-nav ul li a:active, #colorlib-main-nav ul li a:focus {
349            outline: none;
350            text-decoration: none; }
351            #colorlib-main-nav ul li a:hover span:before, #colorlib-main-nav ul li a:active span:before, #colorlib-main-nav ul li a:focus span:before {
352              visibility: visible;
353              -webkit-transform: scaleX(1);
354              -moz-transform: scaleX(1);
355              -ms-transform: scaleX(1);
356              -o-transform: scaleX(1);
357              transform: scaleX(1); }
358        #colorlib-main-nav ul li.active a span {
359          color: #f8b500; }
360          #colorlib-main-nav ul li.active a span:before {
361            background: #fec771;
362            visibility: visible;
363            -webkit-transform: scaleX(1);
364            -moz-transform: scaleX(1);
365            -ms-transform: scaleX(1);
366            -o-transform: scaleX(1);
367            transform: scaleX(1); }
368  
369  header {
370    padding: 2em 0;
371    position: absolute;
372    top: 0;
373    left: 0;
374    right: 0;
375    z-index: 9;
376    margin: 0 auto; }
377    @media (max-width: 767.98px) {
378      header {
379        padding: 1em 0;
380        position: absolute; } }
381    header .colorlib-navbar-brand {
382      float: left; }
383      header .colorlib-navbar-brand .colorlib-logo {
384        font-size: 12px;
385        color: #fff;
386        letter-spacing: 5px;
387        font-weight: 600;
388        position: relative;
389        display: inline-block;
390        margin-bottom: 0;
391        line-height: 1.5;
392        font-family: &quot;Poppins&quot;, Arial, sans-serif;
393        text-transform: uppercase; }
394        header .colorlib-navbar-brand .colorlib-logo span {
395          font-size: 11px;
396          display: block;
397          font-weight: 300;
398          color: rgba(255, 255, 255, 0.8);
399          letter-spacing: 7px; }
400        header .colorlib-navbar-brand .colorlib-logo i {
401          color: #fec771;
402          position: absolute;
403          top: -18px;
404          bottom: 0;
405          left: 7px;
406          font-size: 48px; }
407        header .colorlib-navbar-brand .colorlib-logo:hover {
408          text-decoration: none !important; }
409        header .colorlib-navbar-brand .colorlib-logo:active, header .colorlib-navbar-brand .colorlib-logo:focus {
410          outline: none;
411          text-decoration: none; }
412  
413  .colorlib-nav-toggle {
414    cursor: pointer;
415    text-decoration: none; }
416    .colorlib-nav-toggle.active i::before, .colorlib-nav-toggle.active i::after {
417      background: #000; }
418    .colorlib-nav-toggle.dark.active i::before, .colorlib-nav-toggle.dark.active i::after {
419      background: #000; }
420    .colorlib-nav-toggle:hover, .colorlib-nav-toggle:focus, .colorlib-nav-toggle:active {
421      outline: none;
422      border-bottom: none !important; }
423    .colorlib-nav-toggle i {
424      position: relative;
425      display: inline-block;
426      width: 20px;
427      height: 2px;
428      color: #000;
429      font: bold 14px/.4 Helvetica;
430      text-transform: uppercase;
431      text-indent: -55px;
432      background: #fff;
433      -webkit-transition: all .2s ease-out;
434      -o-transition: all .2s ease-out;
435      transition: all .2s ease-out; }
436      .menu-show .colorlib-nav-toggle i {
437        background: #fff;
438        color: #fff; }
439      .colorlib-nav-toggle i::before, .colorlib-nav-toggle i::after {
440        content: '';
441        width: 30px;
442        height: 2px;
443        background: #fff;
444        position: absolute;
445        left: 0;
446        -webkit-transition: 0.2s;
447        -o-transition: 0.2s;
448        transition: 0.2s; }
449        .menu-show .colorlib-nav-toggle i::before, .menu-show .colorlib-nav-toggle i::after {
450          background: #fff; }
451        @media (prefers-reduced-motion: reduce) {
452          .colorlib-nav-toggle i::before, .colorlib-nav-toggle i::after {
453            -webkit-transition: none;
454            -o-transition: none;
455            transition: none; } }
456    .colorlib-nav-toggle.dark i {
457      position: relative;
458      color: #fff;
459      background: #fff;
460      -webkit-transition: all .2s ease-out;
461      -o-transition: all .2s ease-out;
462      transition: all .2s ease-out; }
463      .colorlib-nav-toggle.dark i::before, .colorlib-nav-toggle.dark i::after {
464        background: #fff;
465        -webkit-transition: 0.2s;
466        -o-transition: 0.2s;
467        transition: 0.2s; }
468        @media (prefers-reduced-motion: reduce) {
469          .colorlib-nav-toggle.dark i::before, .colorlib-nav-toggle.dark i::after {
470            -webkit-transition: none;
471            -o-transition: none;
472            transition: none; } }
473  
474  .colorlib-nav-toggle i::before {
475    top: -7px; }
476  
477  .colorlib-nav-toggle i::after {
478    bottom: -7px; }
479  
480  .colorlib-nav-toggle:hover i::before {
481    top: -10px; }
482  
483  .colorlib-nav-toggle:hover i::after {
484    bottom: -10px; }
485  
486  .colorlib-nav-toggle.active i {
487    background: transparent; }
488  
489  .colorlib-nav-toggle.active i::before {
490    top: 0;
491    -webkit-transform: rotateZ(45deg);
492    -moz-transform: rotateZ(45deg);
493    -ms-transform: rotateZ(45deg);
494    -o-transform: rotateZ(45deg);
495    transform: rotateZ(45deg); }
496  
497  .colorlib-nav-toggle.active i::after {
498    bottom: 0;
499    -webkit-transform: rotateZ(-45deg);
500    -moz-transform: rotateZ(-45deg);
501    -ms-transform: rotateZ(-45deg);
502    -o-transform: rotateZ(-45deg);
503    transform: rotateZ(-45deg); }
504  
505  .colorlib-nav-toggle {
506    float: right;
507    z-index: 1003;
508    position: relative;
509    top: 0;
510    right: 0;
511    display: block;
512    margin: 0 auto;
513    cursor: pointer;
514    margin-top: 0; }
515    @media (max-width: 767.98px) {
516      .colorlib-nav-toggle {
517        right: 10px; } }
518  
519  .hero-wrap {
520    background: #202020; }
521    .hero-wrap .slider-text .desc h1 {
522      font-size: 6vw;
523      font-weight: 700;
524      color: #fff;
525      text-transform: uppercase; }
526    .hero-wrap .slider-text .desc h3 {
527      color: rgba(255, 255, 255, 0.8);
528      font-size: 18px; }
529

ANSWER

Answered 2021-May-04 at 13:34

The margins in your .row class is causing the issue:

1&lt;!doctype html&gt;
2&lt;html lang=&quot;de&quot;&gt;
3    &lt;head&gt;
4        &lt;title&gt;VR&lt;/title&gt;
5        &lt;!-- Required meta tags --&gt;
6        &lt;meta charset=&quot;utf-8&quot;&gt;
7        &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1, shrink-to-fit=no&quot;&gt;
8
9        &lt;!-- Bootstrap CSS --&gt;
10        &lt;link rel=&quot;stylesheet&quot; href=&quot;https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css&quot; integrity=&quot;sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T&quot; crossorigin=&quot;anonymous&quot;&gt;
11        &lt;link rel=&quot;stylesheet&quot; href=&quot;style.css&quot;&gt;
12    &lt;/head&gt;
13    &lt;body&gt;
14        &lt;nav id=&quot;colorlib-main-nav&quot; role=&quot;navigation&quot;&gt;
15            &lt;a href=&quot;#&quot; class=&quot;js-colorlib-nav-toggle colorlib-nav-toggle active&quot;&gt;&lt;i&gt;&lt;/i&gt;&lt;/a&gt;
16            &lt;div class=&quot;js-fullheight colorlib-table&quot;&gt;
17                &lt;div class=&quot;img&quot; style=&quot;background-image: url(images/bg_3.jpg);&quot;&gt;&lt;/div&gt;
18                &lt;div class=&quot;colorlib-table-cell js-fullheight&quot;&gt;
19                &lt;div class=&quot;row no-gutters&quot;&gt;
20                    &lt;div class=&quot;col-md-12 text-center&quot;&gt;
21                    &lt;h1 class=&quot;mb-4&quot;&gt;&lt;a href=&quot;index.html&quot; class=&quot;logo&quot;&gt;Company Logo&lt;/a&gt;&lt;/h1&gt;
22                    &lt;ul&gt;
23                        &lt;li class=&quot;active&quot;&gt;&lt;a href=&quot;index.html&quot;&gt;&lt;span&gt;Home&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
24                        &lt;li&gt;&lt;a href=&quot;about.html&quot;&gt;&lt;span&gt;About&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
25                        &lt;li&gt;&lt;a href=&quot;blog.html&quot;&gt;&lt;span&gt;Blog&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
26                        &lt;li&gt;&lt;a href=&quot;contact.html&quot;&gt;&lt;span&gt;Contact&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
27                    &lt;/ul&gt;
28                    &lt;/div&gt;
29                &lt;/div&gt;
30                &lt;/div&gt;
31            &lt;/div&gt;
32        &lt;/nav&gt;
33
34        &lt;div class=&quot;header h-100&quot;&gt;
35            &lt;a href=&quot;#&quot; class=&quot;js-colorlib-nav-toggle colorlib-nav-toggle&quot;&gt;&lt;i&gt;&lt;/i&gt;&lt;/a&gt;
36            &lt;h1 id=&quot;h-100&quot; class=&quot;introduction h-100&quot;&gt;Virtual Reality&lt;/h1&gt;
37            
38        &lt;/div&gt;
39
40        &lt;div class=&quot;h-100&quot;&gt;
41            &lt;h2 class=&quot;center&quot;&gt;Was ist Virtual Reality (VR)&lt;/h2&gt;
42            &lt;p class=&quot;center&quot;&gt;Eine virtuelle Welt oder ein Computerspiel, in das der Nutzer mit Hilfe eines VR-Headsets vollständig eintauchen kann&lt;/p&gt;
43        &lt;/div&gt;
44        
45
46        &lt;div id=&quot;vr-headset-kategorien&quot; class=&quot;&quot;&gt;
47            &lt;!--Show each one as a full screen information - Picture or animation embeded at the left side - Text about it right--&gt;
48            &lt;div id=&quot;standalone&quot; class=&quot;row&quot;&gt;
49                &lt;!----&gt;
50                &lt;div class=&quot;vr-left_side container col-lg-6&quot;&gt;
51                    &lt;div class=&quot;sketchfab-embed-wrapper&quot;&gt; &lt;iframe title=&quot;Quest 2 Headset - FanArt&quot; frameborder=&quot;0&quot; allowfullscreen mozallowfullscreen=&quot;true&quot; webkitallowfullscreen=&quot;true&quot; allow=&quot;fullscreen; autoplay; vr&quot; xr-spatial-tracking execution-while-out-of-viewport execution-while-not-rendered web-share src=&quot;https://sketchfab.com/models/ee496aa030bf4f37a52b445196796af3/embed?autospin=1&amp;autostart=1&amp;ui_hint=0&quot;&gt; &lt;/iframe&gt; &lt;p style=&quot;font-size: 13px; font-weight: normal; margin: 5px; color: #4A4A4A;&quot;&gt; &lt;a href=&quot;https://sketchfab.com/3d-models/quest-2-headset-fanart-ee496aa030bf4f37a52b445196796af3?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=ee496aa030bf4f37a52b445196796af3&quot; target=&quot;_blank&quot; style=&quot;font-weight: bold; color: #1CAAD9;&quot;&gt; Quest 2 Headset - FanArt &lt;/a&gt; by &lt;a href=&quot;https://sketchfab.com/josevillotguisan?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=ee496aa030bf4f37a52b445196796af3&quot; target=&quot;_blank&quot; style=&quot;font-weight: bold; color: #1CAAD9;&quot;&gt; joseVG &lt;/a&gt; on &lt;a href=&quot;https://sketchfab.com?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=ee496aa030bf4f37a52b445196796af3&quot; target=&quot;_blank&quot; style=&quot;font-weight: bold; color: #1CAAD9;&quot;&gt;Sketchfab&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
52                &lt;/div&gt;
53                
54                &lt;div class=&quot;vr-right_side container col-lg-6&quot;&gt;
55                    &lt;h3&gt;Standalone&lt;/h3&gt;
56                
57                    &lt;p&gt;Standalone VR-Headsets ben&amp;ouml;tigen nur WLAN und Strom. In der VR-Brille ist ein eigener Prozessor eingebaut. Damit ist dieser Art super f&amp;uuml;r Anf&amp;auml;nger geeignet&lt;/p&gt;
58
59                    &lt;p&gt;
60                    Vorteile:&lt;br /&gt;
61                    Kein guter PC ben&amp;ouml;tigt&lt;br /&gt;
62                    Niedriger Einstiegspreis trotz guter Hardware&lt;br/&gt;
63                    Gut optimierbar, da es fĂźr das Heaset nur einen Prozessor gibt&lt;/p&gt;
64                    
65                    &lt;p&gt;Nachteile:&lt;br /&gt;
66                    Je nach Headset schlechte Performance bei fordernden Spielen&lt;/p&gt;
67                &lt;/div&gt;
68                
69            &lt;/div&gt;
70
71            &lt;div id=&quot;pc&quot; class=&quot;row&quot;&gt;
72                &lt;div class=&quot;vr-left_side container col-lg-6&quot;&gt;
73                    &lt;div class=&quot;sketchfab-embed-wrapper&quot;&gt; &lt;iframe title=&quot;HTC Vive&quot; frameborder=&quot;0&quot; allowfullscreen mozallowfullscreen=&quot;true&quot; webkitallowfullscreen=&quot;true&quot; allow=&quot;fullscreen; autoplay; vr&quot; xr-spatial-tracking execution-while-out-of-viewport execution-while-not-rendered web-share src=&quot;https://sketchfab.com/models/4cee0970fe60444ead77d41fbb052a33/embed?autospin=1&amp;autostart=1&amp;ui_hint=0&quot;&gt; &lt;/iframe&gt; &lt;p style=&quot;font-size: 13px; font-weight: normal; margin: 5px; color: #4A4A4A;&quot;&gt; &lt;a href=&quot;https://sketchfab.com/3d-models/htc-vive-4cee0970fe60444ead77d41fbb052a33?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=4cee0970fe60444ead77d41fbb052a33&quot; target=&quot;_blank&quot; style=&quot;font-weight: bold; color: #1CAAD9;&quot;&gt; HTC Vive &lt;/a&gt; by &lt;a href=&quot;https://sketchfab.com/EternalRealm?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=4cee0970fe60444ead77d41fbb052a33&quot; target=&quot;_blank&quot; style=&quot;font-weight: bold; color: #1CAAD9;&quot;&gt; Eternal Realm &lt;/a&gt; on &lt;a href=&quot;https://sketchfab.com?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=4cee0970fe60444ead77d41fbb052a33&quot; target=&quot;_blank&quot; style=&quot;font-weight: bold; color: #1CAAD9;&quot;&gt;Sketchfab&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
74                &lt;/div&gt;
75                
76                &lt;div class=&quot;vr-right_side container col-lg-6&quot;&gt;
77                    &lt;h3&gt;PC-VR&lt;/h3&gt;
78                    &lt;p&gt;PC-VR Headsets funktionieren nur zusammen mit einem PC. Sie werden &amp;uuml;ber ein langes Kabel verbunden. Mit einem passenden PC kann ein PC-VR Headset ein extrem sch&amp;ouml;nes Bild liefern. Der Einstiegspreis ist jedoch sehr hoch, daher sind sie vor allem f&amp;uuml;r Enthusiasten geeignet&lt;/p&gt;
79
80                    &lt;p&gt;Vorteile:&lt;br /&gt;
81                    Hohe Aufl&amp;ouml;sung&lt;br /&gt;
82                    Wenig Lags&lt;/p&gt;
83
84                    &lt;p&gt;Nachteile:&lt;br /&gt;
85                    Hoher Einstiegspreis&lt;/p&gt;
86                &lt;/div&gt;
87            &lt;/div&gt;
88
89            &lt;div id=&quot;fulldive&quot; class=&quot;row&quot;&gt;
90                &lt;div class=&quot;vr-left_side container col-lg-6&quot;&gt;
91                    &lt;div class=&quot;sketchfab-embed-wrapper&quot;&gt; &lt;iframe title=&quot;neuraLink&quot; frameborder=&quot;0&quot; allowfullscreen mozallowfullscreen=&quot;true&quot; webkitallowfullscreen=&quot;true&quot; allow=&quot;fullscreen; autoplay; vr&quot; xr-spatial-tracking execution-while-out-of-viewport execution-while-not-rendered web-share src=&quot;https://sketchfab.com/models/6a157c614d0641c2a2d2c7c7628fb01b/embed?autospin=1&amp;autostart=1&quot;&gt; &lt;/iframe&gt; &lt;p style=&quot;font-size: 13px; font-weight: normal; margin: 5px; color: #4A4A4A;&quot;&gt; &lt;a href=&quot;https://sketchfab.com/3d-models/neuralink-6a157c614d0641c2a2d2c7c7628fb01b?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=6a157c614d0641c2a2d2c7c7628fb01b&quot; target=&quot;_blank&quot; style=&quot;font-weight: bold; color: #1CAAD9;&quot;&gt; neuraLink &lt;/a&gt; by &lt;a href=&quot;https://sketchfab.com/rfarencibia?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=6a157c614d0641c2a2d2c7c7628fb01b&quot; target=&quot;_blank&quot; style=&quot;font-weight: bold; color: #1CAAD9;&quot;&gt; rfarencibia &lt;/a&gt; on &lt;a href=&quot;https://sketchfab.com?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=6a157c614d0641c2a2d2c7c7628fb01b&quot; target=&quot;_blank&quot; style=&quot;font-weight: bold; color: #1CAAD9;&quot;&gt;Sketchfab&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
92                &lt;/div&gt;
93                
94                &lt;div class=&quot;vr-right_side container col-lg-6&quot;&gt;
95                    &lt;h3&gt;Full-Dive VR&lt;/h3&gt;
96                    &lt;p&gt;Tauche komplett in die VR-Welt ein. Full-Dive VR-Headsets befinden sich bereits in Entwicklung. Bei diesem Ansatz wird keine VR-Brille verwendet, die wie ein Monitor funktioniert sondern Full-Dive VR-Headsets greifen direkt auf die Seh-, Tast-, und weitere Nerven zu. Daher ist dies auch die umstrittenste Technologie&lt;/p&gt;
97
98                    &lt;p&gt;Vorteile:&lt;br /&gt;
99                    Unvergleichliche Immersion&lt;/p&gt;
100
101                    &lt;p&gt;Nachteile:&lt;br /&gt;
102                    Sicherheit - Z.B. In der VR-Welt einsperren - Unwahrscheinlich aber m&amp;ouml;glich&lt;/p&gt;
103                &lt;/div&gt;
104            &lt;/div&gt;
105
106        &lt;/div&gt;
107
108        
109
110      
111        &lt;!-- Optional JavaScript --&gt;
112        &lt;!-- jQuery first, then Popper.js, then Bootstrap JS --&gt;
113        &lt;script src=&quot;https://code.jquery.com/jquery-3.3.1.slim.min.js&quot; integrity=&quot;sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo&quot; crossorigin=&quot;anonymous&quot;&gt;&lt;/script&gt;
114        &lt;script src=&quot;https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js&quot; integrity=&quot;sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1&quot; crossorigin=&quot;anonymous&quot;&gt;&lt;/script&gt;
115        &lt;script src=&quot;https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js&quot; integrity=&quot;sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM&quot; crossorigin=&quot;anonymous&quot;&gt;&lt;/script&gt;
116        &lt;script&gt;
117            (function($) {
118
119            &quot;use strict&quot;;
120
121            var fullHeight = function() {
122
123                $('.js-fullheight').css('height', $(window).height());
124                $(window).resize(function(){
125                    $('.js-fullheight').css('height', $(window).height());
126                });
127
128            };
129            fullHeight();
130
131            var burgerMenu = function() {
132
133                $('.js-colorlib-nav-toggle').on('click', function(event) {
134                    event.preventDefault();
135                    var $this = $(this);
136                    if( $('body').hasClass('menu-show') ) {
137                        $('body').removeClass('menu-show');
138                        $('#colorlib-main-nav &gt; .js-colorlib-nav-toggle').removeClass('show');
139                    } else {
140                        $('body').addClass('menu-show');
141                        setTimeout(function(){
142                            $('#colorlib-main-nav &gt; .js-colorlib-nav-toggle').addClass('show');
143                        }, 900);
144                    }
145                })
146            };
147            burgerMenu();
148
149
150            })(jQuery);
151        &lt;/script&gt;
152    &lt;/body&gt;
153&lt;/html&gt;
154html, body {
155    background-color: black;
156
157    color: white;
158    height: 100%;
159    min-height: 100%;
160
161}
162
163#h-100{
164    /*height: 100%;
165    min-height: 100%;*/
166
167    /*padding-top: 30%;
168    padding-bottom: 30%;*/
169
170    text-align: center;
171}
172
173.introduction {
174    background-image: url(&quot;beat-saber-intro.jpg&quot;);
175    background-repeat: no-repeat;
176    background-attachment: fixed;
177    background-position: center;
178    background-size: cover;
179}
180
181.row{
182    padding-bottom: 10%;
183}
184
185.sketchfab-embed-wrapper{
186    height: 100%;
187    margin-bottom: 200px;
188}
189
190iframe{
191    height: 100%;
192    width: 100%;
193}
194
195header {
196    height: 100%;
197    min-height: 100%;
198}
199
200.center{
201    text-align: center;
202}
203
204/* Menu*/
205.img {
206    background-size: cover;
207    background-repeat: no-repeat;
208    background-position: center center; }
209  
210  #colorlib-main-nav {
211    position: absolute;
212    top: 0;
213    bottom: 0;
214    right: 0;
215    padding: 0;
216    width: 100%;
217    height: 100%;
218    background: rgba(0, 0, 0, 0.99);
219    z-index: 1002;
220    text-align: center;
221    visibility: hidden;
222    opacity: 0;
223    -webkit-transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
224    -moz-transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
225    -ms-transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
226    -o-transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
227    transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
228    -webkit-transform: scale(0.1);
229    -moz-transform: scale(0);
230    -ms-transform: scale(0);
231    -o-transform: scale(0);
232    transform: scale(0);
233    overflow-y: scroll; }
234    #colorlib-main-nav .colorlib-table {
235      display: table;
236      width: 100%;
237      height: 100%; }
238      #colorlib-main-nav .colorlib-table .img {
239        position: absolute;
240        top: 0;
241        left: 0;
242        bottom: 0;
243        height: 100%;
244        width: 100%;
245        opacity: 1; }
246        #colorlib-main-nav .colorlib-table .img:after {
247          position: absolute;
248          top: 0;
249          left: 0;
250          bottom: 0;
251          right: 0;
252          content: '';
253          background: rgba(0, 0, 0, 0.3); }
254      #colorlib-main-nav .colorlib-table .colorlib-table-cell {
255        display: table-cell;
256        vertical-align: middle; }
257    #colorlib-main-nav .colorlib-nav-toggle {
258      position: absolute;
259      top: 40px;
260      right: 40px;
261      padding: 20px;
262      height: 44px;
263      width: 44px;
264      line-height: 0;
265      padding: 0 !important;
266      visibility: hidden;
267      opacity: 0;
268      -webkit-transition: 0.3s;
269      -o-transition: 0.3s;
270      transition: 0.3s; }
271      @media (prefers-reduced-motion: reduce) {
272        #colorlib-main-nav .colorlib-nav-toggle {
273          -webkit-transition: none;
274          -o-transition: none;
275          transition: none; } }
276      #colorlib-main-nav .colorlib-nav-toggle i {
277        top: 18px !important;
278        left: 0 !important;
279        margin: 0 !important;
280        padding: 0 !important;
281        line-height: 0;
282        text-indent: 0; }
283      #colorlib-main-nav .colorlib-nav-toggle.show {
284        visibility: visible;
285        opacity: 1; }
286      #colorlib-main-nav .colorlib-nav-toggle:hover i::before, #colorlib-main-nav .colorlib-nav-toggle:hover i::after {
287        content: '';
288        width: 40px;
289        height: 2px;
290        background: #fff;
291        position: absolute;
292        left: 0; }
293    .menu-show #colorlib-main-nav {
294      visibility: visible;
295      opacity: 1;
296      -webkit-transform: scale(1);
297      -moz-transform: scale(1);
298      -ms-transform: scale(1);
299      -o-transform: scale(1);
300      transform: scale(1); }
301    #colorlib-main-nav .logo {
302      font-size: 40px;
303      color: #fff;
304      text-transform: uppercase;
305      letter-spacing: 2px;
306      font-weight: 700;
307      position: relative;
308      display: inline-block;
309      margin-bottom: 0;
310      line-height: 1.5;
311      font-family: &quot;Poppins&quot;, Arial, sans-serif; }
312      #colorlib-main-nav .logo span {
313        font-size: 14px;
314        display: block;
315        font-weight: 300;
316        color: rgba(255, 255, 255, 0.8);
317        letter-spacing: 8px; }
318    #colorlib-main-nav ul {
319      padding: 0;
320      margin: 0;
321      display: block; }
322      @media (max-width: 767.98px) {
323        #colorlib-main-nav ul {
324          padding: 20px 0 0 0; } }
325      #colorlib-main-nav ul li {
326        padding: 0;
327        margin: 0;
328        list-style: none;
329        font-weight: 600;
330        font-size: 14px;
331        letter-spacing: 5px;
332        text-transform: uppercase; }
333        #colorlib-main-nav ul li a {
334          display: block;
335          color: white;
336          padding: 5px 0; }
337          #colorlib-main-nav ul li a span {
338            color: white;
339            position: relative;
340            padding: 0 10px; }
341            #colorlib-main-nav ul li a span small {
342              position: absolute;
343              bottom: 7px;
344              left: -30px;
345              font-size: 16px;
346              color: rgba(255, 255, 255, 0.3);
347              border-bottom: 1px solid rgba(255, 255, 255, 0.3); }
348          #colorlib-main-nav ul li a:hover, #colorlib-main-nav ul li a:active, #colorlib-main-nav ul li a:focus {
349            outline: none;
350            text-decoration: none; }
351            #colorlib-main-nav ul li a:hover span:before, #colorlib-main-nav ul li a:active span:before, #colorlib-main-nav ul li a:focus span:before {
352              visibility: visible;
353              -webkit-transform: scaleX(1);
354              -moz-transform: scaleX(1);
355              -ms-transform: scaleX(1);
356              -o-transform: scaleX(1);
357              transform: scaleX(1); }
358        #colorlib-main-nav ul li.active a span {
359          color: #f8b500; }
360          #colorlib-main-nav ul li.active a span:before {
361            background: #fec771;
362            visibility: visible;
363            -webkit-transform: scaleX(1);
364            -moz-transform: scaleX(1);
365            -ms-transform: scaleX(1);
366            -o-transform: scaleX(1);
367            transform: scaleX(1); }
368  
369  header {
370    padding: 2em 0;
371    position: absolute;
372    top: 0;
373    left: 0;
374    right: 0;
375    z-index: 9;
376    margin: 0 auto; }
377    @media (max-width: 767.98px) {
378      header {
379        padding: 1em 0;
380        position: absolute; } }
381    header .colorlib-navbar-brand {
382      float: left; }
383      header .colorlib-navbar-brand .colorlib-logo {
384        font-size: 12px;
385        color: #fff;
386        letter-spacing: 5px;
387        font-weight: 600;
388        position: relative;
389        display: inline-block;
390        margin-bottom: 0;
391        line-height: 1.5;
392        font-family: &quot;Poppins&quot;, Arial, sans-serif;
393        text-transform: uppercase; }
394        header .colorlib-navbar-brand .colorlib-logo span {
395          font-size: 11px;
396          display: block;
397          font-weight: 300;
398          color: rgba(255, 255, 255, 0.8);
399          letter-spacing: 7px; }
400        header .colorlib-navbar-brand .colorlib-logo i {
401          color: #fec771;
402          position: absolute;
403          top: -18px;
404          bottom: 0;
405          left: 7px;
406          font-size: 48px; }
407        header .colorlib-navbar-brand .colorlib-logo:hover {
408          text-decoration: none !important; }
409        header .colorlib-navbar-brand .colorlib-logo:active, header .colorlib-navbar-brand .colorlib-logo:focus {
410          outline: none;
411          text-decoration: none; }
412  
413  .colorlib-nav-toggle {
414    cursor: pointer;
415    text-decoration: none; }
416    .colorlib-nav-toggle.active i::before, .colorlib-nav-toggle.active i::after {
417      background: #000; }
418    .colorlib-nav-toggle.dark.active i::before, .colorlib-nav-toggle.dark.active i::after {
419      background: #000; }
420    .colorlib-nav-toggle:hover, .colorlib-nav-toggle:focus, .colorlib-nav-toggle:active {
421      outline: none;
422      border-bottom: none !important; }
423    .colorlib-nav-toggle i {
424      position: relative;
425      display: inline-block;
426      width: 20px;
427      height: 2px;
428      color: #000;
429      font: bold 14px/.4 Helvetica;
430      text-transform: uppercase;
431      text-indent: -55px;
432      background: #fff;
433      -webkit-transition: all .2s ease-out;
434      -o-transition: all .2s ease-out;
435      transition: all .2s ease-out; }
436      .menu-show .colorlib-nav-toggle i {
437        background: #fff;
438        color: #fff; }
439      .colorlib-nav-toggle i::before, .colorlib-nav-toggle i::after {
440        content: '';
441        width: 30px;
442        height: 2px;
443        background: #fff;
444        position: absolute;
445        left: 0;
446        -webkit-transition: 0.2s;
447        -o-transition: 0.2s;
448        transition: 0.2s; }
449        .menu-show .colorlib-nav-toggle i::before, .menu-show .colorlib-nav-toggle i::after {
450          background: #fff; }
451        @media (prefers-reduced-motion: reduce) {
452          .colorlib-nav-toggle i::before, .colorlib-nav-toggle i::after {
453            -webkit-transition: none;
454            -o-transition: none;
455            transition: none; } }
456    .colorlib-nav-toggle.dark i {
457      position: relative;
458      color: #fff;
459      background: #fff;
460      -webkit-transition: all .2s ease-out;
461      -o-transition: all .2s ease-out;
462      transition: all .2s ease-out; }
463      .colorlib-nav-toggle.dark i::before, .colorlib-nav-toggle.dark i::after {
464        background: #fff;
465        -webkit-transition: 0.2s;
466        -o-transition: 0.2s;
467        transition: 0.2s; }
468        @media (prefers-reduced-motion: reduce) {
469          .colorlib-nav-toggle.dark i::before, .colorlib-nav-toggle.dark i::after {
470            -webkit-transition: none;
471            -o-transition: none;
472            transition: none; } }
473  
474  .colorlib-nav-toggle i::before {
475    top: -7px; }
476  
477  .colorlib-nav-toggle i::after {
478    bottom: -7px; }
479  
480  .colorlib-nav-toggle:hover i::before {
481    top: -10px; }
482  
483  .colorlib-nav-toggle:hover i::after {
484    bottom: -10px; }
485  
486  .colorlib-nav-toggle.active i {
487    background: transparent; }
488  
489  .colorlib-nav-toggle.active i::before {
490    top: 0;
491    -webkit-transform: rotateZ(45deg);
492    -moz-transform: rotateZ(45deg);
493    -ms-transform: rotateZ(45deg);
494    -o-transform: rotateZ(45deg);
495    transform: rotateZ(45deg); }
496  
497  .colorlib-nav-toggle.active i::after {
498    bottom: 0;
499    -webkit-transform: rotateZ(-45deg);
500    -moz-transform: rotateZ(-45deg);
501    -ms-transform: rotateZ(-45deg);
502    -o-transform: rotateZ(-45deg);
503    transform: rotateZ(-45deg); }
504  
505  .colorlib-nav-toggle {
506    float: right;
507    z-index: 1003;
508    position: relative;
509    top: 0;
510    right: 0;
511    display: block;
512    margin: 0 auto;
513    cursor: pointer;
514    margin-top: 0; }
515    @media (max-width: 767.98px) {
516      .colorlib-nav-toggle {
517        right: 10px; } }
518  
519  .hero-wrap {
520    background: #202020; }
521    .hero-wrap .slider-text .desc h1 {
522      font-size: 6vw;
523      font-weight: 700;
524      color: #fff;
525      text-transform: uppercase; }
526    .hero-wrap .slider-text .desc h3 {
527      color: rgba(255, 255, 255, 0.8);
528      font-size: 18px; }
529.row {
530  display: -ms-flexbox;
531  display: flex;
532  -ms-flex-wrap: wrap;
533  flex-wrap: wrap;
534  /* margin-right: -15px; */
535  /* margin-left: -15px; */
536}
537

You can add overflow-x: hidden; to body as a quickfix.

1&lt;!doctype html&gt;
2&lt;html lang=&quot;de&quot;&gt;
3    &lt;head&gt;
4        &lt;title&gt;VR&lt;/title&gt;
5        &lt;!-- Required meta tags --&gt;
6        &lt;meta charset=&quot;utf-8&quot;&gt;
7        &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1, shrink-to-fit=no&quot;&gt;
8
9        &lt;!-- Bootstrap CSS --&gt;
10        &lt;link rel=&quot;stylesheet&quot; href=&quot;https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css&quot; integrity=&quot;sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T&quot; crossorigin=&quot;anonymous&quot;&gt;
11        &lt;link rel=&quot;stylesheet&quot; href=&quot;style.css&quot;&gt;
12    &lt;/head&gt;
13    &lt;body&gt;
14        &lt;nav id=&quot;colorlib-main-nav&quot; role=&quot;navigation&quot;&gt;
15            &lt;a href=&quot;#&quot; class=&quot;js-colorlib-nav-toggle colorlib-nav-toggle active&quot;&gt;&lt;i&gt;&lt;/i&gt;&lt;/a&gt;
16            &lt;div class=&quot;js-fullheight colorlib-table&quot;&gt;
17                &lt;div class=&quot;img&quot; style=&quot;background-image: url(images/bg_3.jpg);&quot;&gt;&lt;/div&gt;
18                &lt;div class=&quot;colorlib-table-cell js-fullheight&quot;&gt;
19                &lt;div class=&quot;row no-gutters&quot;&gt;
20                    &lt;div class=&quot;col-md-12 text-center&quot;&gt;
21                    &lt;h1 class=&quot;mb-4&quot;&gt;&lt;a href=&quot;index.html&quot; class=&quot;logo&quot;&gt;Company Logo&lt;/a&gt;&lt;/h1&gt;
22                    &lt;ul&gt;
23                        &lt;li class=&quot;active&quot;&gt;&lt;a href=&quot;index.html&quot;&gt;&lt;span&gt;Home&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
24                        &lt;li&gt;&lt;a href=&quot;about.html&quot;&gt;&lt;span&gt;About&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
25                        &lt;li&gt;&lt;a href=&quot;blog.html&quot;&gt;&lt;span&gt;Blog&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
26                        &lt;li&gt;&lt;a href=&quot;contact.html&quot;&gt;&lt;span&gt;Contact&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
27                    &lt;/ul&gt;
28                    &lt;/div&gt;
29                &lt;/div&gt;
30                &lt;/div&gt;
31            &lt;/div&gt;
32        &lt;/nav&gt;
33
34        &lt;div class=&quot;header h-100&quot;&gt;
35            &lt;a href=&quot;#&quot; class=&quot;js-colorlib-nav-toggle colorlib-nav-toggle&quot;&gt;&lt;i&gt;&lt;/i&gt;&lt;/a&gt;
36            &lt;h1 id=&quot;h-100&quot; class=&quot;introduction h-100&quot;&gt;Virtual Reality&lt;/h1&gt;
37            
38        &lt;/div&gt;
39
40        &lt;div class=&quot;h-100&quot;&gt;
41            &lt;h2 class=&quot;center&quot;&gt;Was ist Virtual Reality (VR)&lt;/h2&gt;
42            &lt;p class=&quot;center&quot;&gt;Eine virtuelle Welt oder ein Computerspiel, in das der Nutzer mit Hilfe eines VR-Headsets vollständig eintauchen kann&lt;/p&gt;
43        &lt;/div&gt;
44        
45
46        &lt;div id=&quot;vr-headset-kategorien&quot; class=&quot;&quot;&gt;
47            &lt;!--Show each one as a full screen information - Picture or animation embeded at the left side - Text about it right--&gt;
48            &lt;div id=&quot;standalone&quot; class=&quot;row&quot;&gt;
49                &lt;!----&gt;
50                &lt;div class=&quot;vr-left_side container col-lg-6&quot;&gt;
51                    &lt;div class=&quot;sketchfab-embed-wrapper&quot;&gt; &lt;iframe title=&quot;Quest 2 Headset - FanArt&quot; frameborder=&quot;0&quot; allowfullscreen mozallowfullscreen=&quot;true&quot; webkitallowfullscreen=&quot;true&quot; allow=&quot;fullscreen; autoplay; vr&quot; xr-spatial-tracking execution-while-out-of-viewport execution-while-not-rendered web-share src=&quot;https://sketchfab.com/models/ee496aa030bf4f37a52b445196796af3/embed?autospin=1&amp;autostart=1&amp;ui_hint=0&quot;&gt; &lt;/iframe&gt; &lt;p style=&quot;font-size: 13px; font-weight: normal; margin: 5px; color: #4A4A4A;&quot;&gt; &lt;a href=&quot;https://sketchfab.com/3d-models/quest-2-headset-fanart-ee496aa030bf4f37a52b445196796af3?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=ee496aa030bf4f37a52b445196796af3&quot; target=&quot;_blank&quot; style=&quot;font-weight: bold; color: #1CAAD9;&quot;&gt; Quest 2 Headset - FanArt &lt;/a&gt; by &lt;a href=&quot;https://sketchfab.com/josevillotguisan?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=ee496aa030bf4f37a52b445196796af3&quot; target=&quot;_blank&quot; style=&quot;font-weight: bold; color: #1CAAD9;&quot;&gt; joseVG &lt;/a&gt; on &lt;a href=&quot;https://sketchfab.com?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=ee496aa030bf4f37a52b445196796af3&quot; target=&quot;_blank&quot; style=&quot;font-weight: bold; color: #1CAAD9;&quot;&gt;Sketchfab&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
52                &lt;/div&gt;
53                
54                &lt;div class=&quot;vr-right_side container col-lg-6&quot;&gt;
55                    &lt;h3&gt;Standalone&lt;/h3&gt;
56                
57                    &lt;p&gt;Standalone VR-Headsets ben&amp;ouml;tigen nur WLAN und Strom. In der VR-Brille ist ein eigener Prozessor eingebaut. Damit ist dieser Art super f&amp;uuml;r Anf&amp;auml;nger geeignet&lt;/p&gt;
58
59                    &lt;p&gt;
60                    Vorteile:&lt;br /&gt;
61                    Kein guter PC ben&amp;ouml;tigt&lt;br /&gt;
62                    Niedriger Einstiegspreis trotz guter Hardware&lt;br/&gt;
63                    Gut optimierbar, da es fĂźr das Heaset nur einen Prozessor gibt&lt;/p&gt;
64                    
65                    &lt;p&gt;Nachteile:&lt;br /&gt;
66                    Je nach Headset schlechte Performance bei fordernden Spielen&lt;/p&gt;
67                &lt;/div&gt;
68                
69            &lt;/div&gt;
70
71            &lt;div id=&quot;pc&quot; class=&quot;row&quot;&gt;
72                &lt;div class=&quot;vr-left_side container col-lg-6&quot;&gt;
73                    &lt;div class=&quot;sketchfab-embed-wrapper&quot;&gt; &lt;iframe title=&quot;HTC Vive&quot; frameborder=&quot;0&quot; allowfullscreen mozallowfullscreen=&quot;true&quot; webkitallowfullscreen=&quot;true&quot; allow=&quot;fullscreen; autoplay; vr&quot; xr-spatial-tracking execution-while-out-of-viewport execution-while-not-rendered web-share src=&quot;https://sketchfab.com/models/4cee0970fe60444ead77d41fbb052a33/embed?autospin=1&amp;autostart=1&amp;ui_hint=0&quot;&gt; &lt;/iframe&gt; &lt;p style=&quot;font-size: 13px; font-weight: normal; margin: 5px; color: #4A4A4A;&quot;&gt; &lt;a href=&quot;https://sketchfab.com/3d-models/htc-vive-4cee0970fe60444ead77d41fbb052a33?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=4cee0970fe60444ead77d41fbb052a33&quot; target=&quot;_blank&quot; style=&quot;font-weight: bold; color: #1CAAD9;&quot;&gt; HTC Vive &lt;/a&gt; by &lt;a href=&quot;https://sketchfab.com/EternalRealm?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=4cee0970fe60444ead77d41fbb052a33&quot; target=&quot;_blank&quot; style=&quot;font-weight: bold; color: #1CAAD9;&quot;&gt; Eternal Realm &lt;/a&gt; on &lt;a href=&quot;https://sketchfab.com?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=4cee0970fe60444ead77d41fbb052a33&quot; target=&quot;_blank&quot; style=&quot;font-weight: bold; color: #1CAAD9;&quot;&gt;Sketchfab&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
74                &lt;/div&gt;
75                
76                &lt;div class=&quot;vr-right_side container col-lg-6&quot;&gt;
77                    &lt;h3&gt;PC-VR&lt;/h3&gt;
78                    &lt;p&gt;PC-VR Headsets funktionieren nur zusammen mit einem PC. Sie werden &amp;uuml;ber ein langes Kabel verbunden. Mit einem passenden PC kann ein PC-VR Headset ein extrem sch&amp;ouml;nes Bild liefern. Der Einstiegspreis ist jedoch sehr hoch, daher sind sie vor allem f&amp;uuml;r Enthusiasten geeignet&lt;/p&gt;
79
80                    &lt;p&gt;Vorteile:&lt;br /&gt;
81                    Hohe Aufl&amp;ouml;sung&lt;br /&gt;
82                    Wenig Lags&lt;/p&gt;
83
84                    &lt;p&gt;Nachteile:&lt;br /&gt;
85                    Hoher Einstiegspreis&lt;/p&gt;
86                &lt;/div&gt;
87            &lt;/div&gt;
88
89            &lt;div id=&quot;fulldive&quot; class=&quot;row&quot;&gt;
90                &lt;div class=&quot;vr-left_side container col-lg-6&quot;&gt;
91                    &lt;div class=&quot;sketchfab-embed-wrapper&quot;&gt; &lt;iframe title=&quot;neuraLink&quot; frameborder=&quot;0&quot; allowfullscreen mozallowfullscreen=&quot;true&quot; webkitallowfullscreen=&quot;true&quot; allow=&quot;fullscreen; autoplay; vr&quot; xr-spatial-tracking execution-while-out-of-viewport execution-while-not-rendered web-share src=&quot;https://sketchfab.com/models/6a157c614d0641c2a2d2c7c7628fb01b/embed?autospin=1&amp;autostart=1&quot;&gt; &lt;/iframe&gt; &lt;p style=&quot;font-size: 13px; font-weight: normal; margin: 5px; color: #4A4A4A;&quot;&gt; &lt;a href=&quot;https://sketchfab.com/3d-models/neuralink-6a157c614d0641c2a2d2c7c7628fb01b?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=6a157c614d0641c2a2d2c7c7628fb01b&quot; target=&quot;_blank&quot; style=&quot;font-weight: bold; color: #1CAAD9;&quot;&gt; neuraLink &lt;/a&gt; by &lt;a href=&quot;https://sketchfab.com/rfarencibia?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=6a157c614d0641c2a2d2c7c7628fb01b&quot; target=&quot;_blank&quot; style=&quot;font-weight: bold; color: #1CAAD9;&quot;&gt; rfarencibia &lt;/a&gt; on &lt;a href=&quot;https://sketchfab.com?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=6a157c614d0641c2a2d2c7c7628fb01b&quot; target=&quot;_blank&quot; style=&quot;font-weight: bold; color: #1CAAD9;&quot;&gt;Sketchfab&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
92                &lt;/div&gt;
93                
94                &lt;div class=&quot;vr-right_side container col-lg-6&quot;&gt;
95                    &lt;h3&gt;Full-Dive VR&lt;/h3&gt;
96                    &lt;p&gt;Tauche komplett in die VR-Welt ein. Full-Dive VR-Headsets befinden sich bereits in Entwicklung. Bei diesem Ansatz wird keine VR-Brille verwendet, die wie ein Monitor funktioniert sondern Full-Dive VR-Headsets greifen direkt auf die Seh-, Tast-, und weitere Nerven zu. Daher ist dies auch die umstrittenste Technologie&lt;/p&gt;
97
98                    &lt;p&gt;Vorteile:&lt;br /&gt;
99                    Unvergleichliche Immersion&lt;/p&gt;
100
101                    &lt;p&gt;Nachteile:&lt;br /&gt;
102                    Sicherheit - Z.B. In der VR-Welt einsperren - Unwahrscheinlich aber m&amp;ouml;glich&lt;/p&gt;
103                &lt;/div&gt;
104            &lt;/div&gt;
105
106        &lt;/div&gt;
107
108        
109
110      
111        &lt;!-- Optional JavaScript --&gt;
112        &lt;!-- jQuery first, then Popper.js, then Bootstrap JS --&gt;
113        &lt;script src=&quot;https://code.jquery.com/jquery-3.3.1.slim.min.js&quot; integrity=&quot;sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo&quot; crossorigin=&quot;anonymous&quot;&gt;&lt;/script&gt;
114        &lt;script src=&quot;https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js&quot; integrity=&quot;sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1&quot; crossorigin=&quot;anonymous&quot;&gt;&lt;/script&gt;
115        &lt;script src=&quot;https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js&quot; integrity=&quot;sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM&quot; crossorigin=&quot;anonymous&quot;&gt;&lt;/script&gt;
116        &lt;script&gt;
117            (function($) {
118
119            &quot;use strict&quot;;
120
121            var fullHeight = function() {
122
123                $('.js-fullheight').css('height', $(window).height());
124                $(window).resize(function(){
125                    $('.js-fullheight').css('height', $(window).height());
126                });
127
128            };
129            fullHeight();
130
131            var burgerMenu = function() {
132
133                $('.js-colorlib-nav-toggle').on('click', function(event) {
134                    event.preventDefault();
135                    var $this = $(this);
136                    if( $('body').hasClass('menu-show') ) {
137                        $('body').removeClass('menu-show');
138                        $('#colorlib-main-nav &gt; .js-colorlib-nav-toggle').removeClass('show');
139                    } else {
140                        $('body').addClass('menu-show');
141                        setTimeout(function(){
142                            $('#colorlib-main-nav &gt; .js-colorlib-nav-toggle').addClass('show');
143                        }, 900);
144                    }
145                })
146            };
147            burgerMenu();
148
149
150            })(jQuery);
151        &lt;/script&gt;
152    &lt;/body&gt;
153&lt;/html&gt;
154html, body {
155    background-color: black;
156
157    color: white;
158    height: 100%;
159    min-height: 100%;
160
161}
162
163#h-100{
164    /*height: 100%;
165    min-height: 100%;*/
166
167    /*padding-top: 30%;
168    padding-bottom: 30%;*/
169
170    text-align: center;
171}
172
173.introduction {
174    background-image: url(&quot;beat-saber-intro.jpg&quot;);
175    background-repeat: no-repeat;
176    background-attachment: fixed;
177    background-position: center;
178    background-size: cover;
179}
180
181.row{
182    padding-bottom: 10%;
183}
184
185.sketchfab-embed-wrapper{
186    height: 100%;
187    margin-bottom: 200px;
188}
189
190iframe{
191    height: 100%;
192    width: 100%;
193}
194
195header {
196    height: 100%;
197    min-height: 100%;
198}
199
200.center{
201    text-align: center;
202}
203
204/* Menu*/
205.img {
206    background-size: cover;
207    background-repeat: no-repeat;
208    background-position: center center; }
209  
210  #colorlib-main-nav {
211    position: absolute;
212    top: 0;
213    bottom: 0;
214    right: 0;
215    padding: 0;
216    width: 100%;
217    height: 100%;
218    background: rgba(0, 0, 0, 0.99);
219    z-index: 1002;
220    text-align: center;
221    visibility: hidden;
222    opacity: 0;
223    -webkit-transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
224    -moz-transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
225    -ms-transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
226    -o-transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
227    transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
228    -webkit-transform: scale(0.1);
229    -moz-transform: scale(0);
230    -ms-transform: scale(0);
231    -o-transform: scale(0);
232    transform: scale(0);
233    overflow-y: scroll; }
234    #colorlib-main-nav .colorlib-table {
235      display: table;
236      width: 100%;
237      height: 100%; }
238      #colorlib-main-nav .colorlib-table .img {
239        position: absolute;
240        top: 0;
241        left: 0;
242        bottom: 0;
243        height: 100%;
244        width: 100%;
245        opacity: 1; }
246        #colorlib-main-nav .colorlib-table .img:after {
247          position: absolute;
248          top: 0;
249          left: 0;
250          bottom: 0;
251          right: 0;
252          content: '';
253          background: rgba(0, 0, 0, 0.3); }
254      #colorlib-main-nav .colorlib-table .colorlib-table-cell {
255        display: table-cell;
256        vertical-align: middle; }
257    #colorlib-main-nav .colorlib-nav-toggle {
258      position: absolute;
259      top: 40px;
260      right: 40px;
261      padding: 20px;
262      height: 44px;
263      width: 44px;
264      line-height: 0;
265      padding: 0 !important;
266      visibility: hidden;
267      opacity: 0;
268      -webkit-transition: 0.3s;
269      -o-transition: 0.3s;
270      transition: 0.3s; }
271      @media (prefers-reduced-motion: reduce) {
272        #colorlib-main-nav .colorlib-nav-toggle {
273          -webkit-transition: none;
274          -o-transition: none;
275          transition: none; } }
276      #colorlib-main-nav .colorlib-nav-toggle i {
277        top: 18px !important;
278        left: 0 !important;
279        margin: 0 !important;
280        padding: 0 !important;
281        line-height: 0;
282        text-indent: 0; }
283      #colorlib-main-nav .colorlib-nav-toggle.show {
284        visibility: visible;
285        opacity: 1; }
286      #colorlib-main-nav .colorlib-nav-toggle:hover i::before, #colorlib-main-nav .colorlib-nav-toggle:hover i::after {
287        content: '';
288        width: 40px;
289        height: 2px;
290        background: #fff;
291        position: absolute;
292        left: 0; }
293    .menu-show #colorlib-main-nav {
294      visibility: visible;
295      opacity: 1;
296      -webkit-transform: scale(1);
297      -moz-transform: scale(1);
298      -ms-transform: scale(1);
299      -o-transform: scale(1);
300      transform: scale(1); }
301    #colorlib-main-nav .logo {
302      font-size: 40px;
303      color: #fff;
304      text-transform: uppercase;
305      letter-spacing: 2px;
306      font-weight: 700;
307      position: relative;
308      display: inline-block;
309      margin-bottom: 0;
310      line-height: 1.5;
311      font-family: &quot;Poppins&quot;, Arial, sans-serif; }
312      #colorlib-main-nav .logo span {
313        font-size: 14px;
314        display: block;
315        font-weight: 300;
316        color: rgba(255, 255, 255, 0.8);
317        letter-spacing: 8px; }
318    #colorlib-main-nav ul {
319      padding: 0;
320      margin: 0;
321      display: block; }
322      @media (max-width: 767.98px) {
323        #colorlib-main-nav ul {
324          padding: 20px 0 0 0; } }
325      #colorlib-main-nav ul li {
326        padding: 0;
327        margin: 0;
328        list-style: none;
329        font-weight: 600;
330        font-size: 14px;
331        letter-spacing: 5px;
332        text-transform: uppercase; }
333        #colorlib-main-nav ul li a {
334          display: block;
335          color: white;
336          padding: 5px 0; }
337          #colorlib-main-nav ul li a span {
338            color: white;
339            position: relative;
340            padding: 0 10px; }
341            #colorlib-main-nav ul li a span small {
342              position: absolute;
343              bottom: 7px;
344              left: -30px;
345              font-size: 16px;
346              color: rgba(255, 255, 255, 0.3);
347              border-bottom: 1px solid rgba(255, 255, 255, 0.3); }
348          #colorlib-main-nav ul li a:hover, #colorlib-main-nav ul li a:active, #colorlib-main-nav ul li a:focus {
349            outline: none;
350            text-decoration: none; }
351            #colorlib-main-nav ul li a:hover span:before, #colorlib-main-nav ul li a:active span:before, #colorlib-main-nav ul li a:focus span:before {
352              visibility: visible;
353              -webkit-transform: scaleX(1);
354              -moz-transform: scaleX(1);
355              -ms-transform: scaleX(1);
356              -o-transform: scaleX(1);
357              transform: scaleX(1); }
358        #colorlib-main-nav ul li.active a span {
359          color: #f8b500; }
360          #colorlib-main-nav ul li.active a span:before {
361            background: #fec771;
362            visibility: visible;
363            -webkit-transform: scaleX(1);
364            -moz-transform: scaleX(1);
365            -ms-transform: scaleX(1);
366            -o-transform: scaleX(1);
367            transform: scaleX(1); }
368  
369  header {
370    padding: 2em 0;
371    position: absolute;
372    top: 0;
373    left: 0;
374    right: 0;
375    z-index: 9;
376    margin: 0 auto; }
377    @media (max-width: 767.98px) {
378      header {
379        padding: 1em 0;
380        position: absolute; } }
381    header .colorlib-navbar-brand {
382      float: left; }
383      header .colorlib-navbar-brand .colorlib-logo {
384        font-size: 12px;
385        color: #fff;
386        letter-spacing: 5px;
387        font-weight: 600;
388        position: relative;
389        display: inline-block;
390        margin-bottom: 0;
391        line-height: 1.5;
392        font-family: &quot;Poppins&quot;, Arial, sans-serif;
393        text-transform: uppercase; }
394        header .colorlib-navbar-brand .colorlib-logo span {
395          font-size: 11px;
396          display: block;
397          font-weight: 300;
398          color: rgba(255, 255, 255, 0.8);
399          letter-spacing: 7px; }
400        header .colorlib-navbar-brand .colorlib-logo i {
401          color: #fec771;
402          position: absolute;
403          top: -18px;
404          bottom: 0;
405          left: 7px;
406          font-size: 48px; }
407        header .colorlib-navbar-brand .colorlib-logo:hover {
408          text-decoration: none !important; }
409        header .colorlib-navbar-brand .colorlib-logo:active, header .colorlib-navbar-brand .colorlib-logo:focus {
410          outline: none;
411          text-decoration: none; }
412  
413  .colorlib-nav-toggle {
414    cursor: pointer;
415    text-decoration: none; }
416    .colorlib-nav-toggle.active i::before, .colorlib-nav-toggle.active i::after {
417      background: #000; }
418    .colorlib-nav-toggle.dark.active i::before, .colorlib-nav-toggle.dark.active i::after {
419      background: #000; }
420    .colorlib-nav-toggle:hover, .colorlib-nav-toggle:focus, .colorlib-nav-toggle:active {
421      outline: none;
422      border-bottom: none !important; }
423    .colorlib-nav-toggle i {
424      position: relative;
425      display: inline-block;
426      width: 20px;
427      height: 2px;
428      color: #000;
429      font: bold 14px/.4 Helvetica;
430      text-transform: uppercase;
431      text-indent: -55px;
432      background: #fff;
433      -webkit-transition: all .2s ease-out;
434      -o-transition: all .2s ease-out;
435      transition: all .2s ease-out; }
436      .menu-show .colorlib-nav-toggle i {
437        background: #fff;
438        color: #fff; }
439      .colorlib-nav-toggle i::before, .colorlib-nav-toggle i::after {
440        content: '';
441        width: 30px;
442        height: 2px;
443        background: #fff;
444        position: absolute;
445        left: 0;
446        -webkit-transition: 0.2s;
447        -o-transition: 0.2s;
448        transition: 0.2s; }
449        .menu-show .colorlib-nav-toggle i::before, .menu-show .colorlib-nav-toggle i::after {
450          background: #fff; }
451        @media (prefers-reduced-motion: reduce) {
452          .colorlib-nav-toggle i::before, .colorlib-nav-toggle i::after {
453            -webkit-transition: none;
454            -o-transition: none;
455            transition: none; } }
456    .colorlib-nav-toggle.dark i {
457      position: relative;
458      color: #fff;
459      background: #fff;
460      -webkit-transition: all .2s ease-out;
461      -o-transition: all .2s ease-out;
462      transition: all .2s ease-out; }
463      .colorlib-nav-toggle.dark i::before, .colorlib-nav-toggle.dark i::after {
464        background: #fff;
465        -webkit-transition: 0.2s;
466        -o-transition: 0.2s;
467        transition: 0.2s; }
468        @media (prefers-reduced-motion: reduce) {
469          .colorlib-nav-toggle.dark i::before, .colorlib-nav-toggle.dark i::after {
470            -webkit-transition: none;
471            -o-transition: none;
472            transition: none; } }
473  
474  .colorlib-nav-toggle i::before {
475    top: -7px; }
476  
477  .colorlib-nav-toggle i::after {
478    bottom: -7px; }
479  
480  .colorlib-nav-toggle:hover i::before {
481    top: -10px; }
482  
483  .colorlib-nav-toggle:hover i::after {
484    bottom: -10px; }
485  
486  .colorlib-nav-toggle.active i {
487    background: transparent; }
488  
489  .colorlib-nav-toggle.active i::before {
490    top: 0;
491    -webkit-transform: rotateZ(45deg);
492    -moz-transform: rotateZ(45deg);
493    -ms-transform: rotateZ(45deg);
494    -o-transform: rotateZ(45deg);
495    transform: rotateZ(45deg); }
496  
497  .colorlib-nav-toggle.active i::after {
498    bottom: 0;
499    -webkit-transform: rotateZ(-45deg);
500    -moz-transform: rotateZ(-45deg);
501    -ms-transform: rotateZ(-45deg);
502    -o-transform: rotateZ(-45deg);
503    transform: rotateZ(-45deg); }
504  
505  .colorlib-nav-toggle {
506    float: right;
507    z-index: 1003;
508    position: relative;
509    top: 0;
510    right: 0;
511    display: block;
512    margin: 0 auto;
513    cursor: pointer;
514    margin-top: 0; }
515    @media (max-width: 767.98px) {
516      .colorlib-nav-toggle {
517        right: 10px; } }
518  
519  .hero-wrap {
520    background: #202020; }
521    .hero-wrap .slider-text .desc h1 {
522      font-size: 6vw;
523      font-weight: 700;
524      color: #fff;
525      text-transform: uppercase; }
526    .hero-wrap .slider-text .desc h3 {
527      color: rgba(255, 255, 255, 0.8);
528      font-size: 18px; }
529.row {
530  display: -ms-flexbox;
531  display: flex;
532  -ms-flex-wrap: wrap;
533  flex-wrap: wrap;
534  /* margin-right: -15px; */
535  /* margin-left: -15px; */
536}
537(function($) {
538
539  "use strict";
540
541  var fullHeight = function() {
542
543    $('.js-fullheight').css('height', $(window).height());
544    $(window).resize(function() {
545      $('.js-fullheight').css('height', $(window).height());
546    });
547
548  };
549  fullHeight();
550
551  var burgerMenu = function() {
552
553    $('.js-colorlib-nav-toggle').on('click', function(event) {
554      event.preventDefault();
555      var $this = $(this);
556      if ($('body').hasClass('menu-show')) {
557        $('body').removeClass('menu-show');
558        $('#colorlib-main-nav &gt; .js-colorlib-nav-toggle').removeClass('show');
559      } else {
560        $('body').addClass('menu-show');
561        setTimeout(function() {
562          $('#colorlib-main-nav &gt; .js-colorlib-nav-toggle').addClass('show');
563        }, 900);
564      }
565    })
566  };
567  burgerMenu();
568
569
570})(jQuery);
1&lt;!doctype html&gt;
2&lt;html lang=&quot;de&quot;&gt;
3    &lt;head&gt;
4        &lt;title&gt;VR&lt;/title&gt;
5        &lt;!-- Required meta tags --&gt;
6        &lt;meta charset=&quot;utf-8&quot;&gt;
7        &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1, shrink-to-fit=no&quot;&gt;
8
9        &lt;!-- Bootstrap CSS --&gt;
10        &lt;link rel=&quot;stylesheet&quot; href=&quot;https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css&quot; integrity=&quot;sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T&quot; crossorigin=&quot;anonymous&quot;&gt;
11        &lt;link rel=&quot;stylesheet&quot; href=&quot;style.css&quot;&gt;
12    &lt;/head&gt;
13    &lt;body&gt;
14        &lt;nav id=&quot;colorlib-main-nav&quot; role=&quot;navigation&quot;&gt;
15            &lt;a href=&quot;#&quot; class=&quot;js-colorlib-nav-toggle colorlib-nav-toggle active&quot;&gt;&lt;i&gt;&lt;/i&gt;&lt;/a&gt;
16            &lt;div class=&quot;js-fullheight colorlib-table&quot;&gt;
17                &lt;div class=&quot;img&quot; style=&quot;background-image: url(images/bg_3.jpg);&quot;&gt;&lt;/div&gt;
18                &lt;div class=&quot;colorlib-table-cell js-fullheight&quot;&gt;
19                &lt;div class=&quot;row no-gutters&quot;&gt;
20                    &lt;div class=&quot;col-md-12 text-center&quot;&gt;
21                    &lt;h1 class=&quot;mb-4&quot;&gt;&lt;a href=&quot;index.html&quot; class=&quot;logo&quot;&gt;Company Logo&lt;/a&gt;&lt;/h1&gt;
22                    &lt;ul&gt;
23                        &lt;li class=&quot;active&quot;&gt;&lt;a href=&quot;index.html&quot;&gt;&lt;span&gt;Home&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
24                        &lt;li&gt;&lt;a href=&quot;about.html&quot;&gt;&lt;span&gt;About&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
25                        &lt;li&gt;&lt;a href=&quot;blog.html&quot;&gt;&lt;span&gt;Blog&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
26                        &lt;li&gt;&lt;a href=&quot;contact.html&quot;&gt;&lt;span&gt;Contact&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
27                    &lt;/ul&gt;
28                    &lt;/div&gt;
29                &lt;/div&gt;
30                &lt;/div&gt;
31            &lt;/div&gt;
32        &lt;/nav&gt;
33
34        &lt;div class=&quot;header h-100&quot;&gt;
35            &lt;a href=&quot;#&quot; class=&quot;js-colorlib-nav-toggle colorlib-nav-toggle&quot;&gt;&lt;i&gt;&lt;/i&gt;&lt;/a&gt;
36            &lt;h1 id=&quot;h-100&quot; class=&quot;introduction h-100&quot;&gt;Virtual Reality&lt;/h1&gt;
37            
38        &lt;/div&gt;
39
40        &lt;div class=&quot;h-100&quot;&gt;
41            &lt;h2 class=&quot;center&quot;&gt;Was ist Virtual Reality (VR)&lt;/h2&gt;
42            &lt;p class=&quot;center&quot;&gt;Eine virtuelle Welt oder ein Computerspiel, in das der Nutzer mit Hilfe eines VR-Headsets vollständig eintauchen kann&lt;/p&gt;
43        &lt;/div&gt;
44        
45
46        &lt;div id=&quot;vr-headset-kategorien&quot; class=&quot;&quot;&gt;
47            &lt;!--Show each one as a full screen information - Picture or animation embeded at the left side - Text about it right--&gt;
48            &lt;div id=&quot;standalone&quot; class=&quot;row&quot;&gt;
49                &lt;!----&gt;
50                &lt;div class=&quot;vr-left_side container col-lg-6&quot;&gt;
51                    &lt;div class=&quot;sketchfab-embed-wrapper&quot;&gt; &lt;iframe title=&quot;Quest 2 Headset - FanArt&quot; frameborder=&quot;0&quot; allowfullscreen mozallowfullscreen=&quot;true&quot; webkitallowfullscreen=&quot;true&quot; allow=&quot;fullscreen; autoplay; vr&quot; xr-spatial-tracking execution-while-out-of-viewport execution-while-not-rendered web-share src=&quot;https://sketchfab.com/models/ee496aa030bf4f37a52b445196796af3/embed?autospin=1&amp;autostart=1&amp;ui_hint=0&quot;&gt; &lt;/iframe&gt; &lt;p style=&quot;font-size: 13px; font-weight: normal; margin: 5px; color: #4A4A4A;&quot;&gt; &lt;a href=&quot;https://sketchfab.com/3d-models/quest-2-headset-fanart-ee496aa030bf4f37a52b445196796af3?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=ee496aa030bf4f37a52b445196796af3&quot; target=&quot;_blank&quot; style=&quot;font-weight: bold; color: #1CAAD9;&quot;&gt; Quest 2 Headset - FanArt &lt;/a&gt; by &lt;a href=&quot;https://sketchfab.com/josevillotguisan?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=ee496aa030bf4f37a52b445196796af3&quot; target=&quot;_blank&quot; style=&quot;font-weight: bold; color: #1CAAD9;&quot;&gt; joseVG &lt;/a&gt; on &lt;a href=&quot;https://sketchfab.com?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=ee496aa030bf4f37a52b445196796af3&quot; target=&quot;_blank&quot; style=&quot;font-weight: bold; color: #1CAAD9;&quot;&gt;Sketchfab&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
52                &lt;/div&gt;
53                
54                &lt;div class=&quot;vr-right_side container col-lg-6&quot;&gt;
55                    &lt;h3&gt;Standalone&lt;/h3&gt;
56                
57                    &lt;p&gt;Standalone VR-Headsets ben&amp;ouml;tigen nur WLAN und Strom. In der VR-Brille ist ein eigener Prozessor eingebaut. Damit ist dieser Art super f&amp;uuml;r Anf&amp;auml;nger geeignet&lt;/p&gt;
58
59                    &lt;p&gt;
60                    Vorteile:&lt;br /&gt;
61                    Kein guter PC ben&amp;ouml;tigt&lt;br /&gt;
62                    Niedriger Einstiegspreis trotz guter Hardware&lt;br/&gt;
63                    Gut optimierbar, da es fĂźr das Heaset nur einen Prozessor gibt&lt;/p&gt;
64                    
65                    &lt;p&gt;Nachteile:&lt;br /&gt;
66                    Je nach Headset schlechte Performance bei fordernden Spielen&lt;/p&gt;
67                &lt;/div&gt;
68                
69            &lt;/div&gt;
70
71            &lt;div id=&quot;pc&quot; class=&quot;row&quot;&gt;
72                &lt;div class=&quot;vr-left_side container col-lg-6&quot;&gt;
73                    &lt;div class=&quot;sketchfab-embed-wrapper&quot;&gt; &lt;iframe title=&quot;HTC Vive&quot; frameborder=&quot;0&quot; allowfullscreen mozallowfullscreen=&quot;true&quot; webkitallowfullscreen=&quot;true&quot; allow=&quot;fullscreen; autoplay; vr&quot; xr-spatial-tracking execution-while-out-of-viewport execution-while-not-rendered web-share src=&quot;https://sketchfab.com/models/4cee0970fe60444ead77d41fbb052a33/embed?autospin=1&amp;autostart=1&amp;ui_hint=0&quot;&gt; &lt;/iframe&gt; &lt;p style=&quot;font-size: 13px; font-weight: normal; margin: 5px; color: #4A4A4A;&quot;&gt; &lt;a href=&quot;https://sketchfab.com/3d-models/htc-vive-4cee0970fe60444ead77d41fbb052a33?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=4cee0970fe60444ead77d41fbb052a33&quot; target=&quot;_blank&quot; style=&quot;font-weight: bold; color: #1CAAD9;&quot;&gt; HTC Vive &lt;/a&gt; by &lt;a href=&quot;https://sketchfab.com/EternalRealm?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=4cee0970fe60444ead77d41fbb052a33&quot; target=&quot;_blank&quot; style=&quot;font-weight: bold; color: #1CAAD9;&quot;&gt; Eternal Realm &lt;/a&gt; on &lt;a href=&quot;https://sketchfab.com?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=4cee0970fe60444ead77d41fbb052a33&quot; target=&quot;_blank&quot; style=&quot;font-weight: bold; color: #1CAAD9;&quot;&gt;Sketchfab&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
74                &lt;/div&gt;
75                
76                &lt;div class=&quot;vr-right_side container col-lg-6&quot;&gt;
77                    &lt;h3&gt;PC-VR&lt;/h3&gt;
78                    &lt;p&gt;PC-VR Headsets funktionieren nur zusammen mit einem PC. Sie werden &amp;uuml;ber ein langes Kabel verbunden. Mit einem passenden PC kann ein PC-VR Headset ein extrem sch&amp;ouml;nes Bild liefern. Der Einstiegspreis ist jedoch sehr hoch, daher sind sie vor allem f&amp;uuml;r Enthusiasten geeignet&lt;/p&gt;
79
80                    &lt;p&gt;Vorteile:&lt;br /&gt;
81                    Hohe Aufl&amp;ouml;sung&lt;br /&gt;
82                    Wenig Lags&lt;/p&gt;
83
84                    &lt;p&gt;Nachteile:&lt;br /&gt;
85                    Hoher Einstiegspreis&lt;/p&gt;
86                &lt;/div&gt;
87            &lt;/div&gt;
88
89            &lt;div id=&quot;fulldive&quot; class=&quot;row&quot;&gt;
90                &lt;div class=&quot;vr-left_side container col-lg-6&quot;&gt;
91                    &lt;div class=&quot;sketchfab-embed-wrapper&quot;&gt; &lt;iframe title=&quot;neuraLink&quot; frameborder=&quot;0&quot; allowfullscreen mozallowfullscreen=&quot;true&quot; webkitallowfullscreen=&quot;true&quot; allow=&quot;fullscreen; autoplay; vr&quot; xr-spatial-tracking execution-while-out-of-viewport execution-while-not-rendered web-share src=&quot;https://sketchfab.com/models/6a157c614d0641c2a2d2c7c7628fb01b/embed?autospin=1&amp;autostart=1&quot;&gt; &lt;/iframe&gt; &lt;p style=&quot;font-size: 13px; font-weight: normal; margin: 5px; color: #4A4A4A;&quot;&gt; &lt;a href=&quot;https://sketchfab.com/3d-models/neuralink-6a157c614d0641c2a2d2c7c7628fb01b?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=6a157c614d0641c2a2d2c7c7628fb01b&quot; target=&quot;_blank&quot; style=&quot;font-weight: bold; color: #1CAAD9;&quot;&gt; neuraLink &lt;/a&gt; by &lt;a href=&quot;https://sketchfab.com/rfarencibia?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=6a157c614d0641c2a2d2c7c7628fb01b&quot; target=&quot;_blank&quot; style=&quot;font-weight: bold; color: #1CAAD9;&quot;&gt; rfarencibia &lt;/a&gt; on &lt;a href=&quot;https://sketchfab.com?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=6a157c614d0641c2a2d2c7c7628fb01b&quot; target=&quot;_blank&quot; style=&quot;font-weight: bold; color: #1CAAD9;&quot;&gt;Sketchfab&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
92                &lt;/div&gt;
93                
94                &lt;div class=&quot;vr-right_side container col-lg-6&quot;&gt;
95                    &lt;h3&gt;Full-Dive VR&lt;/h3&gt;
96                    &lt;p&gt;Tauche komplett in die VR-Welt ein. Full-Dive VR-Headsets befinden sich bereits in Entwicklung. Bei diesem Ansatz wird keine VR-Brille verwendet, die wie ein Monitor funktioniert sondern Full-Dive VR-Headsets greifen direkt auf die Seh-, Tast-, und weitere Nerven zu. Daher ist dies auch die umstrittenste Technologie&lt;/p&gt;
97
98                    &lt;p&gt;Vorteile:&lt;br /&gt;
99                    Unvergleichliche Immersion&lt;/p&gt;
100
101                    &lt;p&gt;Nachteile:&lt;br /&gt;
102                    Sicherheit - Z.B. In der VR-Welt einsperren - Unwahrscheinlich aber m&amp;ouml;glich&lt;/p&gt;
103                &lt;/div&gt;
104            &lt;/div&gt;
105
106        &lt;/div&gt;
107
108        
109
110      
111        &lt;!-- Optional JavaScript --&gt;
112        &lt;!-- jQuery first, then Popper.js, then Bootstrap JS --&gt;
113        &lt;script src=&quot;https://code.jquery.com/jquery-3.3.1.slim.min.js&quot; integrity=&quot;sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo&quot; crossorigin=&quot;anonymous&quot;&gt;&lt;/script&gt;
114        &lt;script src=&quot;https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js&quot; integrity=&quot;sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1&quot; crossorigin=&quot;anonymous&quot;&gt;&lt;/script&gt;
115        &lt;script src=&quot;https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js&quot; integrity=&quot;sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM&quot; crossorigin=&quot;anonymous&quot;&gt;&lt;/script&gt;
116        &lt;script&gt;
117            (function($) {
118
119            &quot;use strict&quot;;
120
121            var fullHeight = function() {
122
123                $('.js-fullheight').css('height', $(window).height());
124                $(window).resize(function(){
125                    $('.js-fullheight').css('height', $(window).height());
126                });
127
128            };
129            fullHeight();
130
131            var burgerMenu = function() {
132
133                $('.js-colorlib-nav-toggle').on('click', function(event) {
134                    event.preventDefault();
135                    var $this = $(this);
136                    if( $('body').hasClass('menu-show') ) {
137                        $('body').removeClass('menu-show');
138                        $('#colorlib-main-nav &gt; .js-colorlib-nav-toggle').removeClass('show');
139                    } else {
140                        $('body').addClass('menu-show');
141                        setTimeout(function(){
142                            $('#colorlib-main-nav &gt; .js-colorlib-nav-toggle').addClass('show');
143                        }, 900);
144                    }
145                })
146            };
147            burgerMenu();
148
149
150            })(jQuery);
151        &lt;/script&gt;
152    &lt;/body&gt;
153&lt;/html&gt;
154html, body {
155    background-color: black;
156
157    color: white;
158    height: 100%;
159    min-height: 100%;
160
161}
162
163#h-100{
164    /*height: 100%;
165    min-height: 100%;*/
166
167    /*padding-top: 30%;
168    padding-bottom: 30%;*/
169
170    text-align: center;
171}
172
173.introduction {
174    background-image: url(&quot;beat-saber-intro.jpg&quot;);
175    background-repeat: no-repeat;
176    background-attachment: fixed;
177    background-position: center;
178    background-size: cover;
179}
180
181.row{
182    padding-bottom: 10%;
183}
184
185.sketchfab-embed-wrapper{
186    height: 100%;
187    margin-bottom: 200px;
188}
189
190iframe{
191    height: 100%;
192    width: 100%;
193}
194
195header {
196    height: 100%;
197    min-height: 100%;
198}
199
200.center{
201    text-align: center;
202}
203
204/* Menu*/
205.img {
206    background-size: cover;
207    background-repeat: no-repeat;
208    background-position: center center; }
209  
210  #colorlib-main-nav {
211    position: absolute;
212    top: 0;
213    bottom: 0;
214    right: 0;
215    padding: 0;
216    width: 100%;
217    height: 100%;
218    background: rgba(0, 0, 0, 0.99);
219    z-index: 1002;
220    text-align: center;
221    visibility: hidden;
222    opacity: 0;
223    -webkit-transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
224    -moz-transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
225    -ms-transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
226    -o-transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
227    transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
228    -webkit-transform: scale(0.1);
229    -moz-transform: scale(0);
230    -ms-transform: scale(0);
231    -o-transform: scale(0);
232    transform: scale(0);
233    overflow-y: scroll; }
234    #colorlib-main-nav .colorlib-table {
235      display: table;
236      width: 100%;
237      height: 100%; }
238      #colorlib-main-nav .colorlib-table .img {
239        position: absolute;
240        top: 0;
241        left: 0;
242        bottom: 0;
243        height: 100%;
244        width: 100%;
245        opacity: 1; }
246        #colorlib-main-nav .colorlib-table .img:after {
247          position: absolute;
248          top: 0;
249          left: 0;
250          bottom: 0;
251          right: 0;
252          content: '';
253          background: rgba(0, 0, 0, 0.3); }
254      #colorlib-main-nav .colorlib-table .colorlib-table-cell {
255        display: table-cell;
256        vertical-align: middle; }
257    #colorlib-main-nav .colorlib-nav-toggle {
258      position: absolute;
259      top: 40px;
260      right: 40px;
261      padding: 20px;
262      height: 44px;
263      width: 44px;
264      line-height: 0;
265      padding: 0 !important;
266      visibility: hidden;
267      opacity: 0;
268      -webkit-transition: 0.3s;
269      -o-transition: 0.3s;
270      transition: 0.3s; }
271      @media (prefers-reduced-motion: reduce) {
272        #colorlib-main-nav .colorlib-nav-toggle {
273          -webkit-transition: none;
274          -o-transition: none;
275          transition: none; } }
276      #colorlib-main-nav .colorlib-nav-toggle i {
277        top: 18px !important;
278        left: 0 !important;
279        margin: 0 !important;
280        padding: 0 !important;
281        line-height: 0;
282        text-indent: 0; }
283      #colorlib-main-nav .colorlib-nav-toggle.show {
284        visibility: visible;
285        opacity: 1; }
286      #colorlib-main-nav .colorlib-nav-toggle:hover i::before, #colorlib-main-nav .colorlib-nav-toggle:hover i::after {
287        content: '';
288        width: 40px;
289        height: 2px;
290        background: #fff;
291        position: absolute;
292        left: 0; }
293    .menu-show #colorlib-main-nav {
294      visibility: visible;
295      opacity: 1;
296      -webkit-transform: scale(1);
297      -moz-transform: scale(1);
298      -ms-transform: scale(1);
299      -o-transform: scale(1);
300      transform: scale(1); }
301    #colorlib-main-nav .logo {
302      font-size: 40px;
303      color: #fff;
304      text-transform: uppercase;
305      letter-spacing: 2px;
306      font-weight: 700;
307      position: relative;
308      display: inline-block;
309      margin-bottom: 0;
310      line-height: 1.5;
311      font-family: &quot;Poppins&quot;, Arial, sans-serif; }
312      #colorlib-main-nav .logo span {
313        font-size: 14px;
314        display: block;
315        font-weight: 300;
316        color: rgba(255, 255, 255, 0.8);
317        letter-spacing: 8px; }
318    #colorlib-main-nav ul {
319      padding: 0;
320      margin: 0;
321      display: block; }
322      @media (max-width: 767.98px) {
323        #colorlib-main-nav ul {
324          padding: 20px 0 0 0; } }
325      #colorlib-main-nav ul li {
326        padding: 0;
327        margin: 0;
328        list-style: none;
329        font-weight: 600;
330        font-size: 14px;
331        letter-spacing: 5px;
332        text-transform: uppercase; }
333        #colorlib-main-nav ul li a {
334          display: block;
335          color: white;
336          padding: 5px 0; }
337          #colorlib-main-nav ul li a span {
338            color: white;
339            position: relative;
340            padding: 0 10px; }
341            #colorlib-main-nav ul li a span small {
342              position: absolute;
343              bottom: 7px;
344              left: -30px;
345              font-size: 16px;
346              color: rgba(255, 255, 255, 0.3);
347              border-bottom: 1px solid rgba(255, 255, 255, 0.3); }
348          #colorlib-main-nav ul li a:hover, #colorlib-main-nav ul li a:active, #colorlib-main-nav ul li a:focus {
349            outline: none;
350            text-decoration: none; }
351            #colorlib-main-nav ul li a:hover span:before, #colorlib-main-nav ul li a:active span:before, #colorlib-main-nav ul li a:focus span:before {
352              visibility: visible;
353              -webkit-transform: scaleX(1);
354              -moz-transform: scaleX(1);
355              -ms-transform: scaleX(1);
356              -o-transform: scaleX(1);
357              transform: scaleX(1); }
358        #colorlib-main-nav ul li.active a span {
359          color: #f8b500; }
360          #colorlib-main-nav ul li.active a span:before {
361            background: #fec771;
362            visibility: visible;
363            -webkit-transform: scaleX(1);
364            -moz-transform: scaleX(1);
365            -ms-transform: scaleX(1);
366            -o-transform: scaleX(1);
367            transform: scaleX(1); }
368  
369  header {
370    padding: 2em 0;
371    position: absolute;
372    top: 0;
373    left: 0;
374    right: 0;
375    z-index: 9;
376    margin: 0 auto; }
377    @media (max-width: 767.98px) {
378      header {
379        padding: 1em 0;
380        position: absolute; } }
381    header .colorlib-navbar-brand {
382      float: left; }
383      header .colorlib-navbar-brand .colorlib-logo {
384        font-size: 12px;
385        color: #fff;
386        letter-spacing: 5px;
387        font-weight: 600;
388        position: relative;
389        display: inline-block;
390        margin-bottom: 0;
391        line-height: 1.5;
392        font-family: &quot;Poppins&quot;, Arial, sans-serif;
393        text-transform: uppercase; }
394        header .colorlib-navbar-brand .colorlib-logo span {
395          font-size: 11px;
396          display: block;
397          font-weight: 300;
398          color: rgba(255, 255, 255, 0.8);
399          letter-spacing: 7px; }
400        header .colorlib-navbar-brand .colorlib-logo i {
401          color: #fec771;
402          position: absolute;
403          top: -18px;
404          bottom: 0;
405          left: 7px;
406          font-size: 48px; }
407        header .colorlib-navbar-brand .colorlib-logo:hover {
408          text-decoration: none !important; }
409        header .colorlib-navbar-brand .colorlib-logo:active, header .colorlib-navbar-brand .colorlib-logo:focus {
410          outline: none;
411          text-decoration: none; }
412  
413  .colorlib-nav-toggle {
414    cursor: pointer;
415    text-decoration: none; }
416    .colorlib-nav-toggle.active i::before, .colorlib-nav-toggle.active i::after {
417      background: #000; }
418    .colorlib-nav-toggle.dark.active i::before, .colorlib-nav-toggle.dark.active i::after {
419      background: #000; }
420    .colorlib-nav-toggle:hover, .colorlib-nav-toggle:focus, .colorlib-nav-toggle:active {
421      outline: none;
422      border-bottom: none !important; }
423    .colorlib-nav-toggle i {
424      position: relative;
425      display: inline-block;
426      width: 20px;
427      height: 2px;
428      color: #000;
429      font: bold 14px/.4 Helvetica;
430      text-transform: uppercase;
431      text-indent: -55px;
432      background: #fff;
433      -webkit-transition: all .2s ease-out;
434      -o-transition: all .2s ease-out;
435      transition: all .2s ease-out; }
436      .menu-show .colorlib-nav-toggle i {
437        background: #fff;
438        color: #fff; }
439      .colorlib-nav-toggle i::before, .colorlib-nav-toggle i::after {
440        content: '';
441        width: 30px;
442        height: 2px;
443        background: #fff;
444        position: absolute;
445        left: 0;
446        -webkit-transition: 0.2s;
447        -o-transition: 0.2s;
448        transition: 0.2s; }
449        .menu-show .colorlib-nav-toggle i::before, .menu-show .colorlib-nav-toggle i::after {
450          background: #fff; }
451        @media (prefers-reduced-motion: reduce) {
452          .colorlib-nav-toggle i::before, .colorlib-nav-toggle i::after {
453            -webkit-transition: none;
454            -o-transition: none;
455            transition: none; } }
456    .colorlib-nav-toggle.dark i {
457      position: relative;
458      color: #fff;
459      background: #fff;
460      -webkit-transition: all .2s ease-out;
461      -o-transition: all .2s ease-out;
462      transition: all .2s ease-out; }
463      .colorlib-nav-toggle.dark i::before, .colorlib-nav-toggle.dark i::after {
464        background: #fff;
465        -webkit-transition: 0.2s;
466        -o-transition: 0.2s;
467        transition: 0.2s; }
468        @media (prefers-reduced-motion: reduce) {
469          .colorlib-nav-toggle.dark i::before, .colorlib-nav-toggle.dark i::after {
470            -webkit-transition: none;
471            -o-transition: none;
472            transition: none; } }
473  
474  .colorlib-nav-toggle i::before {
475    top: -7px; }
476  
477  .colorlib-nav-toggle i::after {
478    bottom: -7px; }
479  
480  .colorlib-nav-toggle:hover i::before {
481    top: -10px; }
482  
483  .colorlib-nav-toggle:hover i::after {
484    bottom: -10px; }
485  
486  .colorlib-nav-toggle.active i {
487    background: transparent; }
488  
489  .colorlib-nav-toggle.active i::before {
490    top: 0;
491    -webkit-transform: rotateZ(45deg);
492    -moz-transform: rotateZ(45deg);
493    -ms-transform: rotateZ(45deg);
494    -o-transform: rotateZ(45deg);
495    transform: rotateZ(45deg); }
496  
497  .colorlib-nav-toggle.active i::after {
498    bottom: 0;
499    -webkit-transform: rotateZ(-45deg);
500    -moz-transform: rotateZ(-45deg);
501    -ms-transform: rotateZ(-45deg);
502    -o-transform: rotateZ(-45deg);
503    transform: rotateZ(-45deg); }
504  
505  .colorlib-nav-toggle {
506    float: right;
507    z-index: 1003;
508    position: relative;
509    top: 0;
510    right: 0;
511    display: block;
512    margin: 0 auto;
513    cursor: pointer;
514    margin-top: 0; }
515    @media (max-width: 767.98px) {
516      .colorlib-nav-toggle {
517        right: 10px; } }
518  
519  .hero-wrap {
520    background: #202020; }
521    .hero-wrap .slider-text .desc h1 {
522      font-size: 6vw;
523      font-weight: 700;
524      color: #fff;
525      text-transform: uppercase; }
526    .hero-wrap .slider-text .desc h3 {
527      color: rgba(255, 255, 255, 0.8);
528      font-size: 18px; }
529.row {
530  display: -ms-flexbox;
531  display: flex;
532  -ms-flex-wrap: wrap;
533  flex-wrap: wrap;
534  /* margin-right: -15px; */
535  /* margin-left: -15px; */
536}
537(function($) {
538
539  "use strict";
540
541  var fullHeight = function() {
542
543    $('.js-fullheight').css('height', $(window).height());
544    $(window).resize(function() {
545      $('.js-fullheight').css('height', $(window).height());
546    });
547
548  };
549  fullHeight();
550
551  var burgerMenu = function() {
552
553    $('.js-colorlib-nav-toggle').on('click', function(event) {
554      event.preventDefault();
555      var $this = $(this);
556      if ($('body').hasClass('menu-show')) {
557        $('body').removeClass('menu-show');
558        $('#colorlib-main-nav &gt; .js-colorlib-nav-toggle').removeClass('show');
559      } else {
560        $('body').addClass('menu-show');
561        setTimeout(function() {
562          $('#colorlib-main-nav &gt; .js-colorlib-nav-toggle').addClass('show');
563        }, 900);
564      }
565    })
566  };
567  burgerMenu();
568
569
570})(jQuery);html,
571body {
572  background-color: black;
573  color: white;
574  height: 100%;
575  min-height: 100%;
576  overflow-x: hidden;
577}
578
579#h-100 {
580  /*height: 100%;
581    min-height: 100%;*/
582  /*padding-top: 30%;
583    padding-bottom: 30%;*/
584  text-align: center;
585}
586
587.introduction {
588  background-image: url("beat-saber-intro.jpg");
589  background-repeat: no-repeat;
590  background-attachment: fixed;
591  background-position: center;
592  background-size: cover;
593}
594
595.row {
596  padding-bottom: 10%;
597}
598
599.sketchfab-embed-wrapper {
600  height: 100%;
601  margin-bottom: 200px;
602}
603
604iframe {
605  height: 100%;
606  width: 100%;
607}
608
609header {
610  height: 100%;
611  min-height: 100%;
612}
613
614.center {
615  text-align: center;
616}
617
618
619/* Menu*/
620
621.img {
622  background-size: cover;
623  background-repeat: no-repeat;
624  background-position: center center;
625}
626
627#colorlib-main-nav {
628  position: absolute;
629  top: 0;
630  bottom: 0;
631  right: 0;
632  padding: 0;
633  width: 100%;
634  height: 100%;
635  background: rgba(0, 0, 0, 0.99);
636  z-index: 1002;
637  text-align: center;
638  visibility: hidden;
639  opacity: 0;
640  -webkit-transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
641  -moz-transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
642  -ms-transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
643  -o-transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
644  transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
645  -webkit-transform: scale(0.1);
646  -moz-transform: scale(0);
647  -ms-transform: scale(0);
648  -o-transform: scale(0);
649  transform: scale(0);
650  overflow-y: scroll;
651}
652
653#colorlib-main-nav .colorlib-table {
654  display: table;
655  width: 100%;
656  height: 100%;
657}
658
659#colorlib-main-nav .colorlib-table .img {
660  position: absolute;
661  top: 0;
662  left: 0;
663  bottom: 0;
664  height: 100%;
665  width: 100%;
666  opacity: 1;
667}
668
669#colorlib-main-nav .colorlib-table .img:after {
670  position: absolute;
671  top: 0;
672  left: 0;
673  bottom: 0;
674  right: 0;
675  content: '';
676  background: rgba(0, 0, 0, 0.3);
677}
678
679#colorlib-main-nav .colorlib-table .colorlib-table-cell {
680  display: table-cell;
681  vertical-align: middle;
682}
683
684#colorlib-main-nav .colorlib-nav-toggle {
685  position: absolute;
686  top: 40px;
687  right: 40px;
688  padding: 20px;
689  height: 44px;
690  width: 44px;
691  line-height: 0;
692  padding: 0 !important;
693  visibility: hidden;
694  opacity: 0;
695  -webkit-transition: 0.3s;
696  -o-transition: 0.3s;
697  transition: 0.3s;
698}
699
700@media (prefers-reduced-motion: reduce) {
701  #colorlib-main-nav .colorlib-nav-toggle {
702    -webkit-transition: none;
703    -o-transition: none;
704    transition: none;
705  }
706}
707
708#colorlib-main-nav .colorlib-nav-toggle i {
709  top: 18px !important;
710  left: 0 !important;
711  margin: 0 !important;
712  padding: 0 !important;
713  line-height: 0;
714  text-indent: 0;
715}
716
717#colorlib-main-nav .colorlib-nav-toggle.show {
718  visibility: visible;
719  opacity: 1;
720}
721
722#colorlib-main-nav .colorlib-nav-toggle:hover i::before,
723#colorlib-main-nav .colorlib-nav-toggle:hover i::after {
724  content: '';
725  width: 40px;
726  height: 2px;
727  background: #fff;
728  position: absolute;
729  left: 0;
730}
731
732.menu-show #colorlib-main-nav {
733  visibility: visible;
734  opacity: 1;
735  -webkit-transform: scale(1);
736  -moz-transform: scale(1);
737  -ms-transform: scale(1);
738  -o-transform: scale(1);
739  transform: scale(1);
740}
741
742#colorlib-main-nav .logo {
743  font-size: 40px;
744  color: #fff;
745  text-transform: uppercase;
746  letter-spacing: 2px;
747  font-weight: 700;
748  position: relative;
749  display: inline-block;
750  margin-bottom: 0;
751  line-height: 1.5;
752  font-family: "Poppins", Arial, sans-serif;
753}
754
755#colorlib-main-nav .logo span {
756  font-size: 14px;
757  display: block;
758  font-weight: 300;
759  color: rgba(255, 255, 255, 0.8);
760  letter-spacing: 8px;
761}
762
763#colorlib-main-nav ul {
764  padding: 0;
765  margin: 0;
766  display: block;
767}
768
769@media (max-width: 767.98px) {
770  #colorlib-main-nav ul {
771    padding: 20px 0 0 0;
772  }
773}
774
775#colorlib-main-nav ul li {
776  padding: 0;
777  margin: 0;
778  list-style: none;
779  font-weight: 600;
780  font-size: 14px;
781  letter-spacing: 5px;
782  text-transform: uppercase;
783}
784
785#colorlib-main-nav ul li a {
786  display: block;
787  color: white;
788  padding: 5px 0;
789}
790
791#colorlib-main-nav ul li a span {
792  color: white;
793  position: relative;
794  padding: 0 10px;
795}
796
797#colorlib-main-nav ul li a span small {
798  position: absolute;
799  bottom: 7px;
800  left: -30px;
801  font-size: 16px;
802  color: rgba(255, 255, 255, 0.3);
803  border-bottom: 1px solid rgba(255, 255, 255, 0.3);
804}
805
806#colorlib-main-nav ul li a:hover,
807#colorlib-main-nav ul li a:active,
808#colorlib-main-nav ul li a:focus {
809  outline: none;
810  text-decoration: none;
811}
812
813#colorlib-main-nav ul li a:hover span:before,
814#colorlib-main-nav ul li a:active span:before,
815#colorlib-main-nav ul li a:focus span:before {
816  visibility: visible;
817  -webkit-transform: scaleX(1);
818  -moz-transform: scaleX(1);
819  -ms-transform: scaleX(1);
820  -o-transform: scaleX(1);
821  transform: scaleX(1);
822}
823
824#colorlib-main-nav ul li.active a span {
825  color: #f8b500;
826}
827
828#colorlib-main-nav ul li.active a span:before {
829  background: #fec771;
830  visibility: visible;
831  -webkit-transform: scaleX(1);
832  -moz-transform: scaleX(1);
833  -ms-transform: scaleX(1);
834  -o-transform: scaleX(1);
835  transform: scaleX(1);
836}
837
838header {
839  padding: 2em 0;
840  position: absolute;
841  top: 0;
842  left: 0;
843  right: 0;
844  z-index: 9;
845  margin: 0 auto;
846}
847
848@media (max-width: 767.98px) {
849  header {
850    padding: 1em 0;
851    position: absolute;
852  }
853}
854
855header .colorlib-navbar-brand {
856  float: left;
857}
858
859header .colorlib-navbar-brand .colorlib-logo {
860  font-size: 12px;
861  color: #fff;
862  letter-spacing: 5px;
863  font-weight: 600;
864  position: relative;
865  display: inline-block;
866  margin-bottom: 0;
867  line-height: 1.5;
868  font-family: "Poppins", Arial, sans-serif;
869  text-transform: uppercase;
870}
871
872header .colorlib-navbar-brand .colorlib-logo span {
873  font-size: 11px;
874  display: block;
875  font-weight: 300;
876  color: rgba(255, 255, 255, 0.8);
877  letter-spacing: 7px;
878}
879
880header .colorlib-navbar-brand .colorlib-logo i {
881  color: #fec771;
882  position: absolute;
883  top: -18px;
884  bottom: 0;
885  left: 7px;
886  font-size: 48px;
887}
888
889header .colorlib-navbar-brand .colorlib-logo:hover {
890  text-decoration: none !important;
891}
892
893header .colorlib-navbar-brand .colorlib-logo:active,
894header .colorlib-navbar-brand .colorlib-logo:focus {
895  outline: none;
896  text-decoration: none;
897}
898
899.colorlib-nav-toggle {
900  cursor: pointer;
901  text-decoration: none;
902}
903
904.colorlib-nav-toggle.active i::before,
905.colorlib-nav-toggle.active i::after {
906  background: #000;
907}
908
909.colorlib-nav-toggle.dark.active i::before,
910.colorlib-nav-toggle.dark.active i::after {
911  background: #000;
912}
913
914.colorlib-nav-toggle:hover,
915.colorlib-nav-toggle:focus,
916.colorlib-nav-toggle:active {
917  outline: none;
918  border-bottom: none !important;
919}
920
921.colorlib-nav-toggle i {
922  position: relative;
923  display: inline-block;
924  width: 20px;
925  height: 2px;
926  color: #000;
927  font: bold 14px/.4 Helvetica;
928  text-transform: uppercase;
929  text-indent: -55px;
930  background: #fff;
931  -webkit-transition: all .2s ease-out;
932  -o-transition: all .2s ease-out;
933  transition: all .2s ease-out;
934}
935
936.menu-show .colorlib-nav-toggle i {
937  background: #fff;
938  color: #fff;
939}
940
941.colorlib-nav-toggle i::before,
942.colorlib-nav-toggle i::after {
943  content: '';
944  width: 30px;
945  height: 2px;
946  background: #fff;
947  position: absolute;
948  left: 0;
949  -webkit-transition: 0.2s;
950  -o-transition: 0.2s;
951  transition: 0.2s;
952}
953
954.menu-show .colorlib-nav-toggle i::before,
955.menu-show .colorlib-nav-toggle i::after {
956  background: #fff;
957}
958
959@media (prefers-reduced-motion: reduce) {
960  .colorlib-nav-toggle i::before,
961  .colorlib-nav-toggle i::after {
962    -webkit-transition: none;
963    -o-transition: none;
964    transition: none;
965  }
966}
967
968.colorlib-nav-toggle.dark i {
969  position: relative;
970  color: #fff;
971  background: #fff;
972  -webkit-transition: all .2s ease-out;
973  -o-transition: all .2s ease-out;
974  transition: all .2s ease-out;
975}
976
977.colorlib-nav-toggle.dark i::before,
978.colorlib-nav-toggle.dark i::after {
979  background: #fff;
980  -webkit-transition: 0.2s;
981  -o-transition: 0.2s;
982  transition: 0.2s;
983}
984
985@media (prefers-reduced-motion: reduce) {
986  .colorlib-nav-toggle.dark i::before,
987  .colorlib-nav-toggle.dark i::after {
988    -webkit-transition: none;
989    -o-transition: none;
990    transition: none;
991  }
992}
993
994.colorlib-nav-toggle i::before {
995  top: -7px;
996}
997
998.colorlib-nav-toggle i::after {
999  bottom: -7px;
1000}
1001
1002.colorlib-nav-toggle:hover i::before {
1003  top: -10px;
1004}
1005
1006.colorlib-nav-toggle:hover i::after {
1007  bottom: -10px;
1008}
1009
1010.colorlib-nav-toggle.active i {
1011  background: transparent;
1012}
1013
1014.colorlib-nav-toggle.active i::before {
1015  top: 0;
1016  -webkit-transform: rotateZ(45deg);
1017  -moz-transform: rotateZ(45deg);
1018  -ms-transform: rotateZ(45deg);
1019  -o-transform: rotateZ(45deg);
1020  transform: rotateZ(45deg);
1021}
1022
1023.colorlib-nav-toggle.active i::after {
1024  bottom: 0;
1025  -webkit-transform: rotateZ(-45deg);
1026  -moz-transform: rotateZ(-45deg);
1027  -ms-transform: rotateZ(-45deg);
1028  -o-transform: rotateZ(-45deg);
1029  transform: rotateZ(-45deg);
1030}
1031
1032.colorlib-nav-toggle {
1033  float: right;
1034  z-index: 1003;
1035  position: relative;
1036  top: 0;
1037  right: 0;
1038  display: block;
1039  margin: 0 auto;
1040  cursor: pointer;
1041  margin-top: 0;
1042}
1043
1044@media (max-width: 767.98px) {
1045  .colorlib-nav-toggle {
1046    right: 10px;
1047  }
1048}
1049
1050.hero-wrap {
1051  background: #202020;
1052}
1053
1054.hero-wrap .slider-text .desc h1 {
1055  font-size: 6vw;
1056  font-weight: 700;
1057  color: #fff;
1058  text-transform: uppercase;
1059}
1060
1061.hero-wrap .slider-text .desc h3 {
1062  color: rgba(255, 255, 255, 0.8);
1063  font-size: 18px;
1064}
1&lt;!doctype html&gt;
2&lt;html lang=&quot;de&quot;&gt;
3    &lt;head&gt;
4        &lt;title&gt;VR&lt;/title&gt;
5        &lt;!-- Required meta tags --&gt;
6        &lt;meta charset=&quot;utf-8&quot;&gt;
7        &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1, shrink-to-fit=no&quot;&gt;
8
9        &lt;!-- Bootstrap CSS --&gt;
10        &lt;link rel=&quot;stylesheet&quot; href=&quot;https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css&quot; integrity=&quot;sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T&quot; crossorigin=&quot;anonymous&quot;&gt;
11        &lt;link rel=&quot;stylesheet&quot; href=&quot;style.css&quot;&gt;
12    &lt;/head&gt;
13    &lt;body&gt;
14        &lt;nav id=&quot;colorlib-main-nav&quot; role=&quot;navigation&quot;&gt;
15            &lt;a href=&quot;#&quot; class=&quot;js-colorlib-nav-toggle colorlib-nav-toggle active&quot;&gt;&lt;i&gt;&lt;/i&gt;&lt;/a&gt;
16            &lt;div class=&quot;js-fullheight colorlib-table&quot;&gt;
17                &lt;div class=&quot;img&quot; style=&quot;background-image: url(images/bg_3.jpg);&quot;&gt;&lt;/div&gt;
18                &lt;div class=&quot;colorlib-table-cell js-fullheight&quot;&gt;
19                &lt;div class=&quot;row no-gutters&quot;&gt;
20                    &lt;div class=&quot;col-md-12 text-center&quot;&gt;
21                    &lt;h1 class=&quot;mb-4&quot;&gt;&lt;a href=&quot;index.html&quot; class=&quot;logo&quot;&gt;Company Logo&lt;/a&gt;&lt;/h1&gt;
22                    &lt;ul&gt;
23                        &lt;li class=&quot;active&quot;&gt;&lt;a href=&quot;index.html&quot;&gt;&lt;span&gt;Home&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
24                        &lt;li&gt;&lt;a href=&quot;about.html&quot;&gt;&lt;span&gt;About&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
25                        &lt;li&gt;&lt;a href=&quot;blog.html&quot;&gt;&lt;span&gt;Blog&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
26                        &lt;li&gt;&lt;a href=&quot;contact.html&quot;&gt;&lt;span&gt;Contact&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
27                    &lt;/ul&gt;
28                    &lt;/div&gt;
29                &lt;/div&gt;
30                &lt;/div&gt;
31            &lt;/div&gt;
32        &lt;/nav&gt;
33
34        &lt;div class=&quot;header h-100&quot;&gt;
35            &lt;a href=&quot;#&quot; class=&quot;js-colorlib-nav-toggle colorlib-nav-toggle&quot;&gt;&lt;i&gt;&lt;/i&gt;&lt;/a&gt;
36            &lt;h1 id=&quot;h-100&quot; class=&quot;introduction h-100&quot;&gt;Virtual Reality&lt;/h1&gt;
37            
38        &lt;/div&gt;
39
40        &lt;div class=&quot;h-100&quot;&gt;
41            &lt;h2 class=&quot;center&quot;&gt;Was ist Virtual Reality (VR)&lt;/h2&gt;
42            &lt;p class=&quot;center&quot;&gt;Eine virtuelle Welt oder ein Computerspiel, in das der Nutzer mit Hilfe eines VR-Headsets vollständig eintauchen kann&lt;/p&gt;
43        &lt;/div&gt;
44        
45
46        &lt;div id=&quot;vr-headset-kategorien&quot; class=&quot;&quot;&gt;
47            &lt;!--Show each one as a full screen information - Picture or animation embeded at the left side - Text about it right--&gt;
48            &lt;div id=&quot;standalone&quot; class=&quot;row&quot;&gt;
49                &lt;!----&gt;
50                &lt;div class=&quot;vr-left_side container col-lg-6&quot;&gt;
51                    &lt;div class=&quot;sketchfab-embed-wrapper&quot;&gt; &lt;iframe title=&quot;Quest 2 Headset - FanArt&quot; frameborder=&quot;0&quot; allowfullscreen mozallowfullscreen=&quot;true&quot; webkitallowfullscreen=&quot;true&quot; allow=&quot;fullscreen; autoplay; vr&quot; xr-spatial-tracking execution-while-out-of-viewport execution-while-not-rendered web-share src=&quot;https://sketchfab.com/models/ee496aa030bf4f37a52b445196796af3/embed?autospin=1&amp;autostart=1&amp;ui_hint=0&quot;&gt; &lt;/iframe&gt; &lt;p style=&quot;font-size: 13px; font-weight: normal; margin: 5px; color: #4A4A4A;&quot;&gt; &lt;a href=&quot;https://sketchfab.com/3d-models/quest-2-headset-fanart-ee496aa030bf4f37a52b445196796af3?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=ee496aa030bf4f37a52b445196796af3&quot; target=&quot;_blank&quot; style=&quot;font-weight: bold; color: #1CAAD9;&quot;&gt; Quest 2 Headset - FanArt &lt;/a&gt; by &lt;a href=&quot;https://sketchfab.com/josevillotguisan?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=ee496aa030bf4f37a52b445196796af3&quot; target=&quot;_blank&quot; style=&quot;font-weight: bold; color: #1CAAD9;&quot;&gt; joseVG &lt;/a&gt; on &lt;a href=&quot;https://sketchfab.com?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=ee496aa030bf4f37a52b445196796af3&quot; target=&quot;_blank&quot; style=&quot;font-weight: bold; color: #1CAAD9;&quot;&gt;Sketchfab&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
52                &lt;/div&gt;
53                
54                &lt;div class=&quot;vr-right_side container col-lg-6&quot;&gt;
55                    &lt;h3&gt;Standalone&lt;/h3&gt;
56                
57                    &lt;p&gt;Standalone VR-Headsets ben&amp;ouml;tigen nur WLAN und Strom. In der VR-Brille ist ein eigener Prozessor eingebaut. Damit ist dieser Art super f&amp;uuml;r Anf&amp;auml;nger geeignet&lt;/p&gt;
58
59                    &lt;p&gt;
60                    Vorteile:&lt;br /&gt;
61                    Kein guter PC ben&amp;ouml;tigt&lt;br /&gt;
62                    Niedriger Einstiegspreis trotz guter Hardware&lt;br/&gt;
63                    Gut optimierbar, da es fĂźr das Heaset nur einen Prozessor gibt&lt;/p&gt;
64                    
65                    &lt;p&gt;Nachteile:&lt;br /&gt;
66                    Je nach Headset schlechte Performance bei fordernden Spielen&lt;/p&gt;
67                &lt;/div&gt;
68                
69            &lt;/div&gt;
70
71            &lt;div id=&quot;pc&quot; class=&quot;row&quot;&gt;
72                &lt;div class=&quot;vr-left_side container col-lg-6&quot;&gt;
73                    &lt;div class=&quot;sketchfab-embed-wrapper&quot;&gt; &lt;iframe title=&quot;HTC Vive&quot; frameborder=&quot;0&quot; allowfullscreen mozallowfullscreen=&quot;true&quot; webkitallowfullscreen=&quot;true&quot; allow=&quot;fullscreen; autoplay; vr&quot; xr-spatial-tracking execution-while-out-of-viewport execution-while-not-rendered web-share src=&quot;https://sketchfab.com/models/4cee0970fe60444ead77d41fbb052a33/embed?autospin=1&amp;autostart=1&amp;ui_hint=0&quot;&gt; &lt;/iframe&gt; &lt;p style=&quot;font-size: 13px; font-weight: normal; margin: 5px; color: #4A4A4A;&quot;&gt; &lt;a href=&quot;https://sketchfab.com/3d-models/htc-vive-4cee0970fe60444ead77d41fbb052a33?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=4cee0970fe60444ead77d41fbb052a33&quot; target=&quot;_blank&quot; style=&quot;font-weight: bold; color: #1CAAD9;&quot;&gt; HTC Vive &lt;/a&gt; by &lt;a href=&quot;https://sketchfab.com/EternalRealm?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=4cee0970fe60444ead77d41fbb052a33&quot; target=&quot;_blank&quot; style=&quot;font-weight: bold; color: #1CAAD9;&quot;&gt; Eternal Realm &lt;/a&gt; on &lt;a href=&quot;https://sketchfab.com?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=4cee0970fe60444ead77d41fbb052a33&quot; target=&quot;_blank&quot; style=&quot;font-weight: bold; color: #1CAAD9;&quot;&gt;Sketchfab&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
74                &lt;/div&gt;
75                
76                &lt;div class=&quot;vr-right_side container col-lg-6&quot;&gt;
77                    &lt;h3&gt;PC-VR&lt;/h3&gt;
78                    &lt;p&gt;PC-VR Headsets funktionieren nur zusammen mit einem PC. Sie werden &amp;uuml;ber ein langes Kabel verbunden. Mit einem passenden PC kann ein PC-VR Headset ein extrem sch&amp;ouml;nes Bild liefern. Der Einstiegspreis ist jedoch sehr hoch, daher sind sie vor allem f&amp;uuml;r Enthusiasten geeignet&lt;/p&gt;
79
80                    &lt;p&gt;Vorteile:&lt;br /&gt;
81                    Hohe Aufl&amp;ouml;sung&lt;br /&gt;
82                    Wenig Lags&lt;/p&gt;
83
84                    &lt;p&gt;Nachteile:&lt;br /&gt;
85                    Hoher Einstiegspreis&lt;/p&gt;
86                &lt;/div&gt;
87            &lt;/div&gt;
88
89            &lt;div id=&quot;fulldive&quot; class=&quot;row&quot;&gt;
90                &lt;div class=&quot;vr-left_side container col-lg-6&quot;&gt;
91                    &lt;div class=&quot;sketchfab-embed-wrapper&quot;&gt; &lt;iframe title=&quot;neuraLink&quot; frameborder=&quot;0&quot; allowfullscreen mozallowfullscreen=&quot;true&quot; webkitallowfullscreen=&quot;true&quot; allow=&quot;fullscreen; autoplay; vr&quot; xr-spatial-tracking execution-while-out-of-viewport execution-while-not-rendered web-share src=&quot;https://sketchfab.com/models/6a157c614d0641c2a2d2c7c7628fb01b/embed?autospin=1&amp;autostart=1&quot;&gt; &lt;/iframe&gt; &lt;p style=&quot;font-size: 13px; font-weight: normal; margin: 5px; color: #4A4A4A;&quot;&gt; &lt;a href=&quot;https://sketchfab.com/3d-models/neuralink-6a157c614d0641c2a2d2c7c7628fb01b?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=6a157c614d0641c2a2d2c7c7628fb01b&quot; target=&quot;_blank&quot; style=&quot;font-weight: bold; color: #1CAAD9;&quot;&gt; neuraLink &lt;/a&gt; by &lt;a href=&quot;https://sketchfab.com/rfarencibia?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=6a157c614d0641c2a2d2c7c7628fb01b&quot; target=&quot;_blank&quot; style=&quot;font-weight: bold; color: #1CAAD9;&quot;&gt; rfarencibia &lt;/a&gt; on &lt;a href=&quot;https://sketchfab.com?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=6a157c614d0641c2a2d2c7c7628fb01b&quot; target=&quot;_blank&quot; style=&quot;font-weight: bold; color: #1CAAD9;&quot;&gt;Sketchfab&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;
92                &lt;/div&gt;
93                
94                &lt;div class=&quot;vr-right_side container col-lg-6&quot;&gt;
95                    &lt;h3&gt;Full-Dive VR&lt;/h3&gt;
96                    &lt;p&gt;Tauche komplett in die VR-Welt ein. Full-Dive VR-Headsets befinden sich bereits in Entwicklung. Bei diesem Ansatz wird keine VR-Brille verwendet, die wie ein Monitor funktioniert sondern Full-Dive VR-Headsets greifen direkt auf die Seh-, Tast-, und weitere Nerven zu. Daher ist dies auch die umstrittenste Technologie&lt;/p&gt;
97
98                    &lt;p&gt;Vorteile:&lt;br /&gt;
99                    Unvergleichliche Immersion&lt;/p&gt;
100
101                    &lt;p&gt;Nachteile:&lt;br /&gt;
102                    Sicherheit - Z.B. In der VR-Welt einsperren - Unwahrscheinlich aber m&amp;ouml;glich&lt;/p&gt;
103                &lt;/div&gt;
104            &lt;/div&gt;
105
106        &lt;/div&gt;
107
108        
109
110      
111        &lt;!-- Optional JavaScript --&gt;
112        &lt;!-- jQuery first, then Popper.js, then Bootstrap JS --&gt;
113        &lt;script src=&quot;https://code.jquery.com/jquery-3.3.1.slim.min.js&quot; integrity=&quot;sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo&quot; crossorigin=&quot;anonymous&quot;&gt;&lt;/script&gt;
114        &lt;script src=&quot;https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js&quot; integrity=&quot;sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1&quot; crossorigin=&quot;anonymous&quot;&gt;&lt;/script&gt;
115        &lt;script src=&quot;https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js&quot; integrity=&quot;sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM&quot; crossorigin=&quot;anonymous&quot;&gt;&lt;/script&gt;
116        &lt;script&gt;
117            (function($) {
118
119            &quot;use strict&quot;;
120
121            var fullHeight = function() {
122
123                $('.js-fullheight').css('height', $(window).height());
124                $(window).resize(function(){
125                    $('.js-fullheight').css('height', $(window).height());
126                });
127
128            };
129            fullHeight();
130
131            var burgerMenu = function() {
132
133                $('.js-colorlib-nav-toggle').on('click', function(event) {
134                    event.preventDefault();
135                    var $this = $(this);
136                    if( $('body').hasClass('menu-show') ) {
137                        $('body').removeClass('menu-show');
138                        $('#colorlib-main-nav &gt; .js-colorlib-nav-toggle').removeClass('show');
139                    } else {
140                        $('body').addClass('menu-show');
141                        setTimeout(function(){
142                            $('#colorlib-main-nav &gt; .js-colorlib-nav-toggle').addClass('show');
143                        }, 900);
144                    }
145                })
146            };
147            burgerMenu();
148
149
150            })(jQuery);
151        &lt;/script&gt;
152    &lt;/body&gt;
153&lt;/html&gt;
154html, body {
155    background-color: black;
156
157    color: white;
158    height: 100%;
159    min-height: 100%;
160
161}
162
163#h-100{
164    /*height: 100%;
165    min-height: 100%;*/
166
167    /*padding-top: 30%;
168    padding-bottom: 30%;*/
169
170    text-align: center;
171}
172
173.introduction {
174    background-image: url(&quot;beat-saber-intro.jpg&quot;);
175    background-repeat: no-repeat;
176    background-attachment: fixed;
177    background-position: center;
178    background-size: cover;
179}
180
181.row{
182    padding-bottom: 10%;
183}
184
185.sketchfab-embed-wrapper{
186    height: 100%;
187    margin-bottom: 200px;
188}
189
190iframe{
191    height: 100%;
192    width: 100%;
193}
194
195header {
196    height: 100%;
197    min-height: 100%;
198}
199
200.center{
201    text-align: center;
202}
203
204/* Menu*/
205.img {
206    background-size: cover;
207    background-repeat: no-repeat;
208    background-position: center center; }
209  
210  #colorlib-main-nav {
211    position: absolute;
212    top: 0;
213    bottom: 0;
214    right: 0;
215    padding: 0;
216    width: 100%;
217    height: 100%;
218    background: rgba(0, 0, 0, 0.99);
219    z-index: 1002;
220    text-align: center;
221    visibility: hidden;
222    opacity: 0;
223    -webkit-transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
224    -moz-transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
225    -ms-transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
226    -o-transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
227    transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
228    -webkit-transform: scale(0.1);
229    -moz-transform: scale(0);
230    -ms-transform: scale(0);
231    -o-transform: scale(0);
232    transform: scale(0);
233    overflow-y: scroll; }
234    #colorlib-main-nav .colorlib-table {
235      display: table;
236      width: 100%;
237      height: 100%; }
238      #colorlib-main-nav .colorlib-table .img {
239        position: absolute;
240        top: 0;
241        left: 0;
242        bottom: 0;
243        height: 100%;
244        width: 100%;
245        opacity: 1; }
246        #colorlib-main-nav .colorlib-table .img:after {
247          position: absolute;
248          top: 0;
249          left: 0;
250          bottom: 0;
251          right: 0;
252          content: '';
253          background: rgba(0, 0, 0, 0.3); }
254      #colorlib-main-nav .colorlib-table .colorlib-table-cell {
255        display: table-cell;
256        vertical-align: middle; }
257    #colorlib-main-nav .colorlib-nav-toggle {
258      position: absolute;
259      top: 40px;
260      right: 40px;
261      padding: 20px;
262      height: 44px;
263      width: 44px;
264      line-height: 0;
265      padding: 0 !important;
266      visibility: hidden;
267      opacity: 0;
268      -webkit-transition: 0.3s;
269      -o-transition: 0.3s;
270      transition: 0.3s; }
271      @media (prefers-reduced-motion: reduce) {
272        #colorlib-main-nav .colorlib-nav-toggle {
273          -webkit-transition: none;
274          -o-transition: none;
275          transition: none; } }
276      #colorlib-main-nav .colorlib-nav-toggle i {
277        top: 18px !important;
278        left: 0 !important;
279        margin: 0 !important;
280        padding: 0 !important;
281        line-height: 0;
282        text-indent: 0; }
283      #colorlib-main-nav .colorlib-nav-toggle.show {
284        visibility: visible;
285        opacity: 1; }
286      #colorlib-main-nav .colorlib-nav-toggle:hover i::before, #colorlib-main-nav .colorlib-nav-toggle:hover i::after {
287        content: '';
288        width: 40px;
289        height: 2px;
290        background: #fff;
291        position: absolute;
292        left: 0; }
293    .menu-show #colorlib-main-nav {
294      visibility: visible;
295      opacity: 1;
296      -webkit-transform: scale(1);
297      -moz-transform: scale(1);
298      -ms-transform: scale(1);
299      -o-transform: scale(1);
300      transform: scale(1); }
301    #colorlib-main-nav .logo {
302      font-size: 40px;
303      color: #fff;
304      text-transform: uppercase;
305      letter-spacing: 2px;
306      font-weight: 700;
307      position: relative;
308      display: inline-block;
309      margin-bottom: 0;
310      line-height: 1.5;
311      font-family: &quot;Poppins&quot;, Arial, sans-serif; }
312      #colorlib-main-nav .logo span {
313        font-size: 14px;
314        display: block;
315        font-weight: 300;
316        color: rgba(255, 255, 255, 0.8);
317        letter-spacing: 8px; }
318    #colorlib-main-nav ul {
319      padding: 0;
320      margin: 0;
321      display: block; }
322      @media (max-width: 767.98px) {
323        #colorlib-main-nav ul {
324          padding: 20px 0 0 0; } }
325      #colorlib-main-nav ul li {
326        padding: 0;
327        margin: 0;
328        list-style: none;
329        font-weight: 600;
330        font-size: 14px;
331        letter-spacing: 5px;
332        text-transform: uppercase; }
333        #colorlib-main-nav ul li a {
334          display: block;
335          color: white;
336          padding: 5px 0; }
337          #colorlib-main-nav ul li a span {
338            color: white;
339            position: relative;
340            padding: 0 10px; }
341            #colorlib-main-nav ul li a span small {
342              position: absolute;
343              bottom: 7px;
344              left: -30px;
345              font-size: 16px;
346              color: rgba(255, 255, 255, 0.3);
347              border-bottom: 1px solid rgba(255, 255, 255, 0.3); }
348          #colorlib-main-nav ul li a:hover, #colorlib-main-nav ul li a:active, #colorlib-main-nav ul li a:focus {
349            outline: none;
350            text-decoration: none; }
351            #colorlib-main-nav ul li a:hover span:before, #colorlib-main-nav ul li a:active span:before, #colorlib-main-nav ul li a:focus span:before {
352              visibility: visible;
353              -webkit-transform: scaleX(1);
354              -moz-transform: scaleX(1);
355              -ms-transform: scaleX(1);
356              -o-transform: scaleX(1);
357              transform: scaleX(1); }
358        #colorlib-main-nav ul li.active a span {
359          color: #f8b500; }
360          #colorlib-main-nav ul li.active a span:before {
361            background: #fec771;
362            visibility: visible;
363            -webkit-transform: scaleX(1);
364            -moz-transform: scaleX(1);
365            -ms-transform: scaleX(1);
366            -o-transform: scaleX(1);
367            transform: scaleX(1); }
368  
369  header {
370    padding: 2em 0;
371    position: absolute;
372    top: 0;
373    left: 0;
374    right: 0;
375    z-index: 9;
376    margin: 0 auto; }
377    @media (max-width: 767.98px) {
378      header {
379        padding: 1em 0;
380        position: absolute; } }
381    header .colorlib-navbar-brand {
382      float: left; }
383      header .colorlib-navbar-brand .colorlib-logo {
384        font-size: 12px;
385        color: #fff;
386        letter-spacing: 5px;
387        font-weight: 600;
388        position: relative;
389        display: inline-block;
390        margin-bottom: 0;
391        line-height: 1.5;
392        font-family: &quot;Poppins&quot;, Arial, sans-serif;
393        text-transform: uppercase; }
394        header .colorlib-navbar-brand .colorlib-logo span {
395          font-size: 11px;
396          display: block;
397          font-weight: 300;
398          color: rgba(255, 255, 255, 0.8);
399          letter-spacing: 7px; }
400        header .colorlib-navbar-brand .colorlib-logo i {
401          color: #fec771;
402          position: absolute;
403          top: -18px;
404          bottom: 0;
405          left: 7px;
406          font-size: 48px; }
407        header .colorlib-navbar-brand .colorlib-logo:hover {
408          text-decoration: none !important; }
409        header .colorlib-navbar-brand .colorlib-logo:active, header .colorlib-navbar-brand .colorlib-logo:focus {
410          outline: none;
411          text-decoration: none; }
412  
413  .colorlib-nav-toggle {
414    cursor: pointer;
415    text-decoration: none; }
416    .colorlib-nav-toggle.active i::before, .colorlib-nav-toggle.active i::after {
417      background: #000; }
418    .colorlib-nav-toggle.dark.active i::before, .colorlib-nav-toggle.dark.active i::after {
419      background: #000; }
420    .colorlib-nav-toggle:hover, .colorlib-nav-toggle:focus, .colorlib-nav-toggle:active {
421      outline: none;
422      border-bottom: none !important; }
423    .colorlib-nav-toggle i {
424      position: relative;
425      display: inline-block;
426      width: 20px;
427      height: 2px;
428      color: #000;
429      font: bold 14px/.4 Helvetica;
430      text-transform: uppercase;
431      text-indent: -55px;
432      background: #fff;
433      -webkit-transition: all .2s ease-out;
434      -o-transition: all .2s ease-out;
435      transition: all .2s ease-out; }
436      .menu-show .colorlib-nav-toggle i {
437        background: #fff;
438        color: #fff; }
439      .colorlib-nav-toggle i::before, .colorlib-nav-toggle i::after {
440        content: '';
441        width: 30px;
442        height: 2px;
443        background: #fff;
444        position: absolute;
445        left: 0;
446        -webkit-transition: 0.2s;
447        -o-transition: 0.2s;
448        transition: 0.2s; }
449        .menu-show .colorlib-nav-toggle i::before, .menu-show .colorlib-nav-toggle i::after {
450          background: #fff; }
451        @media (prefers-reduced-motion: reduce) {
452          .colorlib-nav-toggle i::before, .colorlib-nav-toggle i::after {
453            -webkit-transition: none;
454            -o-transition: none;
455            transition: none; } }
456    .colorlib-nav-toggle.dark i {
457      position: relative;
458      color: #fff;
459      background: #fff;
460      -webkit-transition: all .2s ease-out;
461      -o-transition: all .2s ease-out;
462      transition: all .2s ease-out; }
463      .colorlib-nav-toggle.dark i::before, .colorlib-nav-toggle.dark i::after {
464        background: #fff;
465        -webkit-transition: 0.2s;
466        -o-transition: 0.2s;
467        transition: 0.2s; }
468        @media (prefers-reduced-motion: reduce) {
469          .colorlib-nav-toggle.dark i::before, .colorlib-nav-toggle.dark i::after {
470            -webkit-transition: none;
471            -o-transition: none;
472            transition: none; } }
473  
474  .colorlib-nav-toggle i::before {
475    top: -7px; }
476  
477  .colorlib-nav-toggle i::after {
478    bottom: -7px; }
479  
480  .colorlib-nav-toggle:hover i::before {
481    top: -10px; }
482  
483  .colorlib-nav-toggle:hover i::after {
484    bottom: -10px; }
485  
486  .colorlib-nav-toggle.active i {
487    background: transparent; }
488  
489  .colorlib-nav-toggle.active i::before {
490    top: 0;
491    -webkit-transform: rotateZ(45deg);
492    -moz-transform: rotateZ(45deg);
493    -ms-transform: rotateZ(45deg);
494    -o-transform: rotateZ(45deg);
495    transform: rotateZ(45deg); }
496  
497  .colorlib-nav-toggle.active i::after {
498    bottom: 0;
499    -webkit-transform: rotateZ(-45deg);
500    -moz-transform: rotateZ(-45deg);
501    -ms-transform: rotateZ(-45deg);
502    -o-transform: rotateZ(-45deg);
503    transform: rotateZ(-45deg); }
504  
505  .colorlib-nav-toggle {
506    float: right;
507    z-index: 1003;
508    position: relative;
509    top: 0;
510    right: 0;
511    display: block;
512    margin: 0 auto;
513    cursor: pointer;
514    margin-top: 0; }
515    @media (max-width: 767.98px) {
516      .colorlib-nav-toggle {
517        right: 10px; } }
518  
519  .hero-wrap {
520    background: #202020; }
521    .hero-wrap .slider-text .desc h1 {
522      font-size: 6vw;
523      font-weight: 700;
524      color: #fff;
525      text-transform: uppercase; }
526    .hero-wrap .slider-text .desc h3 {
527      color: rgba(255, 255, 255, 0.8);
528      font-size: 18px; }
529.row {
530  display: -ms-flexbox;
531  display: flex;
532  -ms-flex-wrap: wrap;
533  flex-wrap: wrap;
534  /* margin-right: -15px; */
535  /* margin-left: -15px; */
536}
537(function($) {
538
539  "use strict";
540
541  var fullHeight = function() {
542
543    $('.js-fullheight').css('height', $(window).height());
544    $(window).resize(function() {
545      $('.js-fullheight').css('height', $(window).height());
546    });
547
548  };
549  fullHeight();
550
551  var burgerMenu = function() {
552
553    $('.js-colorlib-nav-toggle').on('click', function(event) {
554      event.preventDefault();
555      var $this = $(this);
556      if ($('body').hasClass('menu-show')) {
557        $('body').removeClass('menu-show');
558        $('#colorlib-main-nav &gt; .js-colorlib-nav-toggle').removeClass('show');
559      } else {
560        $('body').addClass('menu-show');
561        setTimeout(function() {
562          $('#colorlib-main-nav &gt; .js-colorlib-nav-toggle').addClass('show');
563        }, 900);
564      }
565    })
566  };
567  burgerMenu();
568
569
570})(jQuery);html,
571body {
572  background-color: black;
573  color: white;
574  height: 100%;
575  min-height: 100%;
576  overflow-x: hidden;
577}
578
579#h-100 {
580  /*height: 100%;
581    min-height: 100%;*/
582  /*padding-top: 30%;
583    padding-bottom: 30%;*/
584  text-align: center;
585}
586
587.introduction {
588  background-image: url("beat-saber-intro.jpg");
589  background-repeat: no-repeat;
590  background-attachment: fixed;
591  background-position: center;
592  background-size: cover;
593}
594
595.row {
596  padding-bottom: 10%;
597}
598
599.sketchfab-embed-wrapper {
600  height: 100%;
601  margin-bottom: 200px;
602}
603
604iframe {
605  height: 100%;
606  width: 100%;
607}
608
609header {
610  height: 100%;
611  min-height: 100%;
612}
613
614.center {
615  text-align: center;
616}
617
618
619/* Menu*/
620
621.img {
622  background-size: cover;
623  background-repeat: no-repeat;
624  background-position: center center;
625}
626
627#colorlib-main-nav {
628  position: absolute;
629  top: 0;
630  bottom: 0;
631  right: 0;
632  padding: 0;
633  width: 100%;
634  height: 100%;
635  background: rgba(0, 0, 0, 0.99);
636  z-index: 1002;
637  text-align: center;
638  visibility: hidden;
639  opacity: 0;
640  -webkit-transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
641  -moz-transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
642  -ms-transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
643  -o-transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
644  transition: all 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
645  -webkit-transform: scale(0.1);
646  -moz-transform: scale(0);
647  -ms-transform: scale(0);
648  -o-transform: scale(0);
649  transform: scale(0);
650  overflow-y: scroll;
651}
652
653#colorlib-main-nav .colorlib-table {
654  display: table;
655  width: 100%;
656  height: 100%;
657}
658
659#colorlib-main-nav .colorlib-table .img {
660  position: absolute;
661  top: 0;
662  left: 0;
663  bottom: 0;
664  height: 100%;
665  width: 100%;
666  opacity: 1;
667}
668
669#colorlib-main-nav .colorlib-table .img:after {
670  position: absolute;
671  top: 0;
672  left: 0;
673  bottom: 0;
674  right: 0;
675  content: '';
676  background: rgba(0, 0, 0, 0.3);
677}
678
679#colorlib-main-nav .colorlib-table .colorlib-table-cell {
680  display: table-cell;
681  vertical-align: middle;
682}
683
684#colorlib-main-nav .colorlib-nav-toggle {
685  position: absolute;
686  top: 40px;
687  right: 40px;
688  padding: 20px;
689  height: 44px;
690  width: 44px;
691  line-height: 0;
692  padding: 0 !important;
693  visibility: hidden;
694  opacity: 0;
695  -webkit-transition: 0.3s;
696  -o-transition: 0.3s;
697  transition: 0.3s;
698}
699
700@media (prefers-reduced-motion: reduce) {
701  #colorlib-main-nav .colorlib-nav-toggle {
702    -webkit-transition: none;
703    -o-transition: none;
704    transition: none;
705  }
706}
707
708#colorlib-main-nav .colorlib-nav-toggle i {
709  top: 18px !important;
710  left: 0 !important;
711  margin: 0 !important;
712  padding: 0 !important;
713  line-height: 0;
714  text-indent: 0;
715}
716
717#colorlib-main-nav .colorlib-nav-toggle.show {
718  visibility: visible;
719  opacity: 1;
720}
721
722#colorlib-main-nav .colorlib-nav-toggle:hover i::before,
723#colorlib-main-nav .colorlib-nav-toggle:hover i::after {
724  content: '';
725  width: 40px;
726  height: 2px;
727  background: #fff;
728  position: absolute;
729  left: 0;
730}
731
732.menu-show #colorlib-main-nav {
733  visibility: visible;
734  opacity: 1;
735  -webkit-transform: scale(1);
736  -moz-transform: scale(1);
737  -ms-transform: scale(1);
738  -o-transform: scale(1);
739  transform: scale(1);
740}
741
742#colorlib-main-nav .logo {
743  font-size: 40px;
744  color: #fff;
745  text-transform: uppercase;
746  letter-spacing: 2px;
747  font-weight: 700;
748  position: relative;
749  display: inline-block;
750  margin-bottom: 0;
751  line-height: 1.5;
752  font-family: "Poppins", Arial, sans-serif;
753}
754
755#colorlib-main-nav .logo span {
756  font-size: 14px;
757  display: block;
758  font-weight: 300;
759  color: rgba(255, 255, 255, 0.8);
760  letter-spacing: 8px;
761}
762
763#colorlib-main-nav ul {
764  padding: 0;
765  margin: 0;
766  display: block;
767}
768
769@media (max-width: 767.98px) {
770  #colorlib-main-nav ul {
771    padding: 20px 0 0 0;
772  }
773}
774
775#colorlib-main-nav ul li {
776  padding: 0;
777  margin: 0;
778  list-style: none;
779  font-weight: 600;
780  font-size: 14px;
781  letter-spacing: 5px;
782  text-transform: uppercase;
783}
784
785#colorlib-main-nav ul li a {
786  display: block;
787  color: white;
788  padding: 5px 0;
789}
790
791#colorlib-main-nav ul li a span {
792  color: white;
793  position: relative;
794  padding: 0 10px;
795}
796
797#colorlib-main-nav ul li a span small {
798  position: absolute;
799  bottom: 7px;
800  left: -30px;
801  font-size: 16px;
802  color: rgba(255, 255, 255, 0.3);
803  border-bottom: 1px solid rgba(255, 255, 255, 0.3);
804}
805
806#colorlib-main-nav ul li a:hover,
807#colorlib-main-nav ul li a:active,
808#colorlib-main-nav ul li a:focus {
809  outline: none;
810  text-decoration: none;
811}
812
813#colorlib-main-nav ul li a:hover span:before,
814#colorlib-main-nav ul li a:active span:before,
815#colorlib-main-nav ul li a:focus span:before {
816  visibility: visible;
817  -webkit-transform: scaleX(1);
818  -moz-transform: scaleX(1);
819  -ms-transform: scaleX(1);
820  -o-transform: scaleX(1);
821  transform: scaleX(1);
822}
823
824#colorlib-main-nav ul li.active a span {
825  color: #f8b500;
826}
827
828#colorlib-main-nav ul li.active a span:before {
829  background: #fec771;
830  visibility: visible;
831  -webkit-transform: scaleX(1);
832  -moz-transform: scaleX(1);
833  -ms-transform: scaleX(1);
834  -o-transform: scaleX(1);
835  transform: scaleX(1);
836}
837
838header {
839  padding: 2em 0;
840  position: absolute;
841  top: 0;
842  left: 0;
843  right: 0;
844  z-index: 9;
845  margin: 0 auto;
846}
847
848@media (max-width: 767.98px) {
849  header {
850    padding: 1em 0;
851    position: absolute;
852  }
853}
854
855header .colorlib-navbar-brand {
856  float: left;
857}
858
859header .colorlib-navbar-brand .colorlib-logo {
860  font-size: 12px;
861  color: #fff;
862  letter-spacing: 5px;
863  font-weight: 600;
864  position: relative;
865  display: inline-block;
866  margin-bottom: 0;
867  line-height: 1.5;
868  font-family: "Poppins", Arial, sans-serif;
869  text-transform: uppercase;
870}
871
872header .colorlib-navbar-brand .colorlib-logo span {
873  font-size: 11px;
874  display: block;
875  font-weight: 300;
876  color: rgba(255, 255, 255, 0.8);
877  letter-spacing: 7px;
878}
879
880header .colorlib-navbar-brand .colorlib-logo i {
881  color: #fec771;
882  position: absolute;
883  top: -18px;
884  bottom: 0;
885  left: 7px;
886  font-size: 48px;
887}
888
889header .colorlib-navbar-brand .colorlib-logo:hover {
890  text-decoration: none !important;
891}
892
893header .colorlib-navbar-brand .colorlib-logo:active,
894header .colorlib-navbar-brand .colorlib-logo:focus {
895  outline: none;
896  text-decoration: none;
897}
898
899.colorlib-nav-toggle {
900  cursor: pointer;
901  text-decoration: none;
902}
903
904.colorlib-nav-toggle.active i::before,
905.colorlib-nav-toggle.active i::after {
906  background: #000;
907}
908
909.colorlib-nav-toggle.dark.active i::before,
910.colorlib-nav-toggle.dark.active i::after {
911  background: #000;
912}
913
914.colorlib-nav-toggle:hover,
915.colorlib-nav-toggle:focus,
916.colorlib-nav-toggle:active {
917  outline: none;
918  border-bottom: none !important;
919}
920
921.colorlib-nav-toggle i {
922  position: relative;
923  display: inline-block;
924  width: 20px;
925  height: 2px;
926  color: #000;
927  font: bold 14px/.4 Helvetica;
928  text-transform: uppercase;
929  text-indent: -55px;
930  background: #fff;
931  -webkit-transition: all .2s ease-out;
932  -o-transition: all .2s ease-out;
933  transition: all .2s ease-out;
934}
935
936.menu-show .colorlib-nav-toggle i {
937  background: #fff;
938  color: #fff;
939}
940
941.colorlib-nav-toggle i::before,
942.colorlib-nav-toggle i::after {
943  content: '';
944  width: 30px;
945  height: 2px;
946  background: #fff;
947  position: absolute;
948  left: 0;
949  -webkit-transition: 0.2s;
950  -o-transition: 0.2s;
951  transition: 0.2s;
952}
953
954.menu-show .colorlib-nav-toggle i::before,
955.menu-show .colorlib-nav-toggle i::after {
956  background: #fff;
957}
958
959@media (prefers-reduced-motion: reduce) {
960  .colorlib-nav-toggle i::before,
961  .colorlib-nav-toggle i::after {
962    -webkit-transition: none;
963    -o-transition: none;
964    transition: none;
965  }
966}
967
968.colorlib-nav-toggle.dark i {
969  position: relative;
970  color: #fff;
971  background: #fff;
972  -webkit-transition: all .2s ease-out;
973  -o-transition: all .2s ease-out;
974  transition: all .2s ease-out;
975}
976
977.colorlib-nav-toggle.dark i::before,
978.colorlib-nav-toggle.dark i::after {
979  background: #fff;
980  -webkit-transition: 0.2s;
981  -o-transition: 0.2s;
982  transition: 0.2s;
983}
984
985@media (prefers-reduced-motion: reduce) {
986  .colorlib-nav-toggle.dark i::before,
987  .colorlib-nav-toggle.dark i::after {
988    -webkit-transition: none;
989    -o-transition: none;
990    transition: none;
991  }
992}
993
994.colorlib-nav-toggle i::before {
995  top: -7px;
996}
997
998.colorlib-nav-toggle i::after {
999  bottom: -7px;
1000}
1001
1002.colorlib-nav-toggle:hover i::before {
1003  top: -10px;
1004}
1005
1006.colorlib-nav-toggle:hover i::after {
1007  bottom: -10px;
1008}
1009
1010.colorlib-nav-toggle.active i {
1011  background: transparent;
1012}
1013
1014.colorlib-nav-toggle.active i::before {
1015  top: 0;
1016  -webkit-transform: rotateZ(45deg);
1017  -moz-transform: rotateZ(45deg);
1018  -ms-transform: rotateZ(45deg);
1019  -o-transform: rotateZ(45deg);
1020  transform: rotateZ(45deg);
1021}
1022
1023.colorlib-nav-toggle.active i::after {
1024  bottom: 0;
1025  -webkit-transform: rotateZ(-45deg);
1026  -moz-transform: rotateZ(-45deg);
1027  -ms-transform: rotateZ(-45deg);
1028  -o-transform: rotateZ(-45deg);
1029  transform: rotateZ(-45deg);
1030}
1031
1032.colorlib-nav-toggle {
1033  float: right;
1034  z-index: 1003;
1035  position: relative;
1036  top: 0;
1037  right: 0;
1038  display: block;
1039  margin: 0 auto;
1040  cursor: pointer;
1041  margin-top: 0;
1042}
1043
1044@media (max-width: 767.98px) {
1045  .colorlib-nav-toggle {
1046    right: 10px;
1047  }
1048}
1049
1050.hero-wrap {
1051  background: #202020;
1052}
1053
1054.hero-wrap .slider-text .desc h1 {
1055  font-size: 6vw;
1056  font-weight: 700;
1057  color: #fff;
1058  text-transform: uppercase;
1059}
1060
1061.hero-wrap .slider-text .desc h3 {
1062  color: rgba(255, 255, 255, 0.8);
1063  font-size: 18px;
1064}&lt;!-- Bootstrap CSS --&gt;
1065&lt;link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous"&gt;
1066
1067&lt;nav id="colorlib-main-nav" role="navigation"&gt;
1068  &lt;a href="#" class="js-colorlib-nav-toggle colorlib-nav-toggle active"&gt;&lt;i&gt;&lt;/i&gt;&lt;/a&gt;
1069  &lt;div class="js-fullheight colorlib-table"&gt;
1070    &lt;div class="img" style="background-image: url(images/bg_3.jpg);"&gt;&lt;/div&gt;
1071    &lt;div class="colorlib-table-cell js-fullheight"&gt;
1072      &lt;div class="row no-gutters"&gt;
1073        &lt;div class="col-md-12 text-center"&gt;
1074          &lt;h1 class="mb-4"&gt;&lt;a href="index.html" class="logo"&gt;Company Logo&lt;/a&gt;&lt;/h1&gt;
1075          &lt;ul&gt;
1076            &lt;li class="active"&gt;&lt;a href="index.html"&gt;&lt;span&gt;Home&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
1077            &lt;li&gt;&lt;a href="about.html"&gt;&lt;span&gt;About&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
1078            &lt;li&gt;&lt;a href="blog.html"&gt;&lt;span&gt;Blog&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
1079            &lt;li&gt;&lt;a href="contact.html"&gt;&lt;span&gt;Contact&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
1080          &lt;/ul&gt;
1081        &lt;/div&gt;
1082      &lt;/div&gt;
1083    &lt;/div&gt;
1084  &lt;/div&gt;
1085&lt;/nav&gt;
1086
1087&lt;div class="header h-100"&gt;
1088  &lt;a href="#" class="js-colorlib-nav-toggle colorlib-nav-toggle"&gt;&lt;i&gt;&lt;/i&gt;&lt;/a&gt;
1089  &lt;h1 id="h-100" class="introduction h-100"&gt;Virtual Reality&lt;/h1&gt;
1090
1091&lt;/div&gt;
1092
1093&lt;div class="h-100"&gt;
1094  &lt;h2 class="center"&gt;Was ist Virtual Reality (VR)&lt;/h2&gt;
1095  &lt;p class="center"&gt;Eine virtuelle Welt oder ein Computerspiel, in das der Nutzer mit Hilfe eines VR-Headsets vollständig eintauchen kann&lt;/p&gt;
1096&lt;/div&gt;
1097
1098
1099&lt;div id="vr-headset-kategorien" class=""&gt;
1100  &lt;!--Show each one as a full screen information - Picture or animation embeded at the left side - Text about it right--&gt;
1101  &lt;div id="standalone" class="row"&gt;
1102    &lt;!----&gt;
1103    &lt;div class="vr-left_side container col-lg-6"&gt;
1104      &lt;div class="sketchfab-embed-wrapper"&gt; &lt;iframe title="Quest 2 Headset - FanArt" frameborder="0" allowfullscreen mozallowfullscreen="true" webkitallowfullscreen="true" allow="fullscreen; autoplay; vr" xr-spatial-tracking execution-while-out-of-viewport execution-while-not-rendered web-share
1105          src="https://sketchfab.com/models/ee496aa030bf4f37a52b445196796af3/embed?autospin=1&amp;autostart=1&amp;ui_hint=0"&gt; &lt;/iframe&gt;
1106        &lt;p style="font-size: 13px; font-weight: normal; margin: 5px; color: #4A4A4A;"&gt; &lt;a href="https://sketchfab.com/3d-models/quest-2-headset-fanart-ee496aa030bf4f37a52b445196796af3?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=ee496aa030bf4f37a52b445196796af3" target="_blank" style="font-weight: bold; color: #1CAAD9;"&gt; Quest 2 Headset - FanArt &lt;/a&gt;          by &lt;a href="https://sketchfab.com/josevillotguisan?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=ee496aa030bf4f37a52b445196796af3" target="_blank" style="font-weight: bold; color: #1CAAD9;"&gt; joseVG &lt;/a&gt; on &lt;a href="https://sketchfab.com?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=ee496aa030bf4f37a52b445196796af3"
1107            target="_blank" style="font-weight: bold; color: #1CAAD9;"&gt;Sketchfab&lt;/a&gt;&lt;/p&gt;
1108      &lt;/div&gt;
1109    &lt;/div&gt;
1110
1111    &lt;div class="vr-right_side container col-lg-6"&gt;
1112      &lt;h3&gt;Standalone&lt;/h3&gt;
1113
1114      &lt;p&gt;Standalone VR-Headsets ben&amp;ouml;tigen nur WLAN und Strom. In der VR-Brille ist ein eigener Prozessor eingebaut. Damit ist dieser Art super f&amp;uuml;r Anf&amp;auml;nger geeignet&lt;/p&gt;
1115
1116      &lt;p&gt;
1117        Vorteile:&lt;br /&gt; Kein guter PC ben&amp;ouml;tigt&lt;br /&gt; Niedriger Einstiegspreis trotz guter Hardware&lt;br/&gt; Gut optimierbar, da es fĂźr das Heaset nur einen Prozessor gibt&lt;/p&gt;
1118
1119      &lt;p&gt;Nachteile:&lt;br /&gt; Je nach Headset schlechte Performance bei fordernden Spielen&lt;/p&gt;
1120    &lt;/div&gt;
1121
1122  &lt;/div&gt;
1123
1124  &lt;div id="pc" class="row"&gt;
1125    &lt;div class="vr-left_side container col-lg-6"&gt;
1126      &lt;div class="sketchfab-embed-wrapper"&gt; &lt;iframe title="HTC Vive" frameborder="0" allowfullscreen mozallowfullscreen="true" webkitallowfullscreen="true" allow="fullscreen; autoplay; vr" xr-spatial-tracking execution-while-out-of-viewport execution-while-not-rendered web-share src="https://sketchfab.com/models/4cee0970fe60444ead77d41fbb052a33/embed?autospin=1&amp;autostart=1&amp;ui_hint=0"&gt; &lt;/iframe&gt;
1127        &lt;p style="font-size: 13px; font-weight: normal; margin: 5px; color: #4A4A4A;"&gt; &lt;a href="https://sketchfab.com/3d-models/htc-vive-4cee0970fe60444ead77d41fbb052a33?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=4cee0970fe60444ead77d41fbb052a33" target="_blank" style="font-weight: bold; color: #1CAAD9;"&gt; HTC Vive &lt;/a&gt;          by &lt;a href="https://sketchfab.com/EternalRealm?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=4cee0970fe60444ead77d41fbb052a33" target="_blank" style="font-weight: bold; color: #1CAAD9;"&gt; Eternal Realm &lt;/a&gt; on &lt;a href="https://sketchfab.com?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=4cee0970fe60444ead77d41fbb052a33"
1128            target="_blank" style="font-weight: bold; color: #1CAAD9;"&gt;Sketchfab&lt;/a&gt;&lt;/p&gt;
1129      &lt;/div&gt;
1130    &lt;/div&gt;
1131
1132    &lt;div class="vr-right_side container col-lg-6"&gt;
1133      &lt;h3&gt;PC-VR&lt;/h3&gt;
1134      &lt;p&gt;PC-VR Headsets funktionieren nur zusammen mit einem PC. Sie werden &amp;uuml;ber ein langes Kabel verbunden. Mit einem passenden PC kann ein PC-VR Headset ein extrem sch&amp;ouml;nes Bild liefern. Der Einstiegspreis ist jedoch sehr hoch, daher sind sie
1135        vor allem f&amp;uuml;r Enthusiasten geeignet&lt;/p&gt;
1136
1137      &lt;p&gt;Vorteile:&lt;br /&gt; Hohe Aufl&amp;ouml;sung&lt;br /&gt; Wenig Lags&lt;/p&gt;
1138
1139      &lt;p&gt;Nachteile:&lt;br /&gt; Hoher Einstiegspreis&lt;/p&gt;
1140    &lt;/div&gt;
1141  &lt;/div&gt;
1142
1143  &lt;div id="fulldive" class="row"&gt;
1144    &lt;div class="vr-left_side container col-lg-6"&gt;
1145      &lt;div class="sketchfab-embed-wrapper"&gt; &lt;iframe title="neuraLink" frameborder="0" allowfullscreen mozallowfullscreen="true" webkitallowfullscreen="true" allow="fullscreen; autoplay; vr" xr-spatial-tracking execution-while-out-of-viewport execution-while-not-rendered web-share src="https://sketchfab.com/models/6a157c614d0641c2a2d2c7c7628fb01b/embed?autospin=1&amp;autostart=1"&gt; &lt;/iframe&gt;
1146        &lt;p style="font-size: 13px; font-weight: normal; margin: 5px; color: #4A4A4A;"&gt; &lt;a href="https://sketchfab.com/3d-models/neuralink-6a157c614d0641c2a2d2c7c7628fb01b?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=6a157c614d0641c2a2d2c7c7628fb01b" target="_blank" style="font-weight: bold; color: #1CAAD9;"&gt; neuraLink &lt;/a&gt;          by &lt;a href="https://sketchfab.com/rfarencibia?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=6a157c614d0641c2a2d2c7c7628fb01b" target="_blank" style="font-weight: bold; color: #1CAAD9;"&gt; rfarencibia &lt;/a&gt; on &lt;a href="https://sketchfab.com?utm_medium=embed&amp;utm_campaign=share-popup&amp;utm_content=6a157c614d0641c2a2d2c7c7628fb01b"
1147            target="_blank" style="font-weight: bold; color: #1CAAD9;"&gt;Sketchfab&lt;/a&gt;&lt;/p&gt;
1148      &lt;/div&gt;
1149    &lt;/div&gt;
1150
1151    &lt;div class="vr-right_side container col-lg-6"&gt;
1152      &lt;h3&gt;Full-Dive VR&lt;/h3&gt;
1153      &lt;p&gt;Tauche komplett in die VR-Welt ein. Full-Dive VR-Headsets befinden sich bereits in Entwicklung. Bei diesem Ansatz wird keine VR-Brille verwendet, die wie ein Monitor funktioniert sondern Full-Dive VR-Headsets greifen direkt auf die Seh-, Tast-,
1154        und weitere Nerven zu. Daher ist dies auch die umstrittenste Technologie&lt;/p&gt;
1155
1156      &lt;p&gt;Vorteile:&lt;br /&gt; Unvergleichliche Immersion&lt;/p&gt;
1157
1158      &lt;p&gt;Nachteile:&lt;br /&gt; Sicherheit - Z.B. In der VR-Welt einsperren - Unwahrscheinlich aber m&amp;ouml;glich&lt;/p&gt;
1159    &lt;/div&gt;
1160  &lt;/div&gt;
1161
1162&lt;/div&gt;
1163
1164
1165
1166
1167&lt;!-- Optional JavaScript --&gt;
1168&lt;!-- jQuery first, then Popper.js, then Bootstrap JS --&gt;
1169&lt;script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"&gt;&lt;/script&gt;
1170&lt;script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"&gt;&lt;/script&gt;
1171&lt;script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"&gt;&lt;/script&gt;

Source https://stackoverflow.com/questions/67385704

QUESTION

Unity Gameobject not visible in Hololens 2

Asked 2021-Apr-23 at 18:36

I am trying to build a HoloLens 2 app using unity.

I added an 3D object from blender, it works fine with the Remote Holographic app, I can interact with it and move around using the Hololens 2 device. But I am unable to get it in the app, the app build then it shows nothing just an empty scene.

The steps I do to build the app are:

  1. add the MRTK v2 foundation package
  2. file >> build settings >> switch to Universal Windows Platform.
  3. Player setting >> Player >> XR settings >> Virtual Reality support
  4. switch the Target device to Hololens and Architecture to ARM64
  5. add the Open Scenes to build settings.
  6. Mixed Realty Toolkit >> Utilities >> Build Window >> build Appx

I have Unity 2019.4.19f1 and MRTK 2.5.4

ANSWER

Answered 2021-Feb-25 at 10:29

To rule out the possibility that it is due to Unity's configuration, check your settings with the tutorial (if you haven't already done so).

What I notice is that x64 is selected for the architecture in the tutorial. I don't think that's the reason, but it's worth a test.

If everything else is identical, check whether it works with the simple cube (analogous to the tutorial here).

Cheers

Source https://stackoverflow.com/questions/66352963

QUESTION

Why does my webpage look different upon resizing the browser window VS on mobile?

Asked 2021-Apr-02 at 04:45

This is what my webpage looks like when resizing the browser window

1

This is what my webpage looks like on mobile

2

As you can see, everything looks messed up on mobile, but it actually looks alright when resizing my browser window. How come? Is there an easy fix to this? Here's my code. I'm kinda lost when it comes to CSS, and I'm just looking for a quick-fix to this.

1    body {
2    background-image: url("https://lumiere-a.akamaihd.net/v1/images/sa_pixar_virtualbg_coco_16x9_9ccd7110.jpeg");
3}
4
5.header {
6
7}
8
9#heading {
10  text-align: center;
11  font-family: 'Montserrat', sans-serif;
12  color: white;
13}
14
15#logo {
16  display: block;
17  margin-left: auto;
18  margin-right: auto;
19}
20
21.container {
22  border-radius: 5px;
23  background-color: #f2f2f2;
24  padding: 20px;
25  width: 400px;
26  min-height: 350px;
27  margin: 0 auto;
28}
29
30select, input[type=text] {
31  width: 100%;
32  padding: 12px 20px;
33  margin: 8px 0;
34  display: inline-block;
35  border: 1px solid #ccc;
36  border-radius: 4px;
37  box-sizing: border-box;
38}
39
40input[type=submit] {
41  width: 100%;
42  background-color: #4CAF50;
43  color: white;
44  padding: 14px 20px;
45  margin: 8px 0;
46  border: none;
47  border-radius: 4px;
48  cursor: pointer;
49}
50
51input[type=submit]:hover {
52  background-color: #45a049;
53}
54
55label {
56  font-family: 'Spinnaker', sans-serif;
57}
58
59#deviceSelector select {
60  width: 50%;
61  padding: 16px 20px;
62  border: none;
63  border-radius: 4px;
64  background-color: #DDDDDD;
65}
1    body {
2    background-image: url("https://lumiere-a.akamaihd.net/v1/images/sa_pixar_virtualbg_coco_16x9_9ccd7110.jpeg");
3}
4
5.header {
6
7}
8
9#heading {
10  text-align: center;
11  font-family: 'Montserrat', sans-serif;
12  color: white;
13}
14
15#logo {
16  display: block;
17  margin-left: auto;
18  margin-right: auto;
19}
20
21.container {
22  border-radius: 5px;
23  background-color: #f2f2f2;
24  padding: 20px;
25  width: 400px;
26  min-height: 350px;
27  margin: 0 auto;
28}
29
30select, input[type=text] {
31  width: 100%;
32  padding: 12px 20px;
33  margin: 8px 0;
34  display: inline-block;
35  border: 1px solid #ccc;
36  border-radius: 4px;
37  box-sizing: border-box;
38}
39
40input[type=submit] {
41  width: 100%;
42  background-color: #4CAF50;
43  color: white;
44  padding: 14px 20px;
45  margin: 8px 0;
46  border: none;
47  border-radius: 4px;
48  cursor: pointer;
49}
50
51input[type=submit]:hover {
52  background-color: #45a049;
53}
54
55label {
56  font-family: 'Spinnaker', sans-serif;
57}
58
59#deviceSelector select {
60  width: 50%;
61  padding: 16px 20px;
62  border: none;
63  border-radius: 4px;
64  background-color: #DDDDDD;
65}&lt;div class="header"&gt;
66    &lt;img src="logo.png" id="logo"&gt;
67    &lt;h1 id="heading"&gt;Tidsbokning&lt;/h1&gt;
68&lt;/div&gt;
69&lt;div class='container'&gt;
70    &lt;form action='' method='post' id='firstForm' autocomplete='off'&gt;
71        &lt;label for='people'&gt;Välj antal personer&lt;/label&gt;
72        &lt;select id='people' name='people'&gt;
73            &lt;option value='1'&gt;1&lt;/option&gt;
74            &lt;option value='2'&gt;2&lt;/option&gt;
75            &lt;option value='3'&gt;3&lt;/option&gt;
76            &lt;option value='4'&gt;4&lt;/option&gt;
77            &lt;option value='5'&gt;5&lt;/option&gt;
78            &lt;option value='6'&gt;6&lt;/option&gt;
79            &lt;option value='7'&gt;7&lt;/option&gt;
80            &lt;option value='8'&gt;8&lt;/option&gt;
81            &lt;option value='9'&gt;9&lt;/option&gt;
82            &lt;option value='10'&gt;10&lt;/option&gt;
83        &lt;/select&gt;
84        &lt;div id='deviceSelector'&gt;
85            &lt;label for='device1'&gt;Välj enhet (person 1)&lt;/label&gt;&lt;br&gt;
86            &lt;select id='device1' name='device1'&gt;
87                &lt;option value='VR'&gt;Virtual Reality&lt;/option&gt;
88                &lt;option value='RacingSim'&gt;Racing Simulator&lt;/option&gt;
89                &lt;option value='PC'&gt;Dator&lt;/option&gt;
90                &lt;option value='Switch'&gt;Nintendo Switch&lt;/option&gt;
91            &lt;/select&gt;&lt;br&gt;
92        &lt;/div&gt;
93        &lt;label for='time'&gt;Välj tid&lt;/label&gt;
94        &lt;select id='time' name='time'&gt;
95            &lt;option value='30'&gt;30 min&lt;/option&gt;
96            &lt;option value='60'&gt;1h&lt;/option&gt;
97            &lt;option value='90'&gt;1h 30min&lt;/option&gt;
98            &lt;option value='120'&gt;2h&lt;/option&gt;
99            &lt;option value='150'&gt;2h 30 min&lt;/option&gt;
100            &lt;option value='180'&gt;3h&lt;/option&gt;
101            &lt;option value='210'&gt;3h 30 min&lt;/option&gt;
102            &lt;option value='240'&gt;4h&lt;/option&gt;
103            &lt;option value='270'&gt;4h 30 min&lt;/option&gt;
104            &lt;option value='300'&gt;5h&lt;/option&gt;
105        &lt;/select&gt;
106        &lt;label for='priceTotal'&gt;Pris&lt;/label&gt;
107        &lt;input type='text' id='priceTotal' name='priceTotal' value='50 kr' disabled&gt;
108        &lt;input type='submit' name='submit' value='Fortsätt'&gt;
109    &lt;/form&gt;
110&lt;/div&gt;

ANSWER

Answered 2021-Apr-02 at 04:31

Just change .container width in mobile using media query

1    body {
2    background-image: url("https://lumiere-a.akamaihd.net/v1/images/sa_pixar_virtualbg_coco_16x9_9ccd7110.jpeg");
3}
4
5.header {
6
7}
8
9#heading {
10  text-align: center;
11  font-family: 'Montserrat', sans-serif;
12  color: white;
13}
14
15#logo {
16  display: block;
17  margin-left: auto;
18  margin-right: auto;
19}
20
21.container {
22  border-radius: 5px;
23  background-color: #f2f2f2;
24  padding: 20px;
25  width: 400px;
26  min-height: 350px;
27  margin: 0 auto;
28}
29
30select, input[type=text] {
31  width: 100%;
32  padding: 12px 20px;
33  margin: 8px 0;
34  display: inline-block;
35  border: 1px solid #ccc;
36  border-radius: 4px;
37  box-sizing: border-box;
38}
39
40input[type=submit] {
41  width: 100%;
42  background-color: #4CAF50;
43  color: white;
44  padding: 14px 20px;
45  margin: 8px 0;
46  border: none;
47  border-radius: 4px;
48  cursor: pointer;
49}
50
51input[type=submit]:hover {
52  background-color: #45a049;
53}
54
55label {
56  font-family: 'Spinnaker', sans-serif;
57}
58
59#deviceSelector select {
60  width: 50%;
61  padding: 16px 20px;
62  border: none;
63  border-radius: 4px;
64  background-color: #DDDDDD;
65}&lt;div class="header"&gt;
66    &lt;img src="logo.png" id="logo"&gt;
67    &lt;h1 id="heading"&gt;Tidsbokning&lt;/h1&gt;
68&lt;/div&gt;
69&lt;div class='container'&gt;
70    &lt;form action='' method='post' id='firstForm' autocomplete='off'&gt;
71        &lt;label for='people'&gt;Välj antal personer&lt;/label&gt;
72        &lt;select id='people' name='people'&gt;
73            &lt;option value='1'&gt;1&lt;/option&gt;
74            &lt;option value='2'&gt;2&lt;/option&gt;
75            &lt;option value='3'&gt;3&lt;/option&gt;
76            &lt;option value='4'&gt;4&lt;/option&gt;
77            &lt;option value='5'&gt;5&lt;/option&gt;
78            &lt;option value='6'&gt;6&lt;/option&gt;
79            &lt;option value='7'&gt;7&lt;/option&gt;
80            &lt;option value='8'&gt;8&lt;/option&gt;
81            &lt;option value='9'&gt;9&lt;/option&gt;
82            &lt;option value='10'&gt;10&lt;/option&gt;
83        &lt;/select&gt;
84        &lt;div id='deviceSelector'&gt;
85            &lt;label for='device1'&gt;Välj enhet (person 1)&lt;/label&gt;&lt;br&gt;
86            &lt;select id='device1' name='device1'&gt;
87                &lt;option value='VR'&gt;Virtual Reality&lt;/option&gt;
88                &lt;option value='RacingSim'&gt;Racing Simulator&lt;/option&gt;
89                &lt;option value='PC'&gt;Dator&lt;/option&gt;
90                &lt;option value='Switch'&gt;Nintendo Switch&lt;/option&gt;
91            &lt;/select&gt;&lt;br&gt;
92        &lt;/div&gt;
93        &lt;label for='time'&gt;Välj tid&lt;/label&gt;
94        &lt;select id='time' name='time'&gt;
95            &lt;option value='30'&gt;30 min&lt;/option&gt;
96            &lt;option value='60'&gt;1h&lt;/option&gt;
97            &lt;option value='90'&gt;1h 30min&lt;/option&gt;
98            &lt;option value='120'&gt;2h&lt;/option&gt;
99            &lt;option value='150'&gt;2h 30 min&lt;/option&gt;
100            &lt;option value='180'&gt;3h&lt;/option&gt;
101            &lt;option value='210'&gt;3h 30 min&lt;/option&gt;
102            &lt;option value='240'&gt;4h&lt;/option&gt;
103            &lt;option value='270'&gt;4h 30 min&lt;/option&gt;
104            &lt;option value='300'&gt;5h&lt;/option&gt;
105        &lt;/select&gt;
106        &lt;label for='priceTotal'&gt;Pris&lt;/label&gt;
107        &lt;input type='text' id='priceTotal' name='priceTotal' value='50 kr' disabled&gt;
108        &lt;input type='submit' name='submit' value='Fortsätt'&gt;
109    &lt;/form&gt;
110&lt;/div&gt;@media screen and (max-width: 480px) {
111  .container {width: 300px;}
112}
113
full code

1    body {
2    background-image: url("https://lumiere-a.akamaihd.net/v1/images/sa_pixar_virtualbg_coco_16x9_9ccd7110.jpeg");
3}
4
5.header {
6
7}
8
9#heading {
10  text-align: center;
11  font-family: 'Montserrat', sans-serif;
12  color: white;
13}
14
15#logo {
16  display: block;
17  margin-left: auto;
18  margin-right: auto;
19}
20
21.container {
22  border-radius: 5px;
23  background-color: #f2f2f2;
24  padding: 20px;
25  width: 400px;
26  min-height: 350px;
27  margin: 0 auto;
28}
29
30select, input[type=text] {
31  width: 100%;
32  padding: 12px 20px;
33  margin: 8px 0;
34  display: inline-block;
35  border: 1px solid #ccc;
36  border-radius: 4px;
37  box-sizing: border-box;
38}
39
40input[type=submit] {
41  width: 100%;
42  background-color: #4CAF50;
43  color: white;
44  padding: 14px 20px;
45  margin: 8px 0;
46  border: none;
47  border-radius: 4px;
48  cursor: pointer;
49}
50
51input[type=submit]:hover {
52  background-color: #45a049;
53}
54
55label {
56  font-family: 'Spinnaker', sans-serif;
57}
58
59#deviceSelector select {
60  width: 50%;
61  padding: 16px 20px;
62  border: none;
63  border-radius: 4px;
64  background-color: #DDDDDD;
65}&lt;div class="header"&gt;
66    &lt;img src="logo.png" id="logo"&gt;
67    &lt;h1 id="heading"&gt;Tidsbokning&lt;/h1&gt;
68&lt;/div&gt;
69&lt;div class='container'&gt;
70    &lt;form action='' method='post' id='firstForm' autocomplete='off'&gt;
71        &lt;label for='people'&gt;Välj antal personer&lt;/label&gt;
72        &lt;select id='people' name='people'&gt;
73            &lt;option value='1'&gt;1&lt;/option&gt;
74            &lt;option value='2'&gt;2&lt;/option&gt;
75            &lt;option value='3'&gt;3&lt;/option&gt;
76            &lt;option value='4'&gt;4&lt;/option&gt;
77            &lt;option value='5'&gt;5&lt;/option&gt;
78            &lt;option value='6'&gt;6&lt;/option&gt;
79            &lt;option value='7'&gt;7&lt;/option&gt;
80            &lt;option value='8'&gt;8&lt;/option&gt;
81            &lt;option value='9'&gt;9&lt;/option&gt;
82            &lt;option value='10'&gt;10&lt;/option&gt;
83        &lt;/select&gt;
84        &lt;div id='deviceSelector'&gt;
85            &lt;label for='device1'&gt;Välj enhet (person 1)&lt;/label&gt;&lt;br&gt;
86            &lt;select id='device1' name='device1'&gt;
87                &lt;option value='VR'&gt;Virtual Reality&lt;/option&gt;
88                &lt;option value='RacingSim'&gt;Racing Simulator&lt;/option&gt;
89                &lt;option value='PC'&gt;Dator&lt;/option&gt;
90                &lt;option value='Switch'&gt;Nintendo Switch&lt;/option&gt;
91            &lt;/select&gt;&lt;br&gt;
92        &lt;/div&gt;
93        &lt;label for='time'&gt;Välj tid&lt;/label&gt;
94        &lt;select id='time' name='time'&gt;
95            &lt;option value='30'&gt;30 min&lt;/option&gt;
96            &lt;option value='60'&gt;1h&lt;/option&gt;
97            &lt;option value='90'&gt;1h 30min&lt;/option&gt;
98            &lt;option value='120'&gt;2h&lt;/option&gt;
99            &lt;option value='150'&gt;2h 30 min&lt;/option&gt;
100            &lt;option value='180'&gt;3h&lt;/option&gt;
101            &lt;option value='210'&gt;3h 30 min&lt;/option&gt;
102            &lt;option value='240'&gt;4h&lt;/option&gt;
103            &lt;option value='270'&gt;4h 30 min&lt;/option&gt;
104            &lt;option value='300'&gt;5h&lt;/option&gt;
105        &lt;/select&gt;
106        &lt;label for='priceTotal'&gt;Pris&lt;/label&gt;
107        &lt;input type='text' id='priceTotal' name='priceTotal' value='50 kr' disabled&gt;
108        &lt;input type='submit' name='submit' value='Fortsätt'&gt;
109    &lt;/form&gt;
110&lt;/div&gt;@media screen and (max-width: 480px) {
111  .container {width: 300px;}
112}
113body {
114    background-image:url("https://lumiere-a.akamaihd.net/v1/images/sa_pixar_virtualbg_coco_16x9_9ccd7110.jpeg");
115}
116
117.header {
118
119}
120
121#heading {
122  text-align: center;
123  font-family: 'Montserrat', sans-serif;
124  color: white;
125}
126
127#logo {
128  display: block;
129  margin-left: auto;
130  margin-right: auto;
131}
132
133.container {
134  border-radius: 5px;
135  background-color: #f2f2f2;
136  padding: 20px;
137  width: 400px;
138  min-height: 350px;
139  margin: 0 auto;
140}
141
142@media screen and (max-width: 480px) {
143   .container {width: 300px;}
144 }
145
146select, input[type=text] {
147  width: 100%;
148  padding: 12px 20px;
149  margin: 8px 0;
150  display: inline-block;
151  border: 1px solid #ccc;
152  border-radius: 4px;
153  box-sizing: border-box;
154}
155
156input[type=submit] {
157  width: 100%;
158  background-color: #4CAF50;
159  color: white;
160  padding: 14px 20px;
161  margin: 8px 0;
162  border: none;
163  border-radius: 4px;
164  cursor: pointer;
165}
166
167input[type=submit]:hover {
168  background-color: #45a049;
169}
170
171label {
172  font-family: 'Spinnaker', sans-serif;
173}
174
175#deviceSelector select {
176  width: 50%;
177  padding: 16px 20px;
178  border: none;
179  border-radius: 4px;
180  background-color: #DDDDDD;
181}
1    body {
2    background-image: url("https://lumiere-a.akamaihd.net/v1/images/sa_pixar_virtualbg_coco_16x9_9ccd7110.jpeg");
3}
4
5.header {
6
7}
8
9#heading {
10  text-align: center;
11  font-family: 'Montserrat', sans-serif;
12  color: white;
13}
14
15#logo {
16  display: block;
17  margin-left: auto;
18  margin-right: auto;
19}
20
21.container {
22  border-radius: 5px;
23  background-color: #f2f2f2;
24  padding: 20px;
25  width: 400px;
26  min-height: 350px;
27  margin: 0 auto;
28}
29
30select, input[type=text] {
31  width: 100%;
32  padding: 12px 20px;
33  margin: 8px 0;
34  display: inline-block;
35  border: 1px solid #ccc;
36  border-radius: 4px;
37  box-sizing: border-box;
38}
39
40input[type=submit] {
41  width: 100%;
42  background-color: #4CAF50;
43  color: white;
44  padding: 14px 20px;
45  margin: 8px 0;
46  border: none;
47  border-radius: 4px;
48  cursor: pointer;
49}
50
51input[type=submit]:hover {
52  background-color: #45a049;
53}
54
55label {
56  font-family: 'Spinnaker', sans-serif;
57}
58
59#deviceSelector select {
60  width: 50%;
61  padding: 16px 20px;
62  border: none;
63  border-radius: 4px;
64  background-color: #DDDDDD;
65}&lt;div class="header"&gt;
66    &lt;img src="logo.png" id="logo"&gt;
67    &lt;h1 id="heading"&gt;Tidsbokning&lt;/h1&gt;
68&lt;/div&gt;
69&lt;div class='container'&gt;
70    &lt;form action='' method='post' id='firstForm' autocomplete='off'&gt;
71        &lt;label for='people'&gt;Välj antal personer&lt;/label&gt;
72        &lt;select id='people' name='people'&gt;
73            &lt;option value='1'&gt;1&lt;/option&gt;
74            &lt;option value='2'&gt;2&lt;/option&gt;
75            &lt;option value='3'&gt;3&lt;/option&gt;
76            &lt;option value='4'&gt;4&lt;/option&gt;
77            &lt;option value='5'&gt;5&lt;/option&gt;
78            &lt;option value='6'&gt;6&lt;/option&gt;
79            &lt;option value='7'&gt;7&lt;/option&gt;
80            &lt;option value='8'&gt;8&lt;/option&gt;
81            &lt;option value='9'&gt;9&lt;/option&gt;
82            &lt;option value='10'&gt;10&lt;/option&gt;
83        &lt;/select&gt;
84        &lt;div id='deviceSelector'&gt;
85            &lt;label for='device1'&gt;Välj enhet (person 1)&lt;/label&gt;&lt;br&gt;
86            &lt;select id='device1' name='device1'&gt;
87                &lt;option value='VR'&gt;Virtual Reality&lt;/option&gt;
88                &lt;option value='RacingSim'&gt;Racing Simulator&lt;/option&gt;
89                &lt;option value='PC'&gt;Dator&lt;/option&gt;
90                &lt;option value='Switch'&gt;Nintendo Switch&lt;/option&gt;
91            &lt;/select&gt;&lt;br&gt;
92        &lt;/div&gt;
93        &lt;label for='time'&gt;Välj tid&lt;/label&gt;
94        &lt;select id='time' name='time'&gt;
95            &lt;option value='30'&gt;30 min&lt;/option&gt;
96            &lt;option value='60'&gt;1h&lt;/option&gt;
97            &lt;option value='90'&gt;1h 30min&lt;/option&gt;
98            &lt;option value='120'&gt;2h&lt;/option&gt;
99            &lt;option value='150'&gt;2h 30 min&lt;/option&gt;
100            &lt;option value='180'&gt;3h&lt;/option&gt;
101            &lt;option value='210'&gt;3h 30 min&lt;/option&gt;
102            &lt;option value='240'&gt;4h&lt;/option&gt;
103            &lt;option value='270'&gt;4h 30 min&lt;/option&gt;
104            &lt;option value='300'&gt;5h&lt;/option&gt;
105        &lt;/select&gt;
106        &lt;label for='priceTotal'&gt;Pris&lt;/label&gt;
107        &lt;input type='text' id='priceTotal' name='priceTotal' value='50 kr' disabled&gt;
108        &lt;input type='submit' name='submit' value='Fortsätt'&gt;
109    &lt;/form&gt;
110&lt;/div&gt;@media screen and (max-width: 480px) {
111  .container {width: 300px;}
112}
113body {
114    background-image:url("https://lumiere-a.akamaihd.net/v1/images/sa_pixar_virtualbg_coco_16x9_9ccd7110.jpeg");
115}
116
117.header {
118
119}
120
121#heading {
122  text-align: center;
123  font-family: 'Montserrat', sans-serif;
124  color: white;
125}
126
127#logo {
128  display: block;
129  margin-left: auto;
130  margin-right: auto;
131}
132
133.container {
134  border-radius: 5px;
135  background-color: #f2f2f2;
136  padding: 20px;
137  width: 400px;
138  min-height: 350px;
139  margin: 0 auto;
140}
141
142@media screen and (max-width: 480px) {
143   .container {width: 300px;}
144 }
145
146select, input[type=text] {
147  width: 100%;
148  padding: 12px 20px;
149  margin: 8px 0;
150  display: inline-block;
151  border: 1px solid #ccc;
152  border-radius: 4px;
153  box-sizing: border-box;
154}
155
156input[type=submit] {
157  width: 100%;
158  background-color: #4CAF50;
159  color: white;
160  padding: 14px 20px;
161  margin: 8px 0;
162  border: none;
163  border-radius: 4px;
164  cursor: pointer;
165}
166
167input[type=submit]:hover {
168  background-color: #45a049;
169}
170
171label {
172  font-family: 'Spinnaker', sans-serif;
173}
174
175#deviceSelector select {
176  width: 50%;
177  padding: 16px 20px;
178  border: none;
179  border-radius: 4px;
180  background-color: #DDDDDD;
181}&lt;div class="header"&gt;
182    &lt;img src="logo.png" id="logo"&gt;
183    &lt;h1 id="heading"&gt;Tidsbokning&lt;/h1&gt;
184&lt;/div&gt;
185&lt;div class='container'&gt;
186    &lt;form action='' method='post' id='firstForm' autocomplete='off'&gt;
187        &lt;label for='people'&gt;Välj antal personer&lt;/label&gt;
188        &lt;select id='people' name='people'&gt;
189            &lt;option value='1'&gt;1&lt;/option&gt;
190            &lt;option value='2'&gt;2&lt;/option&gt;
191            &lt;option value='3'&gt;3&lt;/option&gt;
192            &lt;option value='4'&gt;4&lt;/option&gt;
193            &lt;option value='5'&gt;5&lt;/option&gt;
194            &lt;option value='6'&gt;6&lt;/option&gt;
195            &lt;option value='7'&gt;7&lt;/option&gt;
196            &lt;option value='8'&gt;8&lt;/option&gt;
197            &lt;option value='9'&gt;9&lt;/option&gt;
198            &lt;option value='10'&gt;10&lt;/option&gt;
199        &lt;/select&gt;
200        &lt;div id='deviceSelector'&gt;
201            &lt;label for='device1'&gt;Välj enhet (person 1)&lt;/label&gt;&lt;br&gt;
202            &lt;select id='device1' name='device1'&gt;
203                &lt;option value='VR'&gt;Virtual Reality&lt;/option&gt;
204                &lt;option value='RacingSim'&gt;Racing Simulator&lt;/option&gt;
205                &lt;option value='PC'&gt;Dator&lt;/option&gt;
206                &lt;option value='Switch'&gt;Nintendo Switch&lt;/option&gt;
207            &lt;/select&gt;&lt;br&gt;
208        &lt;/div&gt;
209        &lt;label for='time'&gt;Välj tid&lt;/label&gt;
210        &lt;select id='time' name='time'&gt;
211            &lt;option value='30'&gt;30 min&lt;/option&gt;
212            &lt;option value='60'&gt;1h&lt;/option&gt;
213            &lt;option value='90'&gt;1h 30min&lt;/option&gt;
214            &lt;option value='120'&gt;2h&lt;/option&gt;
215            &lt;option value='150'&gt;2h 30 min&lt;/option&gt;
216            &lt;option value='180'&gt;3h&lt;/option&gt;
217            &lt;option value='210'&gt;3h 30 min&lt;/option&gt;
218            &lt;option value='240'&gt;4h&lt;/option&gt;
219            &lt;option value='270'&gt;4h 30 min&lt;/option&gt;
220            &lt;option value='300'&gt;5h&lt;/option&gt;
221        &lt;/select&gt;
222        &lt;label for='priceTotal'&gt;Pris&lt;/label&gt;
223        &lt;input type='text' id='priceTotal' name='priceTotal' value='50 kr' disabled&gt;
224        &lt;input type='submit' name='submit' value='Fortsätt'&gt;
225    &lt;/form&gt;
226&lt;/div&gt;

Source https://stackoverflow.com/questions/66914284

QUESTION

NoClassDefFoundError in OSGi although it is exported and imported

Asked 2021-Mar-23 at 21:20

I tried to create a basic virtual reality IDE based on Karaf.

I have 3 maven-projects:

  1. VRServer who connect to a native-component for rendering.
  2. VR Component Toolkit for VR-HMI-Widgets (Having a VRFrame who extends from VRComponent) as a Multi-Module-Maven-Project.
  3. The VR IDE project read/write files and execute lowlevel commands.

enter image description here

I installed all of them into Karaf:

1karaf@root()&gt; bundle:list
2START LEVEL 100 , List Threshold: 50
3 ID | State  | Lvl | Version            | Name
4----+--------+-----+--------------------+---------------------------------------------------------------------------
5 31 | Active |  80 | 4.3.0              | Apache Karaf :: OSGi Services :: Event
6 54 | Active |  80 | 1.3.2              | Apache Aries SPI Fly Dynamic Weaving Bundle
7 55 | Active |  80 | 9.0.0              | org.objectweb.asm
8 56 | Active |  80 | 9.0.0              | org.objectweb.asm.commons
9 57 | Active |  80 | 9.0.0              | org.objectweb.asm.tree
10 58 | Active |  80 | 9.0.0              | org.objectweb.asm.tree.analysis
11 59 | Active |  80 | 9.0.0              | org.objectweb.asm.util
12 60 | Active |  80 | 2.0.17             | OpenWebBeans Core
13 61 | Active |  80 | 2.0.17             | SPI definition
14 62 | Active |  80 | 1.1.3              | Apache Aries CDI - CDI Component Runtime (CCR)
15 63 | Active |  80 | 1.1.3              | Apache Aries CDI - SPI classes for Portable Extensions
16 64 | Active |  80 | 1.1.3              | Apache Aries CDI - Container using Apache OpenWebBeans
17 65 | Active |  80 | 1.1.3              | Apache Aries CDI - SPI
18 66 | Active |  80 | 1.0.12             | Apache Felix Converter
19 67 | Active |  80 | 1.2.0              | Apache Geronimo JSR-330 Spec 1.0
20 68 | Active |  80 | 1.1.0              | Apache Geronimo Expression Language Spec 2.2
21 69 | Active |  80 | 1.2.0              | Apache Geronimo Interceptor Spec 1.2
22 70 | Active |  80 | 1.2.0              | Apache Geronimo JCDI Spec 2.0
23 71 | Active |  80 | 1.3.0.3            | Apache ServiceMix :: Specs :: Annotation API 1.3
24 72 | Active |  80 | 4.17.0             | Apache XBean :: ASM shaded (repackaged)
25 73 | Active |  80 | 4.17.0             | Apache XBean OSGI Bundle Utilities
26 74 | Active |  80 | 4.17.0             | Apache XBean :: Finder shaded (repackaged)
27 75 | Active |  80 | 1.0.1.201505202024 | org.osgi:org.osgi.namespace.extender
28 76 | Active |  80 | 1.0.0.201505202024 | org.osgi:org.osgi.namespace.implementation
29 77 | Active |  80 | 1.0.0.201505202024 | org.osgi:org.osgi.namespace.service
30 78 | Active |  80 | 1.0.0.201810101357 | org.osgi:org.osgi.service.cdi
31 79 | Active |  80 | 1.1.0.201802012106 | org.osgi:org.osgi.util.function
32 80 | Active |  80 | 1.1.0.201802012106 | org.osgi:org.osgi.util.promise
33 81 | Active |  80 | 4.3.1.SNAPSHOT     | Apache Karaf :: OSGi Services :: Event
34134 | Active |  80 | 1.0.0              | Virtual reality server
35135 | Active |  80 | 0.0.1.SNAPSHOT     | VRComponent
36136 | Active |  80 | 0.0.1.SNAPSHOT     | VRFrame
37142 | Active |  80 | 0.0.1.SNAPSHOT     | Virtual reality integrated development environment (VRIDE)
38karaf@root()&gt;
39

But when I tried to start the VRIDE bundle, I get this exception:

1karaf@root()&gt; bundle:list
2START LEVEL 100 , List Threshold: 50
3 ID | State  | Lvl | Version            | Name
4----+--------+-----+--------------------+---------------------------------------------------------------------------
5 31 | Active |  80 | 4.3.0              | Apache Karaf :: OSGi Services :: Event
6 54 | Active |  80 | 1.3.2              | Apache Aries SPI Fly Dynamic Weaving Bundle
7 55 | Active |  80 | 9.0.0              | org.objectweb.asm
8 56 | Active |  80 | 9.0.0              | org.objectweb.asm.commons
9 57 | Active |  80 | 9.0.0              | org.objectweb.asm.tree
10 58 | Active |  80 | 9.0.0              | org.objectweb.asm.tree.analysis
11 59 | Active |  80 | 9.0.0              | org.objectweb.asm.util
12 60 | Active |  80 | 2.0.17             | OpenWebBeans Core
13 61 | Active |  80 | 2.0.17             | SPI definition
14 62 | Active |  80 | 1.1.3              | Apache Aries CDI - CDI Component Runtime (CCR)
15 63 | Active |  80 | 1.1.3              | Apache Aries CDI - SPI classes for Portable Extensions
16 64 | Active |  80 | 1.1.3              | Apache Aries CDI - Container using Apache OpenWebBeans
17 65 | Active |  80 | 1.1.3              | Apache Aries CDI - SPI
18 66 | Active |  80 | 1.0.12             | Apache Felix Converter
19 67 | Active |  80 | 1.2.0              | Apache Geronimo JSR-330 Spec 1.0
20 68 | Active |  80 | 1.1.0              | Apache Geronimo Expression Language Spec 2.2
21 69 | Active |  80 | 1.2.0              | Apache Geronimo Interceptor Spec 1.2
22 70 | Active |  80 | 1.2.0              | Apache Geronimo JCDI Spec 2.0
23 71 | Active |  80 | 1.3.0.3            | Apache ServiceMix :: Specs :: Annotation API 1.3
24 72 | Active |  80 | 4.17.0             | Apache XBean :: ASM shaded (repackaged)
25 73 | Active |  80 | 4.17.0             | Apache XBean OSGI Bundle Utilities
26 74 | Active |  80 | 4.17.0             | Apache XBean :: Finder shaded (repackaged)
27 75 | Active |  80 | 1.0.1.201505202024 | org.osgi:org.osgi.namespace.extender
28 76 | Active |  80 | 1.0.0.201505202024 | org.osgi:org.osgi.namespace.implementation
29 77 | Active |  80 | 1.0.0.201505202024 | org.osgi:org.osgi.namespace.service
30 78 | Active |  80 | 1.0.0.201810101357 | org.osgi:org.osgi.service.cdi
31 79 | Active |  80 | 1.1.0.201802012106 | org.osgi:org.osgi.util.function
32 80 | Active |  80 | 1.1.0.201802012106 | org.osgi:org.osgi.util.promise
33 81 | Active |  80 | 4.3.1.SNAPSHOT     | Apache Karaf :: OSGi Services :: Event
34134 | Active |  80 | 1.0.0              | Virtual reality server
35135 | Active |  80 | 0.0.1.SNAPSHOT     | VRComponent
36136 | Active |  80 | 0.0.1.SNAPSHOT     | VRFrame
37142 | Active |  80 | 0.0.1.SNAPSHOT     | Virtual reality integrated development environment (VRIDE)
38karaf@root()&gt;
3910:00:42.193 WARN [fileinstall-C:\Program Files\apache-karaf-4.3.0/deploy] Error while creating extension
40java.lang.NoClassDefFoundError: Lde/e_nexus/vr/tk/VRFrame;
41        at java.lang.Class.getDeclaredFields0(Native Method) ~[?:1.8.0_232]
42        at java.lang.Class.privateGetDeclaredFields(Class.java:2611) ~[?:1.8.0_232]
43        at java.lang.Class.getDeclaredFields(Class.java:1944) ~[?:1.8.0_232]
44        at org.apache.aries.cdi.container.internal.util.Reflection.allFields(Reflection.java:47) ~[!/:1.1.3]
45        at org.apache.aries.cdi.container.internal.annotated.AnnotatedTypeImpl.&lt;init&gt;(AnnotatedTypeImpl.java:42) ~[!/:1.1.3]
46        at org.apache.aries.cdi.container.internal.container.Discovery.lambda$discover$8(Discovery.java:133) ~[!/:1.1.3]
47        at java.util.HashMap$Values.forEach(HashMap.java:981) ~[?:1.8.0_232]
48

This is the Java-Class I tried to load:

1karaf@root()&gt; bundle:list
2START LEVEL 100 , List Threshold: 50
3 ID | State  | Lvl | Version            | Name
4----+--------+-----+--------------------+---------------------------------------------------------------------------
5 31 | Active |  80 | 4.3.0              | Apache Karaf :: OSGi Services :: Event
6 54 | Active |  80 | 1.3.2              | Apache Aries SPI Fly Dynamic Weaving Bundle
7 55 | Active |  80 | 9.0.0              | org.objectweb.asm
8 56 | Active |  80 | 9.0.0              | org.objectweb.asm.commons
9 57 | Active |  80 | 9.0.0              | org.objectweb.asm.tree
10 58 | Active |  80 | 9.0.0              | org.objectweb.asm.tree.analysis
11 59 | Active |  80 | 9.0.0              | org.objectweb.asm.util
12 60 | Active |  80 | 2.0.17             | OpenWebBeans Core
13 61 | Active |  80 | 2.0.17             | SPI definition
14 62 | Active |  80 | 1.1.3              | Apache Aries CDI - CDI Component Runtime (CCR)
15 63 | Active |  80 | 1.1.3              | Apache Aries CDI - SPI classes for Portable Extensions
16 64 | Active |  80 | 1.1.3              | Apache Aries CDI - Container using Apache OpenWebBeans
17 65 | Active |  80 | 1.1.3              | Apache Aries CDI - SPI
18 66 | Active |  80 | 1.0.12             | Apache Felix Converter
19 67 | Active |  80 | 1.2.0              | Apache Geronimo JSR-330 Spec 1.0
20 68 | Active |  80 | 1.1.0              | Apache Geronimo Expression Language Spec 2.2
21 69 | Active |  80 | 1.2.0              | Apache Geronimo Interceptor Spec 1.2
22 70 | Active |  80 | 1.2.0              | Apache Geronimo JCDI Spec 2.0
23 71 | Active |  80 | 1.3.0.3            | Apache ServiceMix :: Specs :: Annotation API 1.3
24 72 | Active |  80 | 4.17.0             | Apache XBean :: ASM shaded (repackaged)
25 73 | Active |  80 | 4.17.0             | Apache XBean OSGI Bundle Utilities
26 74 | Active |  80 | 4.17.0             | Apache XBean :: Finder shaded (repackaged)
27 75 | Active |  80 | 1.0.1.201505202024 | org.osgi:org.osgi.namespace.extender
28 76 | Active |  80 | 1.0.0.201505202024 | org.osgi:org.osgi.namespace.implementation
29 77 | Active |  80 | 1.0.0.201505202024 | org.osgi:org.osgi.namespace.service
30 78 | Active |  80 | 1.0.0.201810101357 | org.osgi:org.osgi.service.cdi
31 79 | Active |  80 | 1.1.0.201802012106 | org.osgi:org.osgi.util.function
32 80 | Active |  80 | 1.1.0.201802012106 | org.osgi:org.osgi.util.promise
33 81 | Active |  80 | 4.3.1.SNAPSHOT     | Apache Karaf :: OSGi Services :: Event
34134 | Active |  80 | 1.0.0              | Virtual reality server
35135 | Active |  80 | 0.0.1.SNAPSHOT     | VRComponent
36136 | Active |  80 | 0.0.1.SNAPSHOT     | VRFrame
37142 | Active |  80 | 0.0.1.SNAPSHOT     | Virtual reality integrated development environment (VRIDE)
38karaf@root()&gt;
3910:00:42.193 WARN [fileinstall-C:\Program Files\apache-karaf-4.3.0/deploy] Error while creating extension
40java.lang.NoClassDefFoundError: Lde/e_nexus/vr/tk/VRFrame;
41        at java.lang.Class.getDeclaredFields0(Native Method) ~[?:1.8.0_232]
42        at java.lang.Class.privateGetDeclaredFields(Class.java:2611) ~[?:1.8.0_232]
43        at java.lang.Class.getDeclaredFields(Class.java:1944) ~[?:1.8.0_232]
44        at org.apache.aries.cdi.container.internal.util.Reflection.allFields(Reflection.java:47) ~[!/:1.1.3]
45        at org.apache.aries.cdi.container.internal.annotated.AnnotatedTypeImpl.&lt;init&gt;(AnnotatedTypeImpl.java:42) ~[!/:1.1.3]
46        at org.apache.aries.cdi.container.internal.container.Discovery.lambda$discover$8(Discovery.java:133) ~[!/:1.1.3]
47        at java.util.HashMap$Values.forEach(HashMap.java:981) ~[?:1.8.0_232]
48package de.e_nexus.desktop.vr.ide;
49
50import java.util.logging.Logger;
51
52import javax.annotation.PostConstruct;
53import javax.annotation.PreDestroy;
54import javax.enterprise.context.ApplicationScoped;
55import javax.inject.Inject;
56
57import org.osgi.service.cdi.annotations.Reference;
58import org.osgi.service.cdi.annotations.Service;
59
60import de.e_nexus.vr.server.ClientKeyboardScancode;
61import de.e_nexus.vr.server.VRClientHelmetAndControllerListener;
62import de.e_nexus.vr.server.VRClientKeyboardListener;
63import de.e_nexus.vr.server.VRServer;
64import de.e_nexus.vr.server.listeners.VRClientRequestAppInfo;
65import de.e_nexus.vr.server.listeners.VRClientStatusListener;
66import de.e_nexus.vr.server.listeners.interaction.HelmetAndControllerInfo;
67import de.e_nexus.vr.server.osgi.inter.VRServerService;
68import de.e_nexus.vr.tk.VRFrame;
69
70@ApplicationScoped
71@Service
72public class StartIDE implements VRClientStatusListener, VRClientRequestAppInfo, VRClientHelmetAndControllerListener, VRClientKeyboardListener {
73    /**
74     * The logger for this class.
75     */
76    private static final Logger LOG = Logger.getLogger(StartIDE.class.getCanonicalName());
77
78    private final static Object lock = new Object();
79
80    private VRServer vrServer;
81
82    public void notifyStatus(boolean connected) {
83        if (!connected) {
84            synchronized (lock) {
85                lock.notify();
86            }
87        }
88    }
89
90    @Reference
91    @Inject
92    private VRServerService vrServerService;
93
94    private VRFrame applicationFrame;
95
96    @PostConstruct
97    public void initialize() {
98        LOG.fine(&quot;Starting VR IDE&quot;);
99        vrServer = vrServerService.getVRServer();
100        applicationFrame = new VRFrame(vrServer, &quot;test&quot;);
101
102        LOG.info(getLatin1Title() + &quot; started successfully!&quot;);
103    }
104
105    @PreDestroy
106    public void teardown() {
107        applicationFrame.remove();
108        LOG.info(&quot;Stoped &quot; + getLatin1Title() + &quot; successfully!&quot;);
109        vrServer = null;
110    }
111
112    public VRServer getVrServer() {
113        return vrServer;
114    }
115
116    @Override
117    public void notify(HelmetAndControllerInfo haci) {
118
119    }
120
121    @Override
122    public String getLatin1Title() {
123        return &quot;VR IDE&quot;;
124    }
125
126    @Override
127    public void notifyKeyboardEvent(ClientKeyboardScancode[] downs, ClientKeyboardScancode[] ups, long incomingTime) {
128        System.out.println(&quot;me&quot;);
129    }
130}
131

VRServer-Codebase

VRToolkit-Codebase

VRIDE-Codebase


EDIT:

Here is the complete stacktrace:

1karaf@root()&gt; bundle:list
2START LEVEL 100 , List Threshold: 50
3 ID | State  | Lvl | Version            | Name
4----+--------+-----+--------------------+---------------------------------------------------------------------------
5 31 | Active |  80 | 4.3.0              | Apache Karaf :: OSGi Services :: Event
6 54 | Active |  80 | 1.3.2              | Apache Aries SPI Fly Dynamic Weaving Bundle
7 55 | Active |  80 | 9.0.0              | org.objectweb.asm
8 56 | Active |  80 | 9.0.0              | org.objectweb.asm.commons
9 57 | Active |  80 | 9.0.0              | org.objectweb.asm.tree
10 58 | Active |  80 | 9.0.0              | org.objectweb.asm.tree.analysis
11 59 | Active |  80 | 9.0.0              | org.objectweb.asm.util
12 60 | Active |  80 | 2.0.17             | OpenWebBeans Core
13 61 | Active |  80 | 2.0.17             | SPI definition
14 62 | Active |  80 | 1.1.3              | Apache Aries CDI - CDI Component Runtime (CCR)
15 63 | Active |  80 | 1.1.3              | Apache Aries CDI - SPI classes for Portable Extensions
16 64 | Active |  80 | 1.1.3              | Apache Aries CDI - Container using Apache OpenWebBeans
17 65 | Active |  80 | 1.1.3              | Apache Aries CDI - SPI
18 66 | Active |  80 | 1.0.12             | Apache Felix Converter
19 67 | Active |  80 | 1.2.0              | Apache Geronimo JSR-330 Spec 1.0
20 68 | Active |  80 | 1.1.0              | Apache Geronimo Expression Language Spec 2.2
21 69 | Active |  80 | 1.2.0              | Apache Geronimo Interceptor Spec 1.2
22 70 | Active |  80 | 1.2.0              | Apache Geronimo JCDI Spec 2.0
23 71 | Active |  80 | 1.3.0.3            | Apache ServiceMix :: Specs :: Annotation API 1.3
24 72 | Active |  80 | 4.17.0             | Apache XBean :: ASM shaded (repackaged)
25 73 | Active |  80 | 4.17.0             | Apache XBean OSGI Bundle Utilities
26 74 | Active |  80 | 4.17.0             | Apache XBean :: Finder shaded (repackaged)
27 75 | Active |  80 | 1.0.1.201505202024 | org.osgi:org.osgi.namespace.extender
28 76 | Active |  80 | 1.0.0.201505202024 | org.osgi:org.osgi.namespace.implementation
29 77 | Active |  80 | 1.0.0.201505202024 | org.osgi:org.osgi.namespace.service
30 78 | Active |  80 | 1.0.0.201810101357 | org.osgi:org.osgi.service.cdi
31 79 | Active |  80 | 1.1.0.201802012106 | org.osgi:org.osgi.util.function
32 80 | Active |  80 | 1.1.0.201802012106 | org.osgi:org.osgi.util.promise
33 81 | Active |  80 | 4.3.1.SNAPSHOT     | Apache Karaf :: OSGi Services :: Event
34134 | Active |  80 | 1.0.0              | Virtual reality server
35135 | Active |  80 | 0.0.1.SNAPSHOT     | VRComponent
36136 | Active |  80 | 0.0.1.SNAPSHOT     | VRFrame
37142 | Active |  80 | 0.0.1.SNAPSHOT     | Virtual reality integrated development environment (VRIDE)
38karaf@root()&gt;
3910:00:42.193 WARN [fileinstall-C:\Program Files\apache-karaf-4.3.0/deploy] Error while creating extension
40java.lang.NoClassDefFoundError: Lde/e_nexus/vr/tk/VRFrame;
41        at java.lang.Class.getDeclaredFields0(Native Method) ~[?:1.8.0_232]
42        at java.lang.Class.privateGetDeclaredFields(Class.java:2611) ~[?:1.8.0_232]
43        at java.lang.Class.getDeclaredFields(Class.java:1944) ~[?:1.8.0_232]
44        at org.apache.aries.cdi.container.internal.util.Reflection.allFields(Reflection.java:47) ~[!/:1.1.3]
45        at org.apache.aries.cdi.container.internal.annotated.AnnotatedTypeImpl.&lt;init&gt;(AnnotatedTypeImpl.java:42) ~[!/:1.1.3]
46        at org.apache.aries.cdi.container.internal.container.Discovery.lambda$discover$8(Discovery.java:133) ~[!/:1.1.3]
47        at java.util.HashMap$Values.forEach(HashMap.java:981) ~[?:1.8.0_232]
48package de.e_nexus.desktop.vr.ide;
49
50import java.util.logging.Logger;
51
52import javax.annotation.PostConstruct;
53import javax.annotation.PreDestroy;
54import javax.enterprise.context.ApplicationScoped;
55import javax.inject.Inject;
56
57import org.osgi.service.cdi.annotations.Reference;
58import org.osgi.service.cdi.annotations.Service;
59
60import de.e_nexus.vr.server.ClientKeyboardScancode;
61import de.e_nexus.vr.server.VRClientHelmetAndControllerListener;
62import de.e_nexus.vr.server.VRClientKeyboardListener;
63import de.e_nexus.vr.server.VRServer;
64import de.e_nexus.vr.server.listeners.VRClientRequestAppInfo;
65import de.e_nexus.vr.server.listeners.VRClientStatusListener;
66import de.e_nexus.vr.server.listeners.interaction.HelmetAndControllerInfo;
67import de.e_nexus.vr.server.osgi.inter.VRServerService;
68import de.e_nexus.vr.tk.VRFrame;
69
70@ApplicationScoped
71@Service
72public class StartIDE implements VRClientStatusListener, VRClientRequestAppInfo, VRClientHelmetAndControllerListener, VRClientKeyboardListener {
73    /**
74     * The logger for this class.
75     */
76    private static final Logger LOG = Logger.getLogger(StartIDE.class.getCanonicalName());
77
78    private final static Object lock = new Object();
79
80    private VRServer vrServer;
81
82    public void notifyStatus(boolean connected) {
83        if (!connected) {
84            synchronized (lock) {
85                lock.notify();
86            }
87        }
88    }
89
90    @Reference
91    @Inject
92    private VRServerService vrServerService;
93
94    private VRFrame applicationFrame;
95
96    @PostConstruct
97    public void initialize() {
98        LOG.fine(&quot;Starting VR IDE&quot;);
99        vrServer = vrServerService.getVRServer();
100        applicationFrame = new VRFrame(vrServer, &quot;test&quot;);
101
102        LOG.info(getLatin1Title() + &quot; started successfully!&quot;);
103    }
104
105    @PreDestroy
106    public void teardown() {
107        applicationFrame.remove();
108        LOG.info(&quot;Stoped &quot; + getLatin1Title() + &quot; successfully!&quot;);
109        vrServer = null;
110    }
111
112    public VRServer getVrServer() {
113        return vrServer;
114    }
115
116    @Override
117    public void notify(HelmetAndControllerInfo haci) {
118
119    }
120
121    @Override
122    public String getLatin1Title() {
123        return &quot;VR IDE&quot;;
124    }
125
126    @Override
127    public void notifyKeyboardEvent(ClientKeyboardScancode[] downs, ClientKeyboardScancode[] ups, long incomingTime) {
128        System.out.println(&quot;me&quot;);
129    }
130}
131java.lang.NoClassDefFoundError: Lde/e_nexus/vr/tk/VRFrame;
132        at java.lang.Class.getDeclaredFields0(Native Method) ~[?:1.8.0_232]
133        at java.lang.Class.privateGetDeclaredFields(Class.java:2611) ~[?:1.8.0_232]
134        at java.lang.Class.getDeclaredFields(Class.java:1944) ~[?:1.8.0_232]
135        at org.apache.aries.cdi.container.internal.util.Reflection.allFields(Reflection.java:47) ~[!/:1.1.3]
136        at org.apache.aries.cdi.container.internal.annotated.AnnotatedTypeImpl.&lt;init&gt;(AnnotatedTypeImpl.java:42) ~[!/:1.1.3]
137        at org.apache.aries.cdi.container.internal.container.Discovery.lambda$discover$8(Discovery.java:133) ~[!/:1.1.3]
138        at java.util.HashMap$Values.forEach(HashMap.java:981) ~[?:1.8.0_232]
139        at org.apache.aries.cdi.container.internal.container.Discovery.discover(Discovery.java:130) ~[!/:1.1.3]
140        at org.apache.aries.cdi.container.internal.container.ContainerState.&lt;init&gt;(ContainerState.java:178) ~[!/:1.1.3]
141        at org.apache.aries.cdi.container.internal.Activator.doCreateExtension(Activator.java:209) [!/:1.1.3]
142        at org.apache.felix.utils.extender.AbstractExtender.createExtension(AbstractExtender.java:242) [!/:1.1.3]
143        at org.apache.felix.utils.extender.AbstractExtender.modifiedBundle(AbstractExtender.java:227) [!/:1.1.3]
144        at org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:488) [osgi.core-7.0.0.jar:?]
145        at org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:420) [osgi.core-7.0.0.jar:?]
146        at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:232) [osgi.core-7.0.0.jar:?]
147        at org.osgi.util.tracker.BundleTracker$Tracked.bundleChanged(BundleTracker.java:450) [osgi.core-7.0.0.jar:?]
148        at org.apache.felix.framework.EventDispatcher.invokeBundleListenerCallback(EventDispatcher.java:915) [org.apache.felix.framework-6.0.3.jar:?]
149        at org.apache.felix.framework.EventDispatcher.fireEventImmediately(EventDispatcher.java:834) [org.apache.felix.framework-6.0.3.jar:?]
150        at org.apache.felix.framework.EventDispatcher.fireBundleEvent(EventDispatcher.java:516) [org.apache.felix.framework-6.0.3.jar:?]
151        at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:4817) [org.apache.felix.framework-6.0.3.jar:?]
152        at org.apache.felix.framework.Felix.startBundle(Felix.java:2336) [org.apache.felix.framework-6.0.3.jar:?]
153        at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:998) [org.apache.felix.framework-6.0.3.jar:?]
154        at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1260) [!/:3.6.8]
155        at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1233) [!/:3.6.8]
156        at org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:520) [!/:3.6.8]
157        at org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:365) [!/:3.6.8]
158        at org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:316) [!/:3.6.8]
159Caused by: java.lang.ClassNotFoundException: de.e_nexus.vr.tk.VRFrame not found by de.e-nexus.component [87]
160        at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1597) ~[?:?]
161        at org.apache.felix.framework.BundleWiringImpl.access$300(BundleWiringImpl.java:79) ~[?:?]
162        at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1982) ~[?:?]
163        at java.lang.ClassLoader.loadClass(ClassLoader.java:351) ~[?:1.8.0_232]
164        at org.apache.felix.framework.BundleWiringImpl.getClassByDelegation(BundleWiringImpl.java:1375) ~[?:?]
165        at org.apache.felix.framework.BundleWiringImpl.searchImports(BundleWiringImpl.java:1618) ~[?:?]
166        at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1548) ~[?:?]
167        at org.apache.felix.framework.BundleWiringImpl.access$300(BundleWiringImpl.java:79) ~[?:?]
168        at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1982) ~[?:?]
169        at java.lang.ClassLoader.loadClass(ClassLoader.java:351) ~[?:1.8.0_232]
170        ... 27 more
171

ANSWER

Answered 2021-Jan-07 at 13:13

The main problem in the project is <extensions>true</extensions> in maven-bundle-plugin. You need to have it in your pom.xml. example code

1karaf@root()&gt; bundle:list
2START LEVEL 100 , List Threshold: 50
3 ID | State  | Lvl | Version            | Name
4----+--------+-----+--------------------+---------------------------------------------------------------------------
5 31 | Active |  80 | 4.3.0              | Apache Karaf :: OSGi Services :: Event
6 54 | Active |  80 | 1.3.2              | Apache Aries SPI Fly Dynamic Weaving Bundle
7 55 | Active |  80 | 9.0.0              | org.objectweb.asm
8 56 | Active |  80 | 9.0.0              | org.objectweb.asm.commons
9 57 | Active |  80 | 9.0.0              | org.objectweb.asm.tree
10 58 | Active |  80 | 9.0.0              | org.objectweb.asm.tree.analysis
11 59 | Active |  80 | 9.0.0              | org.objectweb.asm.util
12 60 | Active |  80 | 2.0.17             | OpenWebBeans Core
13 61 | Active |  80 | 2.0.17             | SPI definition
14 62 | Active |  80 | 1.1.3              | Apache Aries CDI - CDI Component Runtime (CCR)
15 63 | Active |  80 | 1.1.3              | Apache Aries CDI - SPI classes for Portable Extensions
16 64 | Active |  80 | 1.1.3              | Apache Aries CDI - Container using Apache OpenWebBeans
17 65 | Active |  80 | 1.1.3              | Apache Aries CDI - SPI
18 66 | Active |  80 | 1.0.12             | Apache Felix Converter
19 67 | Active |  80 | 1.2.0              | Apache Geronimo JSR-330 Spec 1.0
20 68 | Active |  80 | 1.1.0              | Apache Geronimo Expression Language Spec 2.2
21 69 | Active |  80 | 1.2.0              | Apache Geronimo Interceptor Spec 1.2
22 70 | Active |  80 | 1.2.0              | Apache Geronimo JCDI Spec 2.0
23 71 | Active |  80 | 1.3.0.3            | Apache ServiceMix :: Specs :: Annotation API 1.3
24 72 | Active |  80 | 4.17.0             | Apache XBean :: ASM shaded (repackaged)
25 73 | Active |  80 | 4.17.0             | Apache XBean OSGI Bundle Utilities
26 74 | Active |  80 | 4.17.0             | Apache XBean :: Finder shaded (repackaged)
27 75 | Active |  80 | 1.0.1.201505202024 | org.osgi:org.osgi.namespace.extender
28 76 | Active |  80 | 1.0.0.201505202024 | org.osgi:org.osgi.namespace.implementation
29 77 | Active |  80 | 1.0.0.201505202024 | org.osgi:org.osgi.namespace.service
30 78 | Active |  80 | 1.0.0.201810101357 | org.osgi:org.osgi.service.cdi
31 79 | Active |  80 | 1.1.0.201802012106 | org.osgi:org.osgi.util.function
32 80 | Active |  80 | 1.1.0.201802012106 | org.osgi:org.osgi.util.promise
33 81 | Active |  80 | 4.3.1.SNAPSHOT     | Apache Karaf :: OSGi Services :: Event
34134 | Active |  80 | 1.0.0              | Virtual reality server
35135 | Active |  80 | 0.0.1.SNAPSHOT     | VRComponent
36136 | Active |  80 | 0.0.1.SNAPSHOT     | VRFrame
37142 | Active |  80 | 0.0.1.SNAPSHOT     | Virtual reality integrated development environment (VRIDE)
38karaf@root()&gt;
3910:00:42.193 WARN [fileinstall-C:\Program Files\apache-karaf-4.3.0/deploy] Error while creating extension
40java.lang.NoClassDefFoundError: Lde/e_nexus/vr/tk/VRFrame;
41        at java.lang.Class.getDeclaredFields0(Native Method) ~[?:1.8.0_232]
42        at java.lang.Class.privateGetDeclaredFields(Class.java:2611) ~[?:1.8.0_232]
43        at java.lang.Class.getDeclaredFields(Class.java:1944) ~[?:1.8.0_232]
44        at org.apache.aries.cdi.container.internal.util.Reflection.allFields(Reflection.java:47) ~[!/:1.1.3]
45        at org.apache.aries.cdi.container.internal.annotated.AnnotatedTypeImpl.&lt;init&gt;(AnnotatedTypeImpl.java:42) ~[!/:1.1.3]
46        at org.apache.aries.cdi.container.internal.container.Discovery.lambda$discover$8(Discovery.java:133) ~[!/:1.1.3]
47        at java.util.HashMap$Values.forEach(HashMap.java:981) ~[?:1.8.0_232]
48package de.e_nexus.desktop.vr.ide;
49
50import java.util.logging.Logger;
51
52import javax.annotation.PostConstruct;
53import javax.annotation.PreDestroy;
54import javax.enterprise.context.ApplicationScoped;
55import javax.inject.Inject;
56
57import org.osgi.service.cdi.annotations.Reference;
58import org.osgi.service.cdi.annotations.Service;
59
60import de.e_nexus.vr.server.ClientKeyboardScancode;
61import de.e_nexus.vr.server.VRClientHelmetAndControllerListener;
62import de.e_nexus.vr.server.VRClientKeyboardListener;
63import de.e_nexus.vr.server.VRServer;
64import de.e_nexus.vr.server.listeners.VRClientRequestAppInfo;
65import de.e_nexus.vr.server.listeners.VRClientStatusListener;
66import de.e_nexus.vr.server.listeners.interaction.HelmetAndControllerInfo;
67import de.e_nexus.vr.server.osgi.inter.VRServerService;
68import de.e_nexus.vr.tk.VRFrame;
69
70@ApplicationScoped
71@Service
72public class StartIDE implements VRClientStatusListener, VRClientRequestAppInfo, VRClientHelmetAndControllerListener, VRClientKeyboardListener {
73    /**
74     * The logger for this class.
75     */
76    private static final Logger LOG = Logger.getLogger(StartIDE.class.getCanonicalName());
77
78    private final static Object lock = new Object();
79
80    private VRServer vrServer;
81
82    public void notifyStatus(boolean connected) {
83        if (!connected) {
84            synchronized (lock) {
85                lock.notify();
86            }
87        }
88    }
89
90    @Reference
91    @Inject
92    private VRServerService vrServerService;
93
94    private VRFrame applicationFrame;
95
96    @PostConstruct
97    public void initialize() {
98        LOG.fine(&quot;Starting VR IDE&quot;);
99        vrServer = vrServerService.getVRServer();
100        applicationFrame = new VRFrame(vrServer, &quot;test&quot;);
101
102        LOG.info(getLatin1Title() + &quot; started successfully!&quot;);
103    }
104
105    @PreDestroy
106    public void teardown() {
107        applicationFrame.remove();
108        LOG.info(&quot;Stoped &quot; + getLatin1Title() + &quot; successfully!&quot;);
109        vrServer = null;
110    }
111
112    public VRServer getVrServer() {
113        return vrServer;
114    }
115
116    @Override
117    public void notify(HelmetAndControllerInfo haci) {
118
119    }
120
121    @Override
122    public String getLatin1Title() {
123        return &quot;VR IDE&quot;;
124    }
125
126    @Override
127    public void notifyKeyboardEvent(ClientKeyboardScancode[] downs, ClientKeyboardScancode[] ups, long incomingTime) {
128        System.out.println(&quot;me&quot;);
129    }
130}
131java.lang.NoClassDefFoundError: Lde/e_nexus/vr/tk/VRFrame;
132        at java.lang.Class.getDeclaredFields0(Native Method) ~[?:1.8.0_232]
133        at java.lang.Class.privateGetDeclaredFields(Class.java:2611) ~[?:1.8.0_232]
134        at java.lang.Class.getDeclaredFields(Class.java:1944) ~[?:1.8.0_232]
135        at org.apache.aries.cdi.container.internal.util.Reflection.allFields(Reflection.java:47) ~[!/:1.1.3]
136        at org.apache.aries.cdi.container.internal.annotated.AnnotatedTypeImpl.&lt;init&gt;(AnnotatedTypeImpl.java:42) ~[!/:1.1.3]
137        at org.apache.aries.cdi.container.internal.container.Discovery.lambda$discover$8(Discovery.java:133) ~[!/:1.1.3]
138        at java.util.HashMap$Values.forEach(HashMap.java:981) ~[?:1.8.0_232]
139        at org.apache.aries.cdi.container.internal.container.Discovery.discover(Discovery.java:130) ~[!/:1.1.3]
140        at org.apache.aries.cdi.container.internal.container.ContainerState.&lt;init&gt;(ContainerState.java:178) ~[!/:1.1.3]
141        at org.apache.aries.cdi.container.internal.Activator.doCreateExtension(Activator.java:209) [!/:1.1.3]
142        at org.apache.felix.utils.extender.AbstractExtender.createExtension(AbstractExtender.java:242) [!/:1.1.3]
143        at org.apache.felix.utils.extender.AbstractExtender.modifiedBundle(AbstractExtender.java:227) [!/:1.1.3]
144        at org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:488) [osgi.core-7.0.0.jar:?]
145        at org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:420) [osgi.core-7.0.0.jar:?]
146        at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:232) [osgi.core-7.0.0.jar:?]
147        at org.osgi.util.tracker.BundleTracker$Tracked.bundleChanged(BundleTracker.java:450) [osgi.core-7.0.0.jar:?]
148        at org.apache.felix.framework.EventDispatcher.invokeBundleListenerCallback(EventDispatcher.java:915) [org.apache.felix.framework-6.0.3.jar:?]
149        at org.apache.felix.framework.EventDispatcher.fireEventImmediately(EventDispatcher.java:834) [org.apache.felix.framework-6.0.3.jar:?]
150        at org.apache.felix.framework.EventDispatcher.fireBundleEvent(EventDispatcher.java:516) [org.apache.felix.framework-6.0.3.jar:?]
151        at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:4817) [org.apache.felix.framework-6.0.3.jar:?]
152        at org.apache.felix.framework.Felix.startBundle(Felix.java:2336) [org.apache.felix.framework-6.0.3.jar:?]
153        at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:998) [org.apache.felix.framework-6.0.3.jar:?]
154        at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1260) [!/:3.6.8]
155        at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1233) [!/:3.6.8]
156        at org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:520) [!/:3.6.8]
157        at org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:365) [!/:3.6.8]
158        at org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:316) [!/:3.6.8]
159Caused by: java.lang.ClassNotFoundException: de.e_nexus.vr.tk.VRFrame not found by de.e-nexus.component [87]
160        at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1597) ~[?:?]
161        at org.apache.felix.framework.BundleWiringImpl.access$300(BundleWiringImpl.java:79) ~[?:?]
162        at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1982) ~[?:?]
163        at java.lang.ClassLoader.loadClass(ClassLoader.java:351) ~[?:1.8.0_232]
164        at org.apache.felix.framework.BundleWiringImpl.getClassByDelegation(BundleWiringImpl.java:1375) ~[?:?]
165        at org.apache.felix.framework.BundleWiringImpl.searchImports(BundleWiringImpl.java:1618) ~[?:?]
166        at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1548) ~[?:?]
167        at org.apache.felix.framework.BundleWiringImpl.access$300(BundleWiringImpl.java:79) ~[?:?]
168        at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1982) ~[?:?]
169        at java.lang.ClassLoader.loadClass(ClassLoader.java:351) ~[?:1.8.0_232]
170        ... 27 more
171&lt;plugin&gt;
172    &lt;groupId&gt;org.apache.felix&lt;/groupId&gt;
173    &lt;artifactId&gt;maven-bundle-plugin&lt;/artifactId&gt;
174    &lt;version&gt;5.1.1&lt;/version&gt;
175    &lt;extensions&gt;true&lt;/extensions&gt;
176    &lt;configuration&gt;
177        &lt;instructions&gt;
178            &lt;Bundle-SymbolicName&gt;${project.artifactId}&lt;/Bundle-SymbolicName&gt;
179            &lt;Bundle-Version&gt;${project.version}&lt;/Bundle-Version&gt;
180            &lt;Bundle-Activator&gt;${Bundle-Activator}&lt;/Bundle-Activator&gt;
181            &lt;Export-Package&gt;
182                de.*;version=${project.version}
183            &lt;/Export-Package&gt;
184            &lt;Import-Package&gt;
185                *
186            &lt;/Import-Package&gt;
187        &lt;/instructions&gt;
188    &lt;/configuration&gt;
189&lt;/plugin&gt;
190

And packaging should be bundle like <packaging>bundle</packaging> for the OSGI bundles. You can see how package created from this command

1karaf@root()&gt; bundle:list
2START LEVEL 100 , List Threshold: 50
3 ID | State  | Lvl | Version            | Name
4----+--------+-----+--------------------+---------------------------------------------------------------------------
5 31 | Active |  80 | 4.3.0              | Apache Karaf :: OSGi Services :: Event
6 54 | Active |  80 | 1.3.2              | Apache Aries SPI Fly Dynamic Weaving Bundle
7 55 | Active |  80 | 9.0.0              | org.objectweb.asm
8 56 | Active |  80 | 9.0.0              | org.objectweb.asm.commons
9 57 | Active |  80 | 9.0.0              | org.objectweb.asm.tree
10 58 | Active |  80 | 9.0.0              | org.objectweb.asm.tree.analysis
11 59 | Active |  80 | 9.0.0              | org.objectweb.asm.util
12 60 | Active |  80 | 2.0.17             | OpenWebBeans Core
13 61 | Active |  80 | 2.0.17             | SPI definition
14 62 | Active |  80 | 1.1.3              | Apache Aries CDI - CDI Component Runtime (CCR)
15 63 | Active |  80 | 1.1.3              | Apache Aries CDI - SPI classes for Portable Extensions
16 64 | Active |  80 | 1.1.3              | Apache Aries CDI - Container using Apache OpenWebBeans
17 65 | Active |  80 | 1.1.3              | Apache Aries CDI - SPI
18 66 | Active |  80 | 1.0.12             | Apache Felix Converter
19 67 | Active |  80 | 1.2.0              | Apache Geronimo JSR-330 Spec 1.0
20 68 | Active |  80 | 1.1.0              | Apache Geronimo Expression Language Spec 2.2
21 69 | Active |  80 | 1.2.0              | Apache Geronimo Interceptor Spec 1.2
22 70 | Active |  80 | 1.2.0              | Apache Geronimo JCDI Spec 2.0
23 71 | Active |  80 | 1.3.0.3            | Apache ServiceMix :: Specs :: Annotation API 1.3
24 72 | Active |  80 | 4.17.0             | Apache XBean :: ASM shaded (repackaged)
25 73 | Active |  80 | 4.17.0             | Apache XBean OSGI Bundle Utilities
26 74 | Active |  80 | 4.17.0             | Apache XBean :: Finder shaded (repackaged)
27 75 | Active |  80 | 1.0.1.201505202024 | org.osgi:org.osgi.namespace.extender
28 76 | Active |  80 | 1.0.0.201505202024 | org.osgi:org.osgi.namespace.implementation
29 77 | Active |  80 | 1.0.0.201505202024 | org.osgi:org.osgi.namespace.service
30 78 | Active |  80 | 1.0.0.201810101357 | org.osgi:org.osgi.service.cdi
31 79 | Active |  80 | 1.1.0.201802012106 | org.osgi:org.osgi.util.function
32 80 | Active |  80 | 1.1.0.201802012106 | org.osgi:org.osgi.util.promise
33 81 | Active |  80 | 4.3.1.SNAPSHOT     | Apache Karaf :: OSGi Services :: Event
34134 | Active |  80 | 1.0.0              | Virtual reality server
35135 | Active |  80 | 0.0.1.SNAPSHOT     | VRComponent
36136 | Active |  80 | 0.0.1.SNAPSHOT     | VRFrame
37142 | Active |  80 | 0.0.1.SNAPSHOT     | Virtual reality integrated development environment (VRIDE)
38karaf@root()&gt;
3910:00:42.193 WARN [fileinstall-C:\Program Files\apache-karaf-4.3.0/deploy] Error while creating extension
40java.lang.NoClassDefFoundError: Lde/e_nexus/vr/tk/VRFrame;
41        at java.lang.Class.getDeclaredFields0(Native Method) ~[?:1.8.0_232]
42        at java.lang.Class.privateGetDeclaredFields(Class.java:2611) ~[?:1.8.0_232]
43        at java.lang.Class.getDeclaredFields(Class.java:1944) ~[?:1.8.0_232]
44        at org.apache.aries.cdi.container.internal.util.Reflection.allFields(Reflection.java:47) ~[!/:1.1.3]
45        at org.apache.aries.cdi.container.internal.annotated.AnnotatedTypeImpl.&lt;init&gt;(AnnotatedTypeImpl.java:42) ~[!/:1.1.3]
46        at org.apache.aries.cdi.container.internal.container.Discovery.lambda$discover$8(Discovery.java:133) ~[!/:1.1.3]
47        at java.util.HashMap$Values.forEach(HashMap.java:981) ~[?:1.8.0_232]
48package de.e_nexus.desktop.vr.ide;
49
50import java.util.logging.Logger;
51
52import javax.annotation.PostConstruct;
53import javax.annotation.PreDestroy;
54import javax.enterprise.context.ApplicationScoped;
55import javax.inject.Inject;
56
57import org.osgi.service.cdi.annotations.Reference;
58import org.osgi.service.cdi.annotations.Service;
59
60import de.e_nexus.vr.server.ClientKeyboardScancode;
61import de.e_nexus.vr.server.VRClientHelmetAndControllerListener;
62import de.e_nexus.vr.server.VRClientKeyboardListener;
63import de.e_nexus.vr.server.VRServer;
64import de.e_nexus.vr.server.listeners.VRClientRequestAppInfo;
65import de.e_nexus.vr.server.listeners.VRClientStatusListener;
66import de.e_nexus.vr.server.listeners.interaction.HelmetAndControllerInfo;
67import de.e_nexus.vr.server.osgi.inter.VRServerService;
68import de.e_nexus.vr.tk.VRFrame;
69
70@ApplicationScoped
71@Service
72public class StartIDE implements VRClientStatusListener, VRClientRequestAppInfo, VRClientHelmetAndControllerListener, VRClientKeyboardListener {
73    /**
74     * The logger for this class.
75     */
76    private static final Logger LOG = Logger.getLogger(StartIDE.class.getCanonicalName());
77
78    private final static Object lock = new Object();
79
80    private VRServer vrServer;
81
82    public void notifyStatus(boolean connected) {
83        if (!connected) {
84            synchronized (lock) {
85                lock.notify();
86            }
87        }
88    }
89
90    @Reference
91    @Inject
92    private VRServerService vrServerService;
93
94    private VRFrame applicationFrame;
95
96    @PostConstruct
97    public void initialize() {
98        LOG.fine(&quot;Starting VR IDE&quot;);
99        vrServer = vrServerService.getVRServer();
100        applicationFrame = new VRFrame(vrServer, &quot;test&quot;);
101
102        LOG.info(getLatin1Title() + &quot; started successfully!&quot;);
103    }
104
105    @PreDestroy
106    public void teardown() {
107        applicationFrame.remove();
108        LOG.info(&quot;Stoped &quot; + getLatin1Title() + &quot; successfully!&quot;);
109        vrServer = null;
110    }
111
112    public VRServer getVrServer() {
113        return vrServer;
114    }
115
116    @Override
117    public void notify(HelmetAndControllerInfo haci) {
118
119    }
120
121    @Override
122    public String getLatin1Title() {
123        return &quot;VR IDE&quot;;
124    }
125
126    @Override
127    public void notifyKeyboardEvent(ClientKeyboardScancode[] downs, ClientKeyboardScancode[] ups, long incomingTime) {
128        System.out.println(&quot;me&quot;);
129    }
130}
131java.lang.NoClassDefFoundError: Lde/e_nexus/vr/tk/VRFrame;
132        at java.lang.Class.getDeclaredFields0(Native Method) ~[?:1.8.0_232]
133        at java.lang.Class.privateGetDeclaredFields(Class.java:2611) ~[?:1.8.0_232]
134        at java.lang.Class.getDeclaredFields(Class.java:1944) ~[?:1.8.0_232]
135        at org.apache.aries.cdi.container.internal.util.Reflection.allFields(Reflection.java:47) ~[!/:1.1.3]
136        at org.apache.aries.cdi.container.internal.annotated.AnnotatedTypeImpl.&lt;init&gt;(AnnotatedTypeImpl.java:42) ~[!/:1.1.3]
137        at org.apache.aries.cdi.container.internal.container.Discovery.lambda$discover$8(Discovery.java:133) ~[!/:1.1.3]
138        at java.util.HashMap$Values.forEach(HashMap.java:981) ~[?:1.8.0_232]
139        at org.apache.aries.cdi.container.internal.container.Discovery.discover(Discovery.java:130) ~[!/:1.1.3]
140        at org.apache.aries.cdi.container.internal.container.ContainerState.&lt;init&gt;(ContainerState.java:178) ~[!/:1.1.3]
141        at org.apache.aries.cdi.container.internal.Activator.doCreateExtension(Activator.java:209) [!/:1.1.3]
142        at org.apache.felix.utils.extender.AbstractExtender.createExtension(AbstractExtender.java:242) [!/:1.1.3]
143        at org.apache.felix.utils.extender.AbstractExtender.modifiedBundle(AbstractExtender.java:227) [!/:1.1.3]
144        at org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:488) [osgi.core-7.0.0.jar:?]
145        at org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:420) [osgi.core-7.0.0.jar:?]
146        at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:232) [osgi.core-7.0.0.jar:?]
147        at org.osgi.util.tracker.BundleTracker$Tracked.bundleChanged(BundleTracker.java:450) [osgi.core-7.0.0.jar:?]
148        at org.apache.felix.framework.EventDispatcher.invokeBundleListenerCallback(EventDispatcher.java:915) [org.apache.felix.framework-6.0.3.jar:?]
149        at org.apache.felix.framework.EventDispatcher.fireEventImmediately(EventDispatcher.java:834) [org.apache.felix.framework-6.0.3.jar:?]
150        at org.apache.felix.framework.EventDispatcher.fireBundleEvent(EventDispatcher.java:516) [org.apache.felix.framework-6.0.3.jar:?]
151        at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:4817) [org.apache.felix.framework-6.0.3.jar:?]
152        at org.apache.felix.framework.Felix.startBundle(Felix.java:2336) [org.apache.felix.framework-6.0.3.jar:?]
153        at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:998) [org.apache.felix.framework-6.0.3.jar:?]
154        at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1260) [!/:3.6.8]
155        at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1233) [!/:3.6.8]
156        at org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:520) [!/:3.6.8]
157        at org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:365) [!/:3.6.8]
158        at org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:316) [!/:3.6.8]
159Caused by: java.lang.ClassNotFoundException: de.e_nexus.vr.tk.VRFrame not found by de.e-nexus.component [87]
160        at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1597) ~[?:?]
161        at org.apache.felix.framework.BundleWiringImpl.access$300(BundleWiringImpl.java:79) ~[?:?]
162        at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1982) ~[?:?]
163        at java.lang.ClassLoader.loadClass(ClassLoader.java:351) ~[?:1.8.0_232]
164        at org.apache.felix.framework.BundleWiringImpl.getClassByDelegation(BundleWiringImpl.java:1375) ~[?:?]
165        at org.apache.felix.framework.BundleWiringImpl.searchImports(BundleWiringImpl.java:1618) ~[?:?]
166        at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1548) ~[?:?]
167        at org.apache.felix.framework.BundleWiringImpl.access$300(BundleWiringImpl.java:79) ~[?:?]
168        at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1982) ~[?:?]
169        at java.lang.ClassLoader.loadClass(ClassLoader.java:351) ~[?:1.8.0_232]
170        ... 27 more
171&lt;plugin&gt;
172    &lt;groupId&gt;org.apache.felix&lt;/groupId&gt;
173    &lt;artifactId&gt;maven-bundle-plugin&lt;/artifactId&gt;
174    &lt;version&gt;5.1.1&lt;/version&gt;
175    &lt;extensions&gt;true&lt;/extensions&gt;
176    &lt;configuration&gt;
177        &lt;instructions&gt;
178            &lt;Bundle-SymbolicName&gt;${project.artifactId}&lt;/Bundle-SymbolicName&gt;
179            &lt;Bundle-Version&gt;${project.version}&lt;/Bundle-Version&gt;
180            &lt;Bundle-Activator&gt;${Bundle-Activator}&lt;/Bundle-Activator&gt;
181            &lt;Export-Package&gt;
182                de.*;version=${project.version}
183            &lt;/Export-Package&gt;
184            &lt;Import-Package&gt;
185                *
186            &lt;/Import-Package&gt;
187        &lt;/instructions&gt;
188    &lt;/configuration&gt;
189&lt;/plugin&gt;
190mvn archetype:generate \
191    -DarchetypeGroupId=org.apache.karaf.archetypes \
192    -DarchetypeArtifactId=karaf-bundle-archetype \
193    -DarchetypeVersion=4.3.0 \
194    -DgroupId=io.github.ozkanpakdil \
195    -DartifactId=myfirstbundle \
196    -Dversion=1.0-SNAPSHOT \
197    -Dpackage=io.github.ozkanpakdil
198

https://karaf.apache.org/manual/latest/#_creating_bundles is explaining nicely. Other then that I highly suggest have namespaces without underscore. Instead of "e_nexus" have enexus and for <groupId>de.e-nexus</groupId> have <groupId>de.enexus</groupId>. Last but not least instead of <artifactId>vr.server</artifactId> have <artifactId>vrserver</artifactId>, I am suggesting these because OSGI is already complicated enviroenment, having simple and easy names will make easier to catch errors and maintain the code. Also it will prevent problems in case you move to another OS, you never know how these behaves between OSes.

There were some warnings related to same namespace is in different jars, I changed the code in "frame" and "component" modules accordingly. Below is the log from local, I can see that VR-Client log, I think it started working as expected.

1karaf@root()&gt; bundle:list
2START LEVEL 100 , List Threshold: 50
3 ID | State  | Lvl | Version            | Name
4----+--------+-----+--------------------+---------------------------------------------------------------------------
5 31 | Active |  80 | 4.3.0              | Apache Karaf :: OSGi Services :: Event
6 54 | Active |  80 | 1.3.2              | Apache Aries SPI Fly Dynamic Weaving Bundle
7 55 | Active |  80 | 9.0.0              | org.objectweb.asm
8 56 | Active |  80 | 9.0.0              | org.objectweb.asm.commons
9 57 | Active |  80 | 9.0.0              | org.objectweb.asm.tree
10 58 | Active |  80 | 9.0.0              | org.objectweb.asm.tree.analysis
11 59 | Active |  80 | 9.0.0              | org.objectweb.asm.util
12 60 | Active |  80 | 2.0.17             | OpenWebBeans Core
13 61 | Active |  80 | 2.0.17             | SPI definition
14 62 | Active |  80 | 1.1.3              | Apache Aries CDI - CDI Component Runtime (CCR)
15 63 | Active |  80 | 1.1.3              | Apache Aries CDI - SPI classes for Portable Extensions
16 64 | Active |  80 | 1.1.3              | Apache Aries CDI - Container using Apache OpenWebBeans
17 65 | Active |  80 | 1.1.3              | Apache Aries CDI - SPI
18 66 | Active |  80 | 1.0.12             | Apache Felix Converter
19 67 | Active |  80 | 1.2.0              | Apache Geronimo JSR-330 Spec 1.0
20 68 | Active |  80 | 1.1.0              | Apache Geronimo Expression Language Spec 2.2
21 69 | Active |  80 | 1.2.0              | Apache Geronimo Interceptor Spec 1.2
22 70 | Active |  80 | 1.2.0              | Apache Geronimo JCDI Spec 2.0
23 71 | Active |  80 | 1.3.0.3            | Apache ServiceMix :: Specs :: Annotation API 1.3
24 72 | Active |  80 | 4.17.0             | Apache XBean :: ASM shaded (repackaged)
25 73 | Active |  80 | 4.17.0             | Apache XBean OSGI Bundle Utilities
26 74 | Active |  80 | 4.17.0             | Apache XBean :: Finder shaded (repackaged)
27 75 | Active |  80 | 1.0.1.201505202024 | org.osgi:org.osgi.namespace.extender
28 76 | Active |  80 | 1.0.0.201505202024 | org.osgi:org.osgi.namespace.implementation
29 77 | Active |  80 | 1.0.0.201505202024 | org.osgi:org.osgi.namespace.service
30 78 | Active |  80 | 1.0.0.201810101357 | org.osgi:org.osgi.service.cdi
31 79 | Active |  80 | 1.1.0.201802012106 | org.osgi:org.osgi.util.function
32 80 | Active |  80 | 1.1.0.201802012106 | org.osgi:org.osgi.util.promise
33 81 | Active |  80 | 4.3.1.SNAPSHOT     | Apache Karaf :: OSGi Services :: Event
34134 | Active |  80 | 1.0.0              | Virtual reality server
35135 | Active |  80 | 0.0.1.SNAPSHOT     | VRComponent
36136 | Active |  80 | 0.0.1.SNAPSHOT     | VRFrame
37142 | Active |  80 | 0.0.1.SNAPSHOT     | Virtual reality integrated development environment (VRIDE)
38karaf@root()&gt;
3910:00:42.193 WARN [fileinstall-C:\Program Files\apache-karaf-4.3.0/deploy] Error while creating extension
40java.lang.NoClassDefFoundError: Lde/e_nexus/vr/tk/VRFrame;
41        at java.lang.Class.getDeclaredFields0(Native Method) ~[?:1.8.0_232]
42        at java.lang.Class.privateGetDeclaredFields(Class.java:2611) ~[?:1.8.0_232]
43        at java.lang.Class.getDeclaredFields(Class.java:1944) ~[?:1.8.0_232]
44        at org.apache.aries.cdi.container.internal.util.Reflection.allFields(Reflection.java:47) ~[!/:1.1.3]
45        at org.apache.aries.cdi.container.internal.annotated.AnnotatedTypeImpl.&lt;init&gt;(AnnotatedTypeImpl.java:42) ~[!/:1.1.3]
46        at org.apache.aries.cdi.container.internal.container.Discovery.lambda$discover$8(Discovery.java:133) ~[!/:1.1.3]
47        at java.util.HashMap$Values.forEach(HashMap.java:981) ~[?:1.8.0_232]
48package de.e_nexus.desktop.vr.ide;
49
50import java.util.logging.Logger;
51
52import javax.annotation.PostConstruct;
53import javax.annotation.PreDestroy;
54import javax.enterprise.context.ApplicationScoped;
55import javax.inject.Inject;
56
57import org.osgi.service.cdi.annotations.Reference;
58import org.osgi.service.cdi.annotations.Service;
59
60import de.e_nexus.vr.server.ClientKeyboardScancode;
61import de.e_nexus.vr.server.VRClientHelmetAndControllerListener;
62import de.e_nexus.vr.server.VRClientKeyboardListener;
63import de.e_nexus.vr.server.VRServer;
64import de.e_nexus.vr.server.listeners.VRClientRequestAppInfo;
65import de.e_nexus.vr.server.listeners.VRClientStatusListener;
66import de.e_nexus.vr.server.listeners.interaction.HelmetAndControllerInfo;
67import de.e_nexus.vr.server.osgi.inter.VRServerService;
68import de.e_nexus.vr.tk.VRFrame;
69
70@ApplicationScoped
71@Service
72public class StartIDE implements VRClientStatusListener, VRClientRequestAppInfo, VRClientHelmetAndControllerListener, VRClientKeyboardListener {
73    /**
74     * The logger for this class.
75     */
76    private static final Logger LOG = Logger.getLogger(StartIDE.class.getCanonicalName());
77
78    private final static Object lock = new Object();
79
80    private VRServer vrServer;
81
82    public void notifyStatus(boolean connected) {
83        if (!connected) {
84            synchronized (lock) {
85                lock.notify();
86            }
87        }
88    }
89
90    @Reference
91    @Inject
92    private VRServerService vrServerService;
93
94    private VRFrame applicationFrame;
95
96    @PostConstruct
97    public void initialize() {
98        LOG.fine(&quot;Starting VR IDE&quot;);
99        vrServer = vrServerService.getVRServer();
100        applicationFrame = new VRFrame(vrServer, &quot;test&quot;);
101
102        LOG.info(getLatin1Title() + &quot; started successfully!&quot;);
103    }
104
105    @PreDestroy
106    public void teardown() {
107        applicationFrame.remove();
108        LOG.info(&quot;Stoped &quot; + getLatin1Title() + &quot; successfully!&quot;);
109        vrServer = null;
110    }
111
112    public VRServer getVrServer() {
113        return vrServer;
114    }
115
116    @Override
117    public void notify(HelmetAndControllerInfo haci) {
118
119    }
120
121    @Override
122    public String getLatin1Title() {
123        return &quot;VR IDE&quot;;
124    }
125
126    @Override
127    public void notifyKeyboardEvent(ClientKeyboardScancode[] downs, ClientKeyboardScancode[] ups, long incomingTime) {
128        System.out.println(&quot;me&quot;);
129    }
130}
131java.lang.NoClassDefFoundError: Lde/e_nexus/vr/tk/VRFrame;
132        at java.lang.Class.getDeclaredFields0(Native Method) ~[?:1.8.0_232]
133        at java.lang.Class.privateGetDeclaredFields(Class.java:2611) ~[?:1.8.0_232]
134        at java.lang.Class.getDeclaredFields(Class.java:1944) ~[?:1.8.0_232]
135        at org.apache.aries.cdi.container.internal.util.Reflection.allFields(Reflection.java:47) ~[!/:1.1.3]
136        at org.apache.aries.cdi.container.internal.annotated.AnnotatedTypeImpl.&lt;init&gt;(AnnotatedTypeImpl.java:42) ~[!/:1.1.3]
137        at org.apache.aries.cdi.container.internal.container.Discovery.lambda$discover$8(Discovery.java:133) ~[!/:1.1.3]
138        at java.util.HashMap$Values.forEach(HashMap.java:981) ~[?:1.8.0_232]
139        at org.apache.aries.cdi.container.internal.container.Discovery.discover(Discovery.java:130) ~[!/:1.1.3]
140        at org.apache.aries.cdi.container.internal.container.ContainerState.&lt;init&gt;(ContainerState.java:178) ~[!/:1.1.3]
141        at org.apache.aries.cdi.container.internal.Activator.doCreateExtension(Activator.java:209) [!/:1.1.3]
142        at org.apache.felix.utils.extender.AbstractExtender.createExtension(AbstractExtender.java:242) [!/:1.1.3]
143        at org.apache.felix.utils.extender.AbstractExtender.modifiedBundle(AbstractExtender.java:227) [!/:1.1.3]
144        at org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:488) [osgi.core-7.0.0.jar:?]
145        at org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:420) [osgi.core-7.0.0.jar:?]
146        at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:232) [osgi.core-7.0.0.jar:?]
147        at org.osgi.util.tracker.BundleTracker$Tracked.bundleChanged(BundleTracker.java:450) [osgi.core-7.0.0.jar:?]
148        at org.apache.felix.framework.EventDispatcher.invokeBundleListenerCallback(EventDispatcher.java:915) [org.apache.felix.framework-6.0.3.jar:?]
149        at org.apache.felix.framework.EventDispatcher.fireEventImmediately(EventDispatcher.java:834) [org.apache.felix.framework-6.0.3.jar:?]
150        at org.apache.felix.framework.EventDispatcher.fireBundleEvent(EventDispatcher.java:516) [org.apache.felix.framework-6.0.3.jar:?]
151        at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:4817) [org.apache.felix.framework-6.0.3.jar:?]
152        at org.apache.felix.framework.Felix.startBundle(Felix.java:2336) [org.apache.felix.framework-6.0.3.jar:?]
153        at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:998) [org.apache.felix.framework-6.0.3.jar:?]
154        at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1260) [!/:3.6.8]
155        at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1233) [!/:3.6.8]
156        at org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:520) [!/:3.6.8]
157        at org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:365) [!/:3.6.8]
158        at org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:316) [!/:3.6.8]
159Caused by: java.lang.ClassNotFoundException: de.e_nexus.vr.tk.VRFrame not found by de.e-nexus.component [87]
160        at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1597) ~[?:?]
161        at org.apache.felix.framework.BundleWiringImpl.access$300(BundleWiringImpl.java:79) ~[?:?]
162        at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1982) ~[?:?]
163        at java.lang.ClassLoader.loadClass(ClassLoader.java:351) ~[?:1.8.0_232]
164        at org.apache.felix.framework.BundleWiringImpl.getClassByDelegation(BundleWiringImpl.java:1375) ~[?:?]
165        at org.apache.felix.framework.BundleWiringImpl.searchImports(BundleWiringImpl.java:1618) ~[?:?]
166        at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1548) ~[?:?]
167        at org.apache.felix.framework.BundleWiringImpl.access$300(BundleWiringImpl.java:79) ~[?:?]
168        at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1982) ~[?:?]
169        at java.lang.ClassLoader.loadClass(ClassLoader.java:351) ~[?:1.8.0_232]
170        ... 27 more
171&lt;plugin&gt;
172    &lt;groupId&gt;org.apache.felix&lt;/groupId&gt;
173    &lt;artifactId&gt;maven-bundle-plugin&lt;/artifactId&gt;
174    &lt;version&gt;5.1.1&lt;/version&gt;
175    &lt;extensions&gt;true&lt;/extensions&gt;
176    &lt;configuration&gt;
177        &lt;instructions&gt;
178            &lt;Bundle-SymbolicName&gt;${project.artifactId}&lt;/Bundle-SymbolicName&gt;
179            &lt;Bundle-Version&gt;${project.version}&lt;/Bundle-Version&gt;
180            &lt;Bundle-Activator&gt;${Bundle-Activator}&lt;/Bundle-Activator&gt;
181            &lt;Export-Package&gt;
182                de.*;version=${project.version}
183            &lt;/Export-Package&gt;
184            &lt;Import-Package&gt;
185                *
186            &lt;/Import-Package&gt;
187        &lt;/instructions&gt;
188    &lt;/configuration&gt;
189&lt;/plugin&gt;
190mvn archetype:generate \
191    -DarchetypeGroupId=org.apache.karaf.archetypes \
192    -DarchetypeArtifactId=karaf-bundle-archetype \
193    -DarchetypeVersion=4.3.0 \
194    -DgroupId=io.github.ozkanpakdil \
195    -DartifactId=myfirstbundle \
196    -Dversion=1.0-SNAPSHOT \
197    -Dpackage=io.github.ozkanpakdil
198ozkan@DESKTOP-NF90OD6 MINGW64 /c/Program Files/apache-karaf-4.3.0/bin
199$ ./karaf
200        __ __                  ____
201       / //_/____ __________ _/ __/
202      / ,&lt;  / __ `/ ___/ __ `/ /_
203     / /| |/ /_/ / /  / /_/ / __/
204    /_/ |_|\__,_/_/   \__,_/_/
205
206  Apache Karaf (4.3.0)
207
208Hit '&lt;tab&gt;' for a list of available commands
209and '[cmd] --help' for help on a specific command.
210Hit '&lt;ctrl-d&gt;' or type 'system:shutdown' or 'logout' to shutdown Karaf.
211
212Start Osgi spiced VR Server ... [OK]  @10:23 (You might get asked by the firewall if you like to allow java to communicate to other systems. In order to connect the local VR-Client you are requested to grant the communication.)
213karaf@root()&gt; bundle:list
214START LEVEL 100 , List Threshold: 50
215ID | State    | Lvl | Version            | Name
216---+----------+-----+--------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------
21731 | Active   |  80 | 4.3.0              | Apache Karaf :: OSGi Services :: Event
21855 | Active   |  80 | 1.0.0              | Virtual reality server
21956 | Active   |  80 | 0.0.1.SNAPSHOT     | VRComponent
22057 | Active   |  80 | 0.0.1.SNAPSHOT     | VRFrame
22158 | Active   |  80 | 1.3.2              | Apache Aries SPI Fly Dynamic Weaving Bundle
22259 | Active   |  80 | 9.0.0              | org.objectweb.asm
22360 | Active   |  80 | 9.0.0              | org.objectweb.asm.commons
22461 | Active   |  80 | 9.0.0              | org.objectweb.asm.tree
22562 | Active   |  80 | 9.0.0              | org.objectweb.asm.tree.analysis
22663 | Active   |  80 | 9.0.0              | org.objectweb.asm.util
22764 | Active   |  80 | 2.0.17             | OpenWebBeans Core
22865 | Active   |  80 | 2.0.17             | SPI definition
22966 | Active   |  80 | 1.1.3              | Apache Aries CDI - CDI Component Runtime (CCR)
23067 | Active   |  80 | 1.1.3              | Apache Aries CDI - SPI classes for Portable Extensions
23168 | Active   |  80 | 1.1.3              | Apache Aries CDI - Container using Apache OpenWebBeans
23269 | Active   |  80 | 1.1.3              | Apache Aries CDI - SPI
23370 | Active   |  80 | 1.0.12             | Apache Felix Converter
23471 | Active   |  80 | 1.2.0              | Apache Geronimo JSR-330 Spec 1.0
23572 | Active   |  80 | 1.1.0              | Apache Geronimo Expression Language Spec 2.2
23673 | Active   |  80 | 1.2.0              | Apache Geronimo Interceptor Spec 1.2
23774 | Active   |  80 | 1.2.0              | Apache Geronimo JCDI Spec 2.0
23875 | Active   |  80 | 1.3.0.3            | Apache ServiceMix :: Specs :: Annotation API 1.3
23976 | Active   |  80 | 4.17.0             | Apache XBean :: ASM shaded (repackaged)
24077 | Active   |  80 | 4.17.0             | Apache XBean OSGI Bundle Utilities
24178 | Active   |  80 | 4.17.0             | Apache XBean :: Finder shaded (repackaged)
24279 | Active   |  80 | 1.0.1.201505202024 | org.osgi:org.osgi.namespace.extender
24380 | Active   |  80 | 1.0.0.201505202024 | org.osgi:org.osgi.namespace.implementation
24481 | Active   |  80 | 1.0.0.201505202024 | org.osgi:org.osgi.namespace.service
24582 | Active   |  80 | 1.0.0.201810101357 | org.osgi:org.osgi.service.cdi
24683 | Active   |  80 | 1.1.0.201802012106 | org.osgi:org.osgi.util.function
24784 | Active   |  80 | 1.1.0.201802012106 | org.osgi:org.osgi.util.promise
24885 | Resolved |  80 | 4.3.1.SNAPSHOT     | Apache Karaf :: OSGi Services :: Event
24986 | Active   |  80 | 0.0.1.SNAPSHOT     | Virtual reality integrated development environment (VRIDE)
250karaf@root()&gt; log:display
25110:23:10.508 INFO [activator-1-thread-2] Registering commands for bundle org.apache.karaf.log.core/4.3.0
25210:23:10.821 INFO [activator-1-thread-2] Deployment finished. Registering FeatureDeploymentListener
25310:23:10.821 INFO [activator-1-thread-2] Registering commands for bundle org.apache.karaf.features.command/4.3.0
25410:23:10.828 INFO [activator-1-thread-3] Registering commands for bundle org.apache.karaf.kar.core/4.3.0
25510:23:10.855 INFO [FelixStartLevel] Command registration delayed for bundle org.apache.karaf.shell.ssh/4.3.0. Missing service: [org.apache.sshd.server.SshServer]
25610:23:10.871 INFO [FelixStartLevel] Registering commands for bundle org.apache.karaf.system.core/4.3.0
25710:23:10.893 INFO [FelixStartLevel] Registering commands for bundle org.apache.karaf.event/4.3.0
25810:23:11.089 INFO [activator-1-thread-1] Registering commands for bundle org.apache.karaf.shell.ssh/4.3.0
25910:23:11.128 INFO [activator-1-thread-1] No detected/configured IoServiceFactoryFactory using Nio2ServiceFactoryFactory
26010:23:12.346 INFO [activator-1-thread-1] Registering org.osgi.jmx.framework.PackageStateMBean to MBeanServer org.apache.karaf.management.internal.EventAdminMBeanServerWrapper@a766065 with name osgi.core:type=packageState,version=1.5,framework=org.apache.felix.framework,uuid=1ba06c85-21b1-4145-9726-b08a81b6cad3
26110:23:12.346 INFO [activator-1-thread-1] Registering org.osgi.jmx.framework.wiring.BundleWiringStateMBean to MBeanServer org.apache.karaf.management.internal.EventAdminMBeanServerWrapper@a766065 with name osgi.core:type=wiringState,version=1.1,framework=org.apache.felix.framework,uuid=1ba06c85-21b1-4145-9726-b08a81b6cad3
26210:23:12.346 INFO [activator-1-thread-1] Registering org.osgi.jmx.framework.BundleStateMBean to MBeanServer org.apache.karaf.management.internal.EventAdminMBeanServerWrapper@a766065 with name osgi.core:type=bundleState,version=1.7,framework=org.apache.felix.framework,uuid=1ba06c85-21b1-4145-9726-b08a81b6cad3
26310:23:12.351 INFO [activator-1-thread-1] Registering org.osgi.jmx.framework.ServiceStateMBean to MBeanServer org.apache.karaf.management.internal.EventAdminMBeanServerWrapper@a766065 with name osgi.core:type=serviceState,version=1.7,framework=org.apache.felix.framework,uuid=1ba06c85-21b1-4145-9726-b08a81b6cad3
26410:23:12.352 INFO [activator-1-thread-1] Registering org.osgi.jmx.framework.FrameworkMBean to MBeanServer org.apache.karaf.management.internal.EventAdminMBeanServerWrapper@a766065 with name osgi.core:type=framework,version=1.7,framework=org.apache.felix.framework,uuid=1ba06c85-21b1-4145-9726-b08a81b6cad3
26510:23:12.353 INFO [activator-1-thread-1] Registering org.osgi.jmx.service.cm.ConfigurationAdminMBean to MBeanServer org.apache.karaf.management.internal.EventAdminMBeanServerWrapper@a766065 with name osgi.compendium:service=cm,version=1.3,framework=org.apache.felix.framework,uuid=1ba06c85-21b1-4145-9726-b08a81b6cad3
26610:23:12.388 INFO [activator-1-thread-1] Unregistering org.osgi.jmx.framework.PackageStateMBean to MBeanServer org.apache.karaf.management.internal.EventAdminMBeanServerWrapper@a766065 with name osgi.core:type=packageState,version=1.5,framework=org.apache.felix.framework,uuid=1ba06c85-21b1-4145-9726-b08a81b6cad3
26710:23:12.389 INFO [activator-1-thread-1] Unregistering org.osgi.jmx.framework.wiring.BundleWiringStateMBean to MBeanServer org.apache.karaf.management.internal.EventAdminMBeanServerWrapper@a766065 with name osgi.core:type=wiringState,version=1.1,framework=org.apache.felix.framework,uuid=1ba06c85-21b1-4145-9726-b08a81b6cad3
26810:23:12.390 INFO [activator-1-thread-1] Unregistering org.osgi.jmx.framework.BundleStateMBean to MBeanServer org.apache.karaf.management.internal.EventAdminMBeanServerWrapper@a766065 with name osgi.core:type=bundleState,version=1.7,framework=org.apache.felix.framework,uuid=1ba06c85-21b1-4145-9726-b08a81b6cad3
26910:23:12.390 INFO [activator-1-thread-1] Unregistering org.osgi.jmx.framework.ServiceStateMBean to MBeanServer org.apache.karaf.management.internal.EventAdminMBeanServerWrapper@a766065 with name osgi.core:type=serviceState,version=1.7,framework=org.apache.felix.framework,uuid=1ba06c85-21b1-4145-9726-b08a81b6cad3
27010:23:12.391 INFO [activator-1-thread-1] Unregistering org.osgi.jmx.framework.FrameworkMBean to MBeanServer org.apache.karaf.management.internal.EventAdminMBeanServerWrapper@a766065 with name osgi.core:type=framework,version=1.7,framework=org.apache.felix.framework,uuid=1ba06c85-21b1-4145-9726-b08a81b6cad3
27110:23:12.392 INFO [activator-1-thread-1] Unregistering org.osgi.jmx.service.cm.ConfigurationAdminMBean to MBeanServer org.apache.karaf.management.internal.EventAdminMBeanServerWrapper@a766065 with name osgi.compendium:service=cm,version=1.3,framework=org.apache.felix.framework,uuid=1ba06c85-21b1-4145-9726-b08a81b6cad3
27210:23:12.394 WARN [activator-1-thread-1] Task rejected for JMX Notification dispatch of event [org.osgi.framework.ServiceEvent[source=[javax.management.MBeanServer]]] - Dispatcher may have been shutdown
27310:23:12.420 INFO [activator-1-thread-1] Registering org.osgi.jmx.framework.PackageStateMBean to MBeanServer org.apache.karaf.management.internal.EventAdminMBeanServerWrapper@4a85005 with name osgi.core:type=packageState,version=1.5,framework=org.apache.felix.framework,uuid=1ba06c85-21b1-4145-9726-b08a81b6cad3
27410:23:12.421 INFO [activator-1-thread-1] Registering org.osgi.jmx.framework.wiring.BundleWiringStateMBean to MBeanServer org.apache.karaf.management.internal.EventAdminMBeanServerWrapper@4a85005 with name osgi.core:type=wiringState,version=1.1,framework=org.apache.felix.framework,uuid=1ba06c85-21b1-4145-9726-b08a81b6cad3
27510:23:12.422 INFO [activator-1-thread-1] Registering org.osgi.jmx.framework.BundleStateMBean to MBeanServer org.apache.karaf.management.internal.EventAdminMBeanServerWrapper@4a85005 with name osgi.core:type=bundleState,version=1.7,framework=org.apache.felix.framework,uuid=1ba06c85-21b1-4145-9726-b08a81b6cad3
27610:23:12.423 INFO [activator-1-thread-1] Registering org.osgi.jmx.framework.ServiceStateMBean to MBeanServer org.apache.karaf.management.internal.EventAdminMBeanServerWrapper@4a85005 with name osgi.core:type=serviceState,version=1.7,framework=org.apache.felix.framework,uuid=1ba06c85-21b1-4145-9726-b08a81b6cad3
27710:23:12.423 INFO [activator-1-thread-1] Registering org.osgi.jmx.framework.FrameworkMBean to MBeanServer org.apache.karaf.management.internal.EventAdminMBeanServerWrapper@4a85005 with name osgi.core:type=framework,version=1.7,framework=org.apache.felix.framework,uuid=1ba06c85-21b1-4145-9726-b08a81b6cad3
27810:23:12.424 INFO [activator-1-thread-1] Registering org.osgi.jmx.service.cm.ConfigurationAdminMBean to MBeanServer org.apache.karaf.management.internal.EventAdminMBeanServerWrapper@4a85005 with name osgi.compendium:service=cm,version=1.3,framework=org.apache.felix.framework,uuid=1ba06c85-21b1-4145-9726-b08a81b6cad3
279
280
281

Source https://stackoverflow.com/questions/65504619

QUESTION

Why does the mobile-version navbar pops up automatically when downsizing screen?

Asked 2020-Jul-22 at 19:23

I am doing a side project about a movie website. I designed an RWD navbar as following. When I downsize the screen to the break point which is 576px, the mobile-version navbar would pop up automatically then hide. The result can be seen if running the snippet then expand and collapse the window. I guess the checkbox causes this issue but not really sure. Could someone help me with this issue, please? Thank you!

1* {
2  padding: 0;
3  margin: 0;
4  box-sizing: border-box;
5  font-family: 'Nunito', sans-serif;
6}
7
8.wrap {
9  width: 100%;
10}
11
12header {
13  height: 100px;
14  background: #000;
15  padding: 0 10px;
16  color: #fff;
17  display: flex;
18  align-items: center;
19  position: relative;
20}
21
22#checked {
23  visibility: hidden;
24  z-index: -9999;
25  position: absolute;
26}
27
28#checked:checked ~.navbar {
29  right: 0;
30}
31
32.logo {
33  height: 60%;
34  vertical-align: middle;
35}
36
37.navbar{
38  margin-left: auto;
39  font-size: 0;
40  position: fixed;
41  width: 100%;
42  height: 100vh;
43  background: #000;
44  right: -100%;
45  top: 0;
46  display: flex;
47  justify-content: center;
48  align-items: center;
49  flex-direction: column;
50  transition: .5s;
51  z-index: 999;
52}
53
54.navbar a {
55  display: block;
56  margin: 20px 0;
57  transition: .4s;
58}
59
60.navbar a:hover, .hideBtn:hover {
61  color: #3498db;
62}
63
64.navbar a,
65 .hideBtn, .showBtn {
66  font-size: 20px;
67  padding: 0 10px;
68  text-decoration: none;
69  color: #fff;
70}
71
72.showBtn {
73  position: absolute;
74  top: 37px;
75  right: 10px;
76}
77
78.showcase {
79  position: relative;
80  background: url("./image/photo-1517604931442-7e0c8ed2963c.jpg");
81  background-size: cover;
82  background-repeat: no-repeat;
83  background-position: center;
84  width: 100%;
85  height: calc(100vh - 60px);
86  display: flex;
87  justify-content: center;
88  align-items: center;
89}
90
91.showcase .mask {
92  position: absolute;
93  width: 100%;
94  height: 100%;
95  background-color: #000;
96  z-index: 1;
97  opacity: 0.5;
98}
99
100.showcase .txt, 
101.showcase .slogan {
102  position: absolute;
103  color: #fff;
104  z-index: 2;
105  font-family: 'Nunito', sans-serif;
106  font-weight: bold;
107  font-size: 3em;
108}
109
110.showcase .slogan {
111  font-size: 1.2em;
112  bottom: 35%;
113}
114
115.service {
116  display: grid;
117  grid-template-rows: repeat(3, 1fr);
118  background-color: #000;
119  grid-gap:20px;
120  padding: 30px 50px;
121}
122
123.service a {
124  display: flex;
125  width: auto;
126  flex-flow: column nowrap;
127  justify-content: center;
128  align-items: center;
129  cursor: pointer;
130  text-decoration: none;
131}
132
133.service a img {
134  width: 30%;
135}
136
137.service a p {
138  color: #fff;
139  font-size: 1.5em;
140  font-weight: bolder;
141  margin: 10px;
142}
143
144.content {
145  display: grid;
146  grid-template-rows: repeat(3, 1fr);
147  grid-template-columns: 1fr;
148  grid-gap: 0px;
149}
150
151.content div {
152  width: 100%;
153  text-align: center;
154  font-size: 1.5em;
155}
156
157.content div:nth-child(even) {
158  background-color: #000;
159  color: #fff;
160}
161
162.content div img {
163  width: 100%;
164}
165
166.content div p {
167    padding: 10px;
168  }
169
170footer {
171  display: flex;
172  flex-direction: column;
173  width: 100%;
174}
175
176.contact-info {
177  display: flex;
178  flex-direction: row;
179  justify-content: space-between;
180  align-items: center;
181  padding: 20px;
182  background-color: #000;
183}
184
185.contact-txt {
186  display: flex;
187  flex-flow: column nowrap;
188  width: 50%;
189  color: #fff;
190}
191
192footer #social-media img{
193  width: 30px;
194  margin: 0 5px;
195}
196
197.copyright {
198  text-align: center;
199}
200
201@media screen and (min-width: 576px) {
202  .showBtn, .navbar .hideBtn {
203    display: none;
204  }
205  .navbar{
206  margin-left: auto;
207  font-size: 0;
208  position: relative;
209  width: auto;
210  height: 100%;
211  background: #000;
212  right: 0;
213  top: 0;
214  display: flex;
215  justify-content: flex-end;
216  align-items: center;
217  flex-direction: row;
218  transition: none;
219  z-index: 0;
220}
221  .showcase .txt {
222    font-size: 4em;
223  }
224
225  .showcase .slogan {
226    font-size: 2em;
227  }
228
229  .service {
230    display: grid;
231    grid-template-rows: 1fr;
232    grid-template-columns: repeat(3, 1fr);
233  }
234  .content {
235    display: grid;
236    grid-template-rows: repeat(3, 1fr);
237  }
238  .content div {
239    display: grid;
240    grid-template-columns: 1fr 1fr;
241    align-items: center;
242    font-size: 1.2em;
243  }
244}
1* {
2  padding: 0;
3  margin: 0;
4  box-sizing: border-box;
5  font-family: 'Nunito', sans-serif;
6}
7
8.wrap {
9  width: 100%;
10}
11
12header {
13  height: 100px;
14  background: #000;
15  padding: 0 10px;
16  color: #fff;
17  display: flex;
18  align-items: center;
19  position: relative;
20}
21
22#checked {
23  visibility: hidden;
24  z-index: -9999;
25  position: absolute;
26}
27
28#checked:checked ~.navbar {
29  right: 0;
30}
31
32.logo {
33  height: 60%;
34  vertical-align: middle;
35}
36
37.navbar{
38  margin-left: auto;
39  font-size: 0;
40  position: fixed;
41  width: 100%;
42  height: 100vh;
43  background: #000;
44  right: -100%;
45  top: 0;
46  display: flex;
47  justify-content: center;
48  align-items: center;
49  flex-direction: column;
50  transition: .5s;
51  z-index: 999;
52}
53
54.navbar a {
55  display: block;
56  margin: 20px 0;
57  transition: .4s;
58}
59
60.navbar a:hover, .hideBtn:hover {
61  color: #3498db;
62}
63
64.navbar a,
65 .hideBtn, .showBtn {
66  font-size: 20px;
67  padding: 0 10px;
68  text-decoration: none;
69  color: #fff;
70}
71
72.showBtn {
73  position: absolute;
74  top: 37px;
75  right: 10px;
76}
77
78.showcase {
79  position: relative;
80  background: url("./image/photo-1517604931442-7e0c8ed2963c.jpg");
81  background-size: cover;
82  background-repeat: no-repeat;
83  background-position: center;
84  width: 100%;
85  height: calc(100vh - 60px);
86  display: flex;
87  justify-content: center;
88  align-items: center;
89}
90
91.showcase .mask {
92  position: absolute;
93  width: 100%;
94  height: 100%;
95  background-color: #000;
96  z-index: 1;
97  opacity: 0.5;
98}
99
100.showcase .txt, 
101.showcase .slogan {
102  position: absolute;
103  color: #fff;
104  z-index: 2;
105  font-family: 'Nunito', sans-serif;
106  font-weight: bold;
107  font-size: 3em;
108}
109
110.showcase .slogan {
111  font-size: 1.2em;
112  bottom: 35%;
113}
114
115.service {
116  display: grid;
117  grid-template-rows: repeat(3, 1fr);
118  background-color: #000;
119  grid-gap:20px;
120  padding: 30px 50px;
121}
122
123.service a {
124  display: flex;
125  width: auto;
126  flex-flow: column nowrap;
127  justify-content: center;
128  align-items: center;
129  cursor: pointer;
130  text-decoration: none;
131}
132
133.service a img {
134  width: 30%;
135}
136
137.service a p {
138  color: #fff;
139  font-size: 1.5em;
140  font-weight: bolder;
141  margin: 10px;
142}
143
144.content {
145  display: grid;
146  grid-template-rows: repeat(3, 1fr);
147  grid-template-columns: 1fr;
148  grid-gap: 0px;
149}
150
151.content div {
152  width: 100%;
153  text-align: center;
154  font-size: 1.5em;
155}
156
157.content div:nth-child(even) {
158  background-color: #000;
159  color: #fff;
160}
161
162.content div img {
163  width: 100%;
164}
165
166.content div p {
167    padding: 10px;
168  }
169
170footer {
171  display: flex;
172  flex-direction: column;
173  width: 100%;
174}
175
176.contact-info {
177  display: flex;
178  flex-direction: row;
179  justify-content: space-between;
180  align-items: center;
181  padding: 20px;
182  background-color: #000;
183}
184
185.contact-txt {
186  display: flex;
187  flex-flow: column nowrap;
188  width: 50%;
189  color: #fff;
190}
191
192footer #social-media img{
193  width: 30px;
194  margin: 0 5px;
195}
196
197.copyright {
198  text-align: center;
199}
200
201@media screen and (min-width: 576px) {
202  .showBtn, .navbar .hideBtn {
203    display: none;
204  }
205  .navbar{
206  margin-left: auto;
207  font-size: 0;
208  position: relative;
209  width: auto;
210  height: 100%;
211  background: #000;
212  right: 0;
213  top: 0;
214  display: flex;
215  justify-content: flex-end;
216  align-items: center;
217  flex-direction: row;
218  transition: none;
219  z-index: 0;
220}
221  .showcase .txt {
222    font-size: 4em;
223  }
224
225  .showcase .slogan {
226    font-size: 2em;
227  }
228
229  .service {
230    display: grid;
231    grid-template-rows: 1fr;
232    grid-template-columns: repeat(3, 1fr);
233  }
234  .content {
235    display: grid;
236    grid-template-rows: repeat(3, 1fr);
237  }
238  .content div {
239    display: grid;
240    grid-template-columns: 1fr 1fr;
241    align-items: center;
242    font-size: 1.2em;
243  }
244}&lt;!DOCTYPE html&gt;
245&lt;html lang="en"&gt;
246
247&lt;head&gt;
248  &lt;meta charset="UTF-8"&gt;
249  &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt;
250  &lt;title&gt;Movie List&lt;/title&gt;
251  &lt;link rel="stylesheet" href="style.css"&gt;
252  &lt;link href="https://fonts.googleapis.com/css2?family=Nunito:wght@600&amp;display=swap" rel="stylesheet"&gt;
253&lt;/head&gt;
254
255&lt;body&gt;
256  &lt;div class="wrap"&gt;
257    &lt;header&gt;
258      &lt;img class="logo" src="./image/media.svg" /&gt;
259      &lt;input type="checkbox" id="checked"&gt;
260      &lt;label for="checked" class="showBtn"&gt;
261        &lt;i class="fas fa-bars"&gt;&lt;/i&gt;
262      &lt;/label&gt;
263      &lt;nav class="navbar"&gt;
264        &lt;a href="#"&gt;About&lt;/a&gt;
265        &lt;a href="./explore.html"&gt;Explore&lt;/a&gt;
266        &lt;a href="#social-media"&gt;Contact us&lt;/a&gt;
267        &lt;label for="checked" class="hideBtn"&gt;
268          &lt;i class="fas fa-times"&gt;&lt;/i&gt;
269        &lt;/label&gt;
270      &lt;/nav&gt;
271    &lt;/header&gt;
272
273    &lt;div class="showcase"&gt;
274      &lt;div class="mask"&gt;&lt;/div&gt;
275      &lt;h1 class="txt"&gt;HOME CINEMA&lt;/h1&gt;
276      &lt;h2 class="slogan"&gt;Experience Cinema at home&lt;/h2&gt;
277    &lt;/div&gt;
278    &lt;div class="service"&gt;
279      &lt;a href="#subscribe-info"&gt;
280        &lt;img src="./image/communications.svg" alt=""&gt;
281        &lt;p&gt;$99 / month&lt;/p&gt;
282      &lt;/a&gt;
283      &lt;a href="#vr-info"&gt;
284        &lt;img src="./image/electronics.svg" alt=""&gt;
285        &lt;p&gt;Virtual Reality&lt;/p&gt;
286      &lt;/a&gt;
287      &lt;a href="#unlimited-info"&gt;
288        &lt;img src="./image/arrows.svg" alt=""&gt;
289        &lt;p&gt;Unlimited Watch&lt;/p&gt;
290      &lt;/a&gt;
291    &lt;/div&gt;
292    &lt;div class="content"&gt;
293      &lt;div id="subscribe-info"&gt;
294        &lt;img src="./image/photo-1543536448-d209d2d13a1c.jpg" alt=""&gt;
295        &lt;p&gt;Lorem ipsum dolor sit amet consectetur adipisicing elit. Perferendis necessitatibus ratione, ut sunt
296          voluptatibus totam a repudiandae enim nihil beatae ducimus aliquid! Et, beatae reprehenderit aspernatur est
297          hic commodi expedita.&lt;/p&gt;
298      &lt;/div&gt;
299      &lt;div id="vr-info"&gt;
300        &lt;img src="./image/pexels-photo-3391378.jpeg" alt=""&gt;
301        &lt;p&gt;Lorem ipsum dolor sit amet consectetur adipisicing elit. Neque possimus facere ipsum unde saepe maxime
302          voluptatem tempora sint pariatur at, nobis ipsam necessitatibus similique maiores, reiciendis repudiandae
303          voluptatum, cumque repellat.&lt;/p&gt;
304      &lt;/div&gt;
305      &lt;div id="unlimited-info"&gt;
306        &lt;img src="./image/pexels-photo-3912397.jpeg" alt=""&gt;
307        &lt;p&gt;Lorem ipsum dolor sit amet consectetur adipisicing elit. Est, nesciunt veniam, reprehenderit, fugiat nemo
308          fugit natus dicta maxime delectus ut quos et mollitia obcaecati pariatur. Rerum minima delectus sint ex?&lt;/p&gt;
309      &lt;/div&gt;
310    &lt;/div&gt;
311    &lt;footer&gt;
312      &lt;div class="contact-info"&gt;
313        &lt;div class="contact-txt"&gt;
314          &lt;p&gt;hola@jamondetaiwan.com&lt;/p&gt;
315          &lt;p&gt;+886 2771 5412&lt;/p&gt;
316          &lt;p&gt;2F., No. 2, Ln. 179, Kanghu Rd., Neihu Dist., Taipei City 114, Taiwan (R.O.C.)&lt;/p&gt;
317        &lt;/div&gt;
318        &lt;div id="social-media"&gt;
319          &lt;img src="./image/fb.svg" alt=""&gt;
320          &lt;img src="./image/ig.svg" alt=""&gt;
321          &lt;img src="./image/youtube.svg" alt=""&gt;
322        &lt;/div&gt;
323      &lt;/div&gt;
324      &lt;div class="copyright"&gt;
325      &lt;/div&gt;
326    &lt;/footer&gt;
327  &lt;/div&gt;
328  &lt;script src="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.13.0/js/all.min.js"&gt;&lt;/script&gt;
329&lt;/body&gt;
330
331&lt;/html&gt;

ANSWER

Answered 2020-Jul-22 at 19:23

This arises due to the CSS transition: .5s; in .navbar; when you reach the breakpoint, you are changing the right position and CSS is animating it. To avoid this, specify the properties you want to animate or add the transition property using JavaScript before you show the menu. For example, using jQuery:

$(".navbar").css("transition", ".5s");

Edit: I missed the CSS selector that is causing the animation and so assumed it was jQuery.

To address the issue with just HTML/CSS, you can create a copy of the navbar and use display: none;. The following snippet should work; I have added a copy of the navbar and added the classes .navbar-big and .navbar-small. This allow us to use the display property to hide the navbar we don't want to show based on the breakpoint, and set transition: right .5s; for .navbar-small.

1* {
2  padding: 0;
3  margin: 0;
4  box-sizing: border-box;
5  font-family: 'Nunito', sans-serif;
6}
7
8.wrap {
9  width: 100%;
10}
11
12header {
13  height: 100px;
14  background: #000;
15  padding: 0 10px;
16  color: #fff;
17  display: flex;
18  align-items: center;
19  position: relative;
20}
21
22#checked {
23  visibility: hidden;
24  z-index: -9999;
25  position: absolute;
26}
27
28#checked:checked ~.navbar {
29  right: 0;
30}
31
32.logo {
33  height: 60%;
34  vertical-align: middle;
35}
36
37.navbar{
38  margin-left: auto;
39  font-size: 0;
40  position: fixed;
41  width: 100%;
42  height: 100vh;
43  background: #000;
44  right: -100%;
45  top: 0;
46  display: flex;
47  justify-content: center;
48  align-items: center;
49  flex-direction: column;
50  transition: .5s;
51  z-index: 999;
52}
53
54.navbar a {
55  display: block;
56  margin: 20px 0;
57  transition: .4s;
58}
59
60.navbar a:hover, .hideBtn:hover {
61  color: #3498db;
62}
63
64.navbar a,
65 .hideBtn, .showBtn {
66  font-size: 20px;
67  padding: 0 10px;
68  text-decoration: none;
69  color: #fff;
70}
71
72.showBtn {
73  position: absolute;
74  top: 37px;
75  right: 10px;
76}
77
78.showcase {
79  position: relative;
80  background: url("./image/photo-1517604931442-7e0c8ed2963c.jpg");
81  background-size: cover;
82  background-repeat: no-repeat;
83  background-position: center;
84  width: 100%;
85  height: calc(100vh - 60px);
86  display: flex;
87  justify-content: center;
88  align-items: center;
89}
90
91.showcase .mask {
92  position: absolute;
93  width: 100%;
94  height: 100%;
95  background-color: #000;
96  z-index: 1;
97  opacity: 0.5;
98}
99
100.showcase .txt, 
101.showcase .slogan {
102  position: absolute;
103  color: #fff;
104  z-index: 2;
105  font-family: 'Nunito', sans-serif;
106  font-weight: bold;
107  font-size: 3em;
108}
109
110.showcase .slogan {
111  font-size: 1.2em;
112  bottom: 35%;
113}
114
115.service {
116  display: grid;
117  grid-template-rows: repeat(3, 1fr);
118  background-color: #000;
119  grid-gap:20px;
120  padding: 30px 50px;
121}
122
123.service a {
124  display: flex;
125  width: auto;
126  flex-flow: column nowrap;
127  justify-content: center;
128  align-items: center;
129  cursor: pointer;
130  text-decoration: none;
131}
132
133.service a img {
134  width: 30%;
135}
136
137.service a p {
138  color: #fff;
139  font-size: 1.5em;
140  font-weight: bolder;
141  margin: 10px;
142}
143
144.content {
145  display: grid;
146  grid-template-rows: repeat(3, 1fr);
147  grid-template-columns: 1fr;
148  grid-gap: 0px;
149}
150
151.content div {
152  width: 100%;
153  text-align: center;
154  font-size: 1.5em;
155}
156
157.content div:nth-child(even) {
158  background-color: #000;
159  color: #fff;
160}
161
162.content div img {
163  width: 100%;
164}
165
166.content div p {
167    padding: 10px;
168  }
169
170footer {
171  display: flex;
172  flex-direction: column;
173  width: 100%;
174}
175
176.contact-info {
177  display: flex;
178  flex-direction: row;
179  justify-content: space-between;
180  align-items: center;
181  padding: 20px;
182  background-color: #000;
183}
184
185.contact-txt {
186  display: flex;
187  flex-flow: column nowrap;
188  width: 50%;
189  color: #fff;
190}
191
192footer #social-media img{
193  width: 30px;
194  margin: 0 5px;
195}
196
197.copyright {
198  text-align: center;
199}
200
201@media screen and (min-width: 576px) {
202  .showBtn, .navbar .hideBtn {
203    display: none;
204  }
205  .navbar{
206  margin-left: auto;
207  font-size: 0;
208  position: relative;
209  width: auto;
210  height: 100%;
211  background: #000;
212  right: 0;
213  top: 0;
214  display: flex;
215  justify-content: flex-end;
216  align-items: center;
217  flex-direction: row;
218  transition: none;
219  z-index: 0;
220}
221  .showcase .txt {
222    font-size: 4em;
223  }
224
225  .showcase .slogan {
226    font-size: 2em;
227  }
228
229  .service {
230    display: grid;
231    grid-template-rows: 1fr;
232    grid-template-columns: repeat(3, 1fr);
233  }
234  .content {
235    display: grid;
236    grid-template-rows: repeat(3, 1fr);
237  }
238  .content div {
239    display: grid;
240    grid-template-columns: 1fr 1fr;
241    align-items: center;
242    font-size: 1.2em;
243  }
244}&lt;!DOCTYPE html&gt;
245&lt;html lang="en"&gt;
246
247&lt;head&gt;
248  &lt;meta charset="UTF-8"&gt;
249  &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt;
250  &lt;title&gt;Movie List&lt;/title&gt;
251  &lt;link rel="stylesheet" href="style.css"&gt;
252  &lt;link href="https://fonts.googleapis.com/css2?family=Nunito:wght@600&amp;display=swap" rel="stylesheet"&gt;
253&lt;/head&gt;
254
255&lt;body&gt;
256  &lt;div class="wrap"&gt;
257    &lt;header&gt;
258      &lt;img class="logo" src="./image/media.svg" /&gt;
259      &lt;input type="checkbox" id="checked"&gt;
260      &lt;label for="checked" class="showBtn"&gt;
261        &lt;i class="fas fa-bars"&gt;&lt;/i&gt;
262      &lt;/label&gt;
263      &lt;nav class="navbar"&gt;
264        &lt;a href="#"&gt;About&lt;/a&gt;
265        &lt;a href="./explore.html"&gt;Explore&lt;/a&gt;
266        &lt;a href="#social-media"&gt;Contact us&lt;/a&gt;
267        &lt;label for="checked" class="hideBtn"&gt;
268          &lt;i class="fas fa-times"&gt;&lt;/i&gt;
269        &lt;/label&gt;
270      &lt;/nav&gt;
271    &lt;/header&gt;
272
273    &lt;div class="showcase"&gt;
274      &lt;div class="mask"&gt;&lt;/div&gt;
275      &lt;h1 class="txt"&gt;HOME CINEMA&lt;/h1&gt;
276      &lt;h2 class="slogan"&gt;Experience Cinema at home&lt;/h2&gt;
277    &lt;/div&gt;
278    &lt;div class="service"&gt;
279      &lt;a href="#subscribe-info"&gt;
280        &lt;img src="./image/communications.svg" alt=""&gt;
281        &lt;p&gt;$99 / month&lt;/p&gt;
282      &lt;/a&gt;
283      &lt;a href="#vr-info"&gt;
284        &lt;img src="./image/electronics.svg" alt=""&gt;
285        &lt;p&gt;Virtual Reality&lt;/p&gt;
286      &lt;/a&gt;
287      &lt;a href="#unlimited-info"&gt;
288        &lt;img src="./image/arrows.svg" alt=""&gt;
289        &lt;p&gt;Unlimited Watch&lt;/p&gt;
290      &lt;/a&gt;
291    &lt;/div&gt;
292    &lt;div class="content"&gt;
293      &lt;div id="subscribe-info"&gt;
294        &lt;img src="./image/photo-1543536448-d209d2d13a1c.jpg" alt=""&gt;
295        &lt;p&gt;Lorem ipsum dolor sit amet consectetur adipisicing elit. Perferendis necessitatibus ratione, ut sunt
296          voluptatibus totam a repudiandae enim nihil beatae ducimus aliquid! Et, beatae reprehenderit aspernatur est
297          hic commodi expedita.&lt;/p&gt;
298      &lt;/div&gt;
299      &lt;div id="vr-info"&gt;
300        &lt;img src="./image/pexels-photo-3391378.jpeg" alt=""&gt;
301        &lt;p&gt;Lorem ipsum dolor sit amet consectetur adipisicing elit. Neque possimus facere ipsum unde saepe maxime
302          voluptatem tempora sint pariatur at, nobis ipsam necessitatibus similique maiores, reiciendis repudiandae
303          voluptatum, cumque repellat.&lt;/p&gt;
304      &lt;/div&gt;
305      &lt;div id="unlimited-info"&gt;
306        &lt;img src="./image/pexels-photo-3912397.jpeg" alt=""&gt;
307        &lt;p&gt;Lorem ipsum dolor sit amet consectetur adipisicing elit. Est, nesciunt veniam, reprehenderit, fugiat nemo
308          fugit natus dicta maxime delectus ut quos et mollitia obcaecati pariatur. Rerum minima delectus sint ex?&lt;/p&gt;
309      &lt;/div&gt;
310    &lt;/div&gt;
311    &lt;footer&gt;
312      &lt;div class="contact-info"&gt;
313        &lt;div class="contact-txt"&gt;
314          &lt;p&gt;hola@jamondetaiwan.com&lt;/p&gt;
315          &lt;p&gt;+886 2771 5412&lt;/p&gt;
316          &lt;p&gt;2F., No. 2, Ln. 179, Kanghu Rd., Neihu Dist., Taipei City 114, Taiwan (R.O.C.)&lt;/p&gt;
317        &lt;/div&gt;
318        &lt;div id="social-media"&gt;
319          &lt;img src="./image/fb.svg" alt=""&gt;
320          &lt;img src="./image/ig.svg" alt=""&gt;
321          &lt;img src="./image/youtube.svg" alt=""&gt;
322        &lt;/div&gt;
323      &lt;/div&gt;
324      &lt;div class="copyright"&gt;
325      &lt;/div&gt;
326    &lt;/footer&gt;
327  &lt;/div&gt;
328  &lt;script src="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.13.0/js/all.min.js"&gt;&lt;/script&gt;
329&lt;/body&gt;
330
331&lt;/html&gt;* {
332  padding: 0;
333  margin: 0;
334  box-sizing: border-box;
335  font-family: 'Nunito', sans-serif;
336}
337
338.wrap {
339  width: 100%;
340}
341
342header {
343  height: 100px;
344  background: #000;
345  padding: 0 10px;
346  color: #fff;
347  display: flex;
348  align-items: center;
349  position: relative;
350}
351
352#checked {
353  visibility: hidden;
354  z-index: -9999;
355  position: absolute;
356}
357
358#checked:checked ~.navbar {
359  right: 0;
360  transition: .5s;
361}
362
363.logo {
364  height: 60%;
365  vertical-align: middle;
366}
367
368.navbar {
369  margin-left: auto;
370  font-size: 0;
371  position: fixed;
372  width: 100%;
373  height: 100vh;
374  background: #000;
375  right: -100%;
376  top: 0;
377  display: flex;
378  justify-content: center;
379  align-items: center;
380  flex-direction: column;
381  z-index: 999;
382}
383
384.navbar-small {
385  transition: right .5s;
386}
387
388.navbar-big {
389  display: none;
390}
391
392.navbar a {
393  display: block;
394  margin: 20px 0;
395  transition: .4s;
396}
397
398.navbar a:hover, .hideBtn:hover {
399  color: #3498db;
400}
401
402.navbar a,
403 .hideBtn, .showBtn {
404  font-size: 20px;
405  padding: 0 10px;
406  text-decoration: none;
407  color: #fff;
408}
409
410.showBtn {
411  position: absolute;
412  top: 37px;
413  right: 10px;
414}
415
416.showcase {
417  position: relative;
418  background: url("./image/photo-1517604931442-7e0c8ed2963c.jpg");
419  background-size: cover;
420  background-repeat: no-repeat;
421  background-position: center;
422  width: 100%;
423  height: calc(100vh - 60px);
424  display: flex;
425  justify-content: center;
426  align-items: center;
427}
428
429.showcase .mask {
430  position: absolute;
431  width: 100%;
432  height: 100%;
433  background-color: #000;
434  z-index: 1;
435  opacity: 0.5;
436}
437
438.showcase .txt, 
439.showcase .slogan {
440  position: absolute;
441  color: #fff;
442  z-index: 2;
443  font-family: 'Nunito', sans-serif;
444  font-weight: bold;
445  font-size: 3em;
446}
447
448.showcase .slogan {
449  font-size: 1.2em;
450  bottom: 35%;
451}
452
453.service {
454  display: grid;
455  grid-template-rows: repeat(3, 1fr);
456  background-color: #000;
457  grid-gap:20px;
458  padding: 30px 50px;
459}
460
461.service a {
462  display: flex;
463  width: auto;
464  flex-flow: column nowrap;
465  justify-content: center;
466  align-items: center;
467  cursor: pointer;
468  text-decoration: none;
469}
470
471.service a img {
472  width: 30%;
473}
474
475.service a p {
476  color: #fff;
477  font-size: 1.5em;
478  font-weight: bolder;
479  margin: 10px;
480}
481
482.content {
483  display: grid;
484  grid-template-rows: repeat(3, 1fr);
485  grid-template-columns: 1fr;
486  grid-gap: 0px;
487}
488
489.content div {
490  width: 100%;
491  text-align: center;
492  font-size: 1.5em;
493}
494
495.content div:nth-child(even) {
496  background-color: #000;
497  color: #fff;
498}
499
500.content div img {
501  width: 100%;
502}
503
504.content div p {
505    padding: 10px;
506  }
507
508footer {
509  display: flex;
510  flex-direction: column;
511  width: 100%;
512}
513
514.contact-info {
515  display: flex;
516  flex-direction: row;
517  justify-content: space-between;
518  align-items: center;
519  padding: 20px;
520  background-color: #000;
521}
522
523.contact-txt {
524  display: flex;
525  flex-flow: column nowrap;
526  width: 50%;
527  color: #fff;
528}
529
530footer #social-media img{
531  width: 30px;
532  margin: 0 5px;
533}
534
535.copyright {
536  text-align: center;
537}
538
539@media screen and (min-width: 576px) {
540  .showBtn, .navbar .hideBtn {
541    display: none;
542  }
543
544  .navbar {
545  margin-left: auto;
546  font-size: 0;
547  position: relative;
548  width: auto;
549  height: 100%;
550  background: #000;
551  right: 0;
552  top: 0;
553  display: flex;
554  justify-content: flex-end;
555  align-items: center;
556  flex-direction: row;
557  transition: none;
558  z-index: 0;
559  }
560
561  .navbar-small {
562    display: none;
563  }
564
565  .showcase .txt {
566    font-size: 4em;
567  }
568
569  .showcase .slogan {
570    font-size: 2em;
571  }
572
573  .service {
574    display: grid;
575    grid-template-rows: 1fr;
576    grid-template-columns: repeat(3, 1fr);
577  }
578  .content {
579    display: grid;
580    grid-template-rows: repeat(3, 1fr);
581  }
582  .content div {
583    display: grid;
584    grid-template-columns: 1fr 1fr;
585    align-items: center;
586    font-size: 1.2em;
587  }
588}
1* {
2  padding: 0;
3  margin: 0;
4  box-sizing: border-box;
5  font-family: 'Nunito', sans-serif;
6}
7
8.wrap {
9  width: 100%;
10}
11
12header {
13  height: 100px;
14  background: #000;
15  padding: 0 10px;
16  color: #fff;
17  display: flex;
18  align-items: center;
19  position: relative;
20}
21
22#checked {
23  visibility: hidden;
24  z-index: -9999;
25  position: absolute;
26}
27
28#checked:checked ~.navbar {
29  right: 0;
30}
31
32.logo {
33  height: 60%;
34  vertical-align: middle;
35}
36
37.navbar{
38  margin-left: auto;
39  font-size: 0;
40  position: fixed;
41  width: 100%;
42  height: 100vh;
43  background: #000;
44  right: -100%;
45  top: 0;
46  display: flex;
47  justify-content: center;
48  align-items: center;
49  flex-direction: column;
50  transition: .5s;
51  z-index: 999;
52}
53
54.navbar a {
55  display: block;
56  margin: 20px 0;
57  transition: .4s;
58}
59
60.navbar a:hover, .hideBtn:hover {
61  color: #3498db;
62}
63
64.navbar a,
65 .hideBtn, .showBtn {
66  font-size: 20px;
67  padding: 0 10px;
68  text-decoration: none;
69  color: #fff;
70}
71
72.showBtn {
73  position: absolute;
74  top: 37px;
75  right: 10px;
76}
77
78.showcase {
79  position: relative;
80  background: url("./image/photo-1517604931442-7e0c8ed2963c.jpg");
81  background-size: cover;
82  background-repeat: no-repeat;
83  background-position: center;
84  width: 100%;
85  height: calc(100vh - 60px);
86  display: flex;
87  justify-content: center;
88  align-items: center;
89}
90
91.showcase .mask {
92  position: absolute;
93  width: 100%;
94  height: 100%;
95  background-color: #000;
96  z-index: 1;
97  opacity: 0.5;
98}
99
100.showcase .txt, 
101.showcase .slogan {
102  position: absolute;
103  color: #fff;
104  z-index: 2;
105  font-family: 'Nunito', sans-serif;
106  font-weight: bold;
107  font-size: 3em;
108}
109
110.showcase .slogan {
111  font-size: 1.2em;
112  bottom: 35%;
113}
114
115.service {
116  display: grid;
117  grid-template-rows: repeat(3, 1fr);
118  background-color: #000;
119  grid-gap:20px;
120  padding: 30px 50px;
121}
122
123.service a {
124  display: flex;
125  width: auto;
126  flex-flow: column nowrap;
127  justify-content: center;
128  align-items: center;
129  cursor: pointer;
130  text-decoration: none;
131}
132
133.service a img {
134  width: 30%;
135}
136
137.service a p {
138  color: #fff;
139  font-size: 1.5em;
140  font-weight: bolder;
141  margin: 10px;
142}
143
144.content {
145  display: grid;
146  grid-template-rows: repeat(3, 1fr);
147  grid-template-columns: 1fr;
148  grid-gap: 0px;
149}
150
151.content div {
152  width: 100%;
153  text-align: center;
154  font-size: 1.5em;
155}
156
157.content div:nth-child(even) {
158  background-color: #000;
159  color: #fff;
160}
161
162.content div img {
163  width: 100%;
164}
165
166.content div p {
167    padding: 10px;
168  }
169
170footer {
171  display: flex;
172  flex-direction: column;
173  width: 100%;
174}
175
176.contact-info {
177  display: flex;
178  flex-direction: row;
179  justify-content: space-between;
180  align-items: center;
181  padding: 20px;
182  background-color: #000;
183}
184
185.contact-txt {
186  display: flex;
187  flex-flow: column nowrap;
188  width: 50%;
189  color: #fff;
190}
191
192footer #social-media img{
193  width: 30px;
194  margin: 0 5px;
195}
196
197.copyright {
198  text-align: center;
199}
200
201@media screen and (min-width: 576px) {
202  .showBtn, .navbar .hideBtn {
203    display: none;
204  }
205  .navbar{
206  margin-left: auto;
207  font-size: 0;
208  position: relative;
209  width: auto;
210  height: 100%;
211  background: #000;
212  right: 0;
213  top: 0;
214  display: flex;
215  justify-content: flex-end;
216  align-items: center;
217  flex-direction: row;
218  transition: none;
219  z-index: 0;
220}
221  .showcase .txt {
222    font-size: 4em;
223  }
224
225  .showcase .slogan {
226    font-size: 2em;
227  }
228
229  .service {
230    display: grid;
231    grid-template-rows: 1fr;
232    grid-template-columns: repeat(3, 1fr);
233  }
234  .content {
235    display: grid;
236    grid-template-rows: repeat(3, 1fr);
237  }
238  .content div {
239    display: grid;
240    grid-template-columns: 1fr 1fr;
241    align-items: center;
242    font-size: 1.2em;
243  }
244}&lt;!DOCTYPE html&gt;
245&lt;html lang="en"&gt;
246
247&lt;head&gt;
248  &lt;meta charset="UTF-8"&gt;
249  &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt;
250  &lt;title&gt;Movie List&lt;/title&gt;
251  &lt;link rel="stylesheet" href="style.css"&gt;
252  &lt;link href="https://fonts.googleapis.com/css2?family=Nunito:wght@600&amp;display=swap" rel="stylesheet"&gt;
253&lt;/head&gt;
254
255&lt;body&gt;
256  &lt;div class="wrap"&gt;
257    &lt;header&gt;
258      &lt;img class="logo" src="./image/media.svg" /&gt;
259      &lt;input type="checkbox" id="checked"&gt;
260      &lt;label for="checked" class="showBtn"&gt;
261        &lt;i class="fas fa-bars"&gt;&lt;/i&gt;
262      &lt;/label&gt;
263      &lt;nav class="navbar"&gt;
264        &lt;a href="#"&gt;About&lt;/a&gt;
265        &lt;a href="./explore.html"&gt;Explore&lt;/a&gt;
266        &lt;a href="#social-media"&gt;Contact us&lt;/a&gt;
267        &lt;label for="checked" class="hideBtn"&gt;
268          &lt;i class="fas fa-times"&gt;&lt;/i&gt;
269        &lt;/label&gt;
270      &lt;/nav&gt;
271    &lt;/header&gt;
272
273    &lt;div class="showcase"&gt;
274      &lt;div class="mask"&gt;&lt;/div&gt;
275      &lt;h1 class="txt"&gt;HOME CINEMA&lt;/h1&gt;
276      &lt;h2 class="slogan"&gt;Experience Cinema at home&lt;/h2&gt;
277    &lt;/div&gt;
278    &lt;div class="service"&gt;
279      &lt;a href="#subscribe-info"&gt;
280        &lt;img src="./image/communications.svg" alt=""&gt;
281        &lt;p&gt;$99 / month&lt;/p&gt;
282      &lt;/a&gt;
283      &lt;a href="#vr-info"&gt;
284        &lt;img src="./image/electronics.svg" alt=""&gt;
285        &lt;p&gt;Virtual Reality&lt;/p&gt;
286      &lt;/a&gt;
287      &lt;a href="#unlimited-info"&gt;
288        &lt;img src="./image/arrows.svg" alt=""&gt;
289        &lt;p&gt;Unlimited Watch&lt;/p&gt;
290      &lt;/a&gt;
291    &lt;/div&gt;
292    &lt;div class="content"&gt;
293      &lt;div id="subscribe-info"&gt;
294        &lt;img src="./image/photo-1543536448-d209d2d13a1c.jpg" alt=""&gt;
295        &lt;p&gt;Lorem ipsum dolor sit amet consectetur adipisicing elit. Perferendis necessitatibus ratione, ut sunt
296          voluptatibus totam a repudiandae enim nihil beatae ducimus aliquid! Et, beatae reprehenderit aspernatur est
297          hic commodi expedita.&lt;/p&gt;
298      &lt;/div&gt;
299      &lt;div id="vr-info"&gt;
300        &lt;img src="./image/pexels-photo-3391378.jpeg" alt=""&gt;
301        &lt;p&gt;Lorem ipsum dolor sit amet consectetur adipisicing elit. Neque possimus facere ipsum unde saepe maxime
302          voluptatem tempora sint pariatur at, nobis ipsam necessitatibus similique maiores, reiciendis repudiandae
303          voluptatum, cumque repellat.&lt;/p&gt;
304      &lt;/div&gt;
305      &lt;div id="unlimited-info"&gt;
306        &lt;img src="./image/pexels-photo-3912397.jpeg" alt=""&gt;
307        &lt;p&gt;Lorem ipsum dolor sit amet consectetur adipisicing elit. Est, nesciunt veniam, reprehenderit, fugiat nemo
308          fugit natus dicta maxime delectus ut quos et mollitia obcaecati pariatur. Rerum minima delectus sint ex?&lt;/p&gt;
309      &lt;/div&gt;
310    &lt;/div&gt;
311    &lt;footer&gt;
312      &lt;div class="contact-info"&gt;
313        &lt;div class="contact-txt"&gt;
314          &lt;p&gt;hola@jamondetaiwan.com&lt;/p&gt;
315          &lt;p&gt;+886 2771 5412&lt;/p&gt;
316          &lt;p&gt;2F., No. 2, Ln. 179, Kanghu Rd., Neihu Dist., Taipei City 114, Taiwan (R.O.C.)&lt;/p&gt;
317        &lt;/div&gt;
318        &lt;div id="social-media"&gt;
319          &lt;img src="./image/fb.svg" alt=""&gt;
320          &lt;img src="./image/ig.svg" alt=""&gt;
321          &lt;img src="./image/youtube.svg" alt=""&gt;
322        &lt;/div&gt;
323      &lt;/div&gt;
324      &lt;div class="copyright"&gt;
325      &lt;/div&gt;
326    &lt;/footer&gt;
327  &lt;/div&gt;
328  &lt;script src="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.13.0/js/all.min.js"&gt;&lt;/script&gt;
329&lt;/body&gt;
330
331&lt;/html&gt;* {
332  padding: 0;
333  margin: 0;
334  box-sizing: border-box;
335  font-family: 'Nunito', sans-serif;
336}
337
338.wrap {
339  width: 100%;
340}
341
342header {
343  height: 100px;
344  background: #000;
345  padding: 0 10px;
346  color: #fff;
347  display: flex;
348  align-items: center;
349  position: relative;
350}
351
352#checked {
353  visibility: hidden;
354  z-index: -9999;
355  position: absolute;
356}
357
358#checked:checked ~.navbar {
359  right: 0;
360  transition: .5s;
361}
362
363.logo {
364  height: 60%;
365  vertical-align: middle;
366}
367
368.navbar {
369  margin-left: auto;
370  font-size: 0;
371  position: fixed;
372  width: 100%;
373  height: 100vh;
374  background: #000;
375  right: -100%;
376  top: 0;
377  display: flex;
378  justify-content: center;
379  align-items: center;
380  flex-direction: column;
381  z-index: 999;
382}
383
384.navbar-small {
385  transition: right .5s;
386}
387
388.navbar-big {
389  display: none;
390}
391
392.navbar a {
393  display: block;
394  margin: 20px 0;
395  transition: .4s;
396}
397
398.navbar a:hover, .hideBtn:hover {
399  color: #3498db;
400}
401
402.navbar a,
403 .hideBtn, .showBtn {
404  font-size: 20px;
405  padding: 0 10px;
406  text-decoration: none;
407  color: #fff;
408}
409
410.showBtn {
411  position: absolute;
412  top: 37px;
413  right: 10px;
414}
415
416.showcase {
417  position: relative;
418  background: url("./image/photo-1517604931442-7e0c8ed2963c.jpg");
419  background-size: cover;
420  background-repeat: no-repeat;
421  background-position: center;
422  width: 100%;
423  height: calc(100vh - 60px);
424  display: flex;
425  justify-content: center;
426  align-items: center;
427}
428
429.showcase .mask {
430  position: absolute;
431  width: 100%;
432  height: 100%;
433  background-color: #000;
434  z-index: 1;
435  opacity: 0.5;
436}
437
438.showcase .txt, 
439.showcase .slogan {
440  position: absolute;
441  color: #fff;
442  z-index: 2;
443  font-family: 'Nunito', sans-serif;
444  font-weight: bold;
445  font-size: 3em;
446}
447
448.showcase .slogan {
449  font-size: 1.2em;
450  bottom: 35%;
451}
452
453.service {
454  display: grid;
455  grid-template-rows: repeat(3, 1fr);
456  background-color: #000;
457  grid-gap:20px;
458  padding: 30px 50px;
459}
460
461.service a {
462  display: flex;
463  width: auto;
464  flex-flow: column nowrap;
465  justify-content: center;
466  align-items: center;
467  cursor: pointer;
468  text-decoration: none;
469}
470
471.service a img {
472  width: 30%;
473}
474
475.service a p {
476  color: #fff;
477  font-size: 1.5em;
478  font-weight: bolder;
479  margin: 10px;
480}
481
482.content {
483  display: grid;
484  grid-template-rows: repeat(3, 1fr);
485  grid-template-columns: 1fr;
486  grid-gap: 0px;
487}
488
489.content div {
490  width: 100%;
491  text-align: center;
492  font-size: 1.5em;
493}
494
495.content div:nth-child(even) {
496  background-color: #000;
497  color: #fff;
498}
499
500.content div img {
501  width: 100%;
502}
503
504.content div p {
505    padding: 10px;
506  }
507
508footer {
509  display: flex;
510  flex-direction: column;
511  width: 100%;
512}
513
514.contact-info {
515  display: flex;
516  flex-direction: row;
517  justify-content: space-between;
518  align-items: center;
519  padding: 20px;
520  background-color: #000;
521}
522
523.contact-txt {
524  display: flex;
525  flex-flow: column nowrap;
526  width: 50%;
527  color: #fff;
528}
529
530footer #social-media img{
531  width: 30px;
532  margin: 0 5px;
533}
534
535.copyright {
536  text-align: center;
537}
538
539@media screen and (min-width: 576px) {
540  .showBtn, .navbar .hideBtn {
541    display: none;
542  }
543
544  .navbar {
545  margin-left: auto;
546  font-size: 0;
547  position: relative;
548  width: auto;
549  height: 100%;
550  background: #000;
551  right: 0;
552  top: 0;
553  display: flex;
554  justify-content: flex-end;
555  align-items: center;
556  flex-direction: row;
557  transition: none;
558  z-index: 0;
559  }
560
561  .navbar-small {
562    display: none;
563  }
564
565  .showcase .txt {
566    font-size: 4em;
567  }
568
569  .showcase .slogan {
570    font-size: 2em;
571  }
572
573  .service {
574    display: grid;
575    grid-template-rows: 1fr;
576    grid-template-columns: repeat(3, 1fr);
577  }
578  .content {
579    display: grid;
580    grid-template-rows: repeat(3, 1fr);
581  }
582  .content div {
583    display: grid;
584    grid-template-columns: 1fr 1fr;
585    align-items: center;
586    font-size: 1.2em;
587  }
588}&lt;!DOCTYPE html&gt;
589&lt;html lang="en"&gt;
590
591&lt;head&gt;
592  &lt;meta charset="UTF-8"&gt;
593  &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt;
594  &lt;title&gt;Movie List&lt;/title&gt;
595  &lt;link rel="stylesheet" href="style.css"&gt;
596  &lt;link href="https://fonts.googleapis.com/css2?family=Nunito:wght@600&amp;display=swap" rel="stylesheet"&gt;
597&lt;/head&gt;
598
599&lt;body&gt;
600  &lt;div class="wrap"&gt;
601    &lt;header&gt;
602      &lt;img class="logo" src="./image/media.svg" /&gt;
603      &lt;input type="checkbox" id="checked"&gt;
604      &lt;label for="checked" class="showBtn"&gt;
605        &lt;i class="fas fa-bars"&gt;&lt;/i&gt;
606      &lt;/label&gt;
607      &lt;nav class="navbar navbar-big"&gt;
608        &lt;a href="#"&gt;About&lt;/a&gt;
609        &lt;a href="./explore.html"&gt;Explore&lt;/a&gt;
610        &lt;a href="#social-media"&gt;Contact us&lt;/a&gt;
611        &lt;label for="checked" class="hideBtn"&gt;
612          &lt;i class="fas fa-times"&gt;&lt;/i&gt;
613        &lt;/label&gt;
614      &lt;/nav&gt;
615      &lt;nav class="navbar navbar-small"&gt;
616        &lt;a href="#"&gt;About&lt;/a&gt;
617        &lt;a href="./explore.html"&gt;Explore&lt;/a&gt;
618        &lt;a href="#social-media"&gt;Contact us&lt;/a&gt;
619        &lt;label for="checked" class="hideBtn"&gt;
620          &lt;i class="fas fa-times"&gt;&lt;/i&gt;
621        &lt;/label&gt;
622      &lt;/nav&gt;
623    &lt;/header&gt;
624
625    &lt;div class="showcase"&gt;
626      &lt;div class="mask"&gt;&lt;/div&gt;
627      &lt;h1 class="txt"&gt;HOME CINEMA&lt;/h1&gt;
628      &lt;h2 class="slogan"&gt;Experience Cinema at home&lt;/h2&gt;
629    &lt;/div&gt;
630    &lt;div class="service"&gt;
631      &lt;a href="#subscribe-info"&gt;
632        &lt;img src="./image/communications.svg" alt=""&gt;
633        &lt;p&gt;$99 / month&lt;/p&gt;
634      &lt;/a&gt;
635      &lt;a href="#vr-info"&gt;
636        &lt;img src="./image/electronics.svg" alt=""&gt;
637        &lt;p&gt;Virtual Reality&lt;/p&gt;
638      &lt;/a&gt;
639      &lt;a href="#unlimited-info"&gt;
640        &lt;img src="./image/arrows.svg" alt=""&gt;
641        &lt;p&gt;Unlimited Watch&lt;/p&gt;
642      &lt;/a&gt;
643    &lt;/div&gt;
644    &lt;div class="content"&gt;
645      &lt;div id="subscribe-info"&gt;
646        &lt;img src="./image/photo-1543536448-d209d2d13a1c.jpg" alt=""&gt;
647        &lt;p&gt;Lorem ipsum dolor sit amet consectetur adipisicing elit. Perferendis necessitatibus ratione, ut sunt
648          voluptatibus totam a repudiandae enim nihil beatae ducimus aliquid! Et, beatae reprehenderit aspernatur est
649          hic commodi expedita.&lt;/p&gt;
650      &lt;/div&gt;
651      &lt;div id="vr-info"&gt;
652        &lt;img src="./image/pexels-photo-3391378.jpeg" alt=""&gt;
653        &lt;p&gt;Lorem ipsum dolor sit amet consectetur adipisicing elit. Neque possimus facere ipsum unde saepe maxime
654          voluptatem tempora sint pariatur at, nobis ipsam necessitatibus similique maiores, reiciendis repudiandae
655          voluptatum, cumque repellat.&lt;/p&gt;
656      &lt;/div&gt;
657      &lt;div id="unlimited-info"&gt;
658        &lt;img src="./image/pexels-photo-3912397.jpeg" alt=""&gt;
659        &lt;p&gt;Lorem ipsum dolor sit amet consectetur adipisicing elit. Est, nesciunt veniam, reprehenderit, fugiat nemo
660          fugit natus dicta maxime delectus ut quos et mollitia obcaecati pariatur. Rerum minima delectus sint ex?&lt;/p&gt;
661      &lt;/div&gt;
662    &lt;/div&gt;
663    &lt;footer&gt;
664      &lt;div class="contact-info"&gt;
665        &lt;div class="contact-txt"&gt;
666          &lt;p&gt;hola@jamondetaiwan.com&lt;/p&gt;
667          &lt;p&gt;+886 2771 5412&lt;/p&gt;
668          &lt;p&gt;2F., No. 2, Ln. 179, Kanghu Rd., Neihu Dist., Taipei City 114, Taiwan (R.O.C.)&lt;/p&gt;
669        &lt;/div&gt;
670        &lt;div id="social-media"&gt;
671          &lt;img src="./image/fb.svg" alt=""&gt;
672          &lt;img src="./image/ig.svg" alt=""&gt;
673          &lt;img src="./image/youtube.svg" alt=""&gt;
674        &lt;/div&gt;
675      &lt;/div&gt;
676      &lt;div class="copyright"&gt;
677      &lt;/div&gt;
678    &lt;/footer&gt;
679  &lt;/div&gt;
680  &lt;script src="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.13.0/js/all.min.js"&gt;&lt;/script&gt;
681&lt;/body&gt;
682
683&lt;/html&gt;

Source https://stackoverflow.com/questions/63030192

QUESTION

count sum of values of selected radio buttons which have particular data-id

Asked 2020-Jul-16 at 14:57

I have radio buttons and they have different data-id and a value assigned to each radio button. i want to count sum of values of selected radio buttons where data-id=OriginalityOfIdeas. I want to do it with jquery. I am trying to do but not able to achieve my goal.

I want to count between particular div or class.

1&lt;div class=&quot;multisteps-form__content&quot;&gt;
2  &lt;div class=&quot;row &quot;&gt;
3    &lt;div class=&quot;col-md-12 mt-3 align-items-center&quot;&gt;
4      &lt;div class=&quot;form-group&quot;&gt;
5        &lt;div class=&quot;custom-control custom-radio&quot;&gt;
6          &lt;input class=&quot;custom-control-input&quot; type=&quot;radio&quot; id=&quot;Q_1_rb1&quot; name=&quot;1&quot; value=&quot;1&quot; data-id=&quot;OriginalityOfIdeas&quot;&gt;
7          &lt;label for=&quot;Q_1_rb1&quot; class=&quot;custom-control-label font-weight-normal&quot;&gt;The event should be organized in the same way as every year. &lt;/label&gt;
8        &lt;/div&gt;
9        &lt;div class=&quot;custom-control custom-radio&quot;&gt;
10          &lt;input class=&quot;custom-control-input&quot; type=&quot;radio&quot; id=&quot;Q_1_rb2&quot; name=&quot;1&quot; value=&quot;3&quot; data-id=&quot;OriginalityOfIdeas&quot;&gt;
11          &lt;label for=&quot;Q_1_rb2&quot; class=&quot;custom-control-label font-weight-normal&quot;&gt;We could introduce some Virtual Reality games. &lt;/label&gt;
12        &lt;/div&gt;
13        &lt;div class=&quot;custom-control custom-radio&quot;&gt;
14          &lt;input class=&quot;custom-control-input&quot; type=&quot;radio&quot; id=&quot;Q_1_rb3&quot; name=&quot;1&quot; value=&quot;2&quot; data-id=&quot;OriginalityOfIdeas&quot;&gt;
15          &lt;label for=&quot;Q_1_rb3&quot; class=&quot;custom-control-label font-weight-normal&quot;&gt;We could make it different and more engaging, but need to think about how. &lt;/label&gt;
16        &lt;/div&gt;
17        &lt;div class=&quot;custom-control custom-radio&quot;&gt;
18          &lt;input class=&quot;custom-control-input&quot; type=&quot;radio&quot; id=&quot;Q_1_rb4&quot; name=&quot;1&quot; value=&quot;4&quot; data-id=&quot;OriginalityOfIdeas&quot;&gt;
19          &lt;label for=&quot;Q_1_rb4&quot; class=&quot;custom-control-label font-weight-normal&quot;&gt;We could invite some guest artists to perform during the day of the event.&lt;/label&gt;
20        &lt;/div&gt;
21        &lt;div class=&quot;custom-control custom-radio&quot;&gt;
22          &lt;input class=&quot;custom-control-input&quot; type=&quot;radio&quot; id=&quot;Q_1_rb5&quot; name=&quot;1&quot; value=&quot;5&quot; data-id=&quot;OriginalityOfIdeas&quot;&gt;
23          &lt;label for=&quot;Q_1_rb5&quot; class=&quot;custom-control-label font-weight-normal&quot;&gt;We could invite ideas from students to showcase their unique talent not known to others.&lt;/label&gt;
24        &lt;/div&gt;
25      &lt;/div&gt;
26    &lt;/div&gt;
27  &lt;/div&gt;
28&lt;/div&gt;
29
30&lt;div class=&quot;multisteps-form__content&quot;&gt;
31  &lt;div class=&quot;row &quot;&gt;
32    &lt;div class=&quot;col-md-12 mt-3 align-items-center&quot;&gt;
33      &lt;div class=&quot;form-group&quot;&gt;
34        &lt;div class=&quot;custom-control custom-radio&quot;&gt;
35          &lt;input class=&quot;custom-control-input&quot; type=&quot;radio&quot; id=&quot;Q_2_rb1&quot; name=&quot;2&quot; value=&quot;2&quot; data-id=&quot;Curiosity&quot;&gt;
36          &lt;label for=&quot;Q_2_rb1&quot; class=&quot;custom-control-label font-weight-normal&quot;&gt;Gather some information about them &lt;/label&gt;
37        &lt;/div&gt;
38        &lt;div class=&quot;custom-control custom-radio&quot;&gt;
39          &lt;input class=&quot;custom-control-input&quot; type=&quot;radio&quot; id=&quot;Q_2_rb2&quot; name=&quot;2&quot; value=&quot;4&quot; data-id=&quot;Curiosity&quot;&gt;
40          &lt;label for=&quot;Q_2_rb2&quot; class=&quot;custom-control-label font-weight-normal&quot;&gt;Know in detail about the diverse cultures &lt;/label&gt;
41        &lt;/div&gt;
42        &lt;div class=&quot;custom-control custom-radio&quot;&gt;
43          &lt;input class=&quot;custom-control-input&quot; type=&quot;radio&quot; id=&quot;Q_2_rb3&quot; name=&quot;2&quot; value=&quot;3&quot; data-id=&quot;Curiosity&quot;&gt;
44          &lt;label for=&quot;Q_2_rb3&quot; class=&quot;custom-control-label font-weight-normal&quot;&gt;Gather information from my team members&lt;/label&gt;
45        &lt;/div&gt;
46        &lt;div class=&quot;custom-control custom-radio&quot;&gt;
47          &lt;input class=&quot;custom-control-input&quot; type=&quot;radio&quot; id=&quot;Q_2_rb4&quot; name=&quot;2&quot; value=&quot;5&quot; data-id=&quot;Curiosity&quot;&gt;
48          &lt;label for=&quot;Q_2_rb4&quot; class=&quot;custom-control-label font-weight-normal&quot;&gt;Gather information from various sources &lt;/label&gt;
49        &lt;/div&gt;
50        &lt;div class=&quot;custom-control custom-radio&quot;&gt;
51          &lt;input class=&quot;custom-control-input&quot; type=&quot;radio&quot; id=&quot;Q_2_rb5&quot; name=&quot;2&quot; value=&quot;1&quot; data-id=&quot;Curiosity&quot;&gt;
52          &lt;label for=&quot;Q_2_rb5&quot; class=&quot;custom-control-label font-weight-normal&quot;&gt;Does not matter to me &lt;/label&gt;
53        &lt;/div&gt;
54      &lt;/div&gt;
55    &lt;/div&gt;
56  &lt;/div&gt;
57&lt;/div&gt;
58

ANSWER

Answered 2020-Jul-16 at 13:32

You can find the checked radio items by running a filter function against the list of found radio buttons (criterion:checked) within a certain group (according to the data test id).

However, you will always get either 1 radio button selected or 0 because that's how radio's work, it's not like a checkbox, selecting another one will cause the previous one to deselect.

the below code should get you going:

1&lt;div class=&quot;multisteps-form__content&quot;&gt;
2  &lt;div class=&quot;row &quot;&gt;
3    &lt;div class=&quot;col-md-12 mt-3 align-items-center&quot;&gt;
4      &lt;div class=&quot;form-group&quot;&gt;
5        &lt;div class=&quot;custom-control custom-radio&quot;&gt;
6          &lt;input class=&quot;custom-control-input&quot; type=&quot;radio&quot; id=&quot;Q_1_rb1&quot; name=&quot;1&quot; value=&quot;1&quot; data-id=&quot;OriginalityOfIdeas&quot;&gt;
7          &lt;label for=&quot;Q_1_rb1&quot; class=&quot;custom-control-label font-weight-normal&quot;&gt;The event should be organized in the same way as every year. &lt;/label&gt;
8        &lt;/div&gt;
9        &lt;div class=&quot;custom-control custom-radio&quot;&gt;
10          &lt;input class=&quot;custom-control-input&quot; type=&quot;radio&quot; id=&quot;Q_1_rb2&quot; name=&quot;1&quot; value=&quot;3&quot; data-id=&quot;OriginalityOfIdeas&quot;&gt;
11          &lt;label for=&quot;Q_1_rb2&quot; class=&quot;custom-control-label font-weight-normal&quot;&gt;We could introduce some Virtual Reality games. &lt;/label&gt;
12        &lt;/div&gt;
13        &lt;div class=&quot;custom-control custom-radio&quot;&gt;
14          &lt;input class=&quot;custom-control-input&quot; type=&quot;radio&quot; id=&quot;Q_1_rb3&quot; name=&quot;1&quot; value=&quot;2&quot; data-id=&quot;OriginalityOfIdeas&quot;&gt;
15          &lt;label for=&quot;Q_1_rb3&quot; class=&quot;custom-control-label font-weight-normal&quot;&gt;We could make it different and more engaging, but need to think about how. &lt;/label&gt;
16        &lt;/div&gt;
17        &lt;div class=&quot;custom-control custom-radio&quot;&gt;
18          &lt;input class=&quot;custom-control-input&quot; type=&quot;radio&quot; id=&quot;Q_1_rb4&quot; name=&quot;1&quot; value=&quot;4&quot; data-id=&quot;OriginalityOfIdeas&quot;&gt;
19          &lt;label for=&quot;Q_1_rb4&quot; class=&quot;custom-control-label font-weight-normal&quot;&gt;We could invite some guest artists to perform during the day of the event.&lt;/label&gt;
20        &lt;/div&gt;
21        &lt;div class=&quot;custom-control custom-radio&quot;&gt;
22          &lt;input class=&quot;custom-control-input&quot; type=&quot;radio&quot; id=&quot;Q_1_rb5&quot; name=&quot;1&quot; value=&quot;5&quot; data-id=&quot;OriginalityOfIdeas&quot;&gt;
23          &lt;label for=&quot;Q_1_rb5&quot; class=&quot;custom-control-label font-weight-normal&quot;&gt;We could invite ideas from students to showcase their unique talent not known to others.&lt;/label&gt;
24        &lt;/div&gt;
25      &lt;/div&gt;
26    &lt;/div&gt;
27  &lt;/div&gt;
28&lt;/div&gt;
29
30&lt;div class=&quot;multisteps-form__content&quot;&gt;
31  &lt;div class=&quot;row &quot;&gt;
32    &lt;div class=&quot;col-md-12 mt-3 align-items-center&quot;&gt;
33      &lt;div class=&quot;form-group&quot;&gt;
34        &lt;div class=&quot;custom-control custom-radio&quot;&gt;
35          &lt;input class=&quot;custom-control-input&quot; type=&quot;radio&quot; id=&quot;Q_2_rb1&quot; name=&quot;2&quot; value=&quot;2&quot; data-id=&quot;Curiosity&quot;&gt;
36          &lt;label for=&quot;Q_2_rb1&quot; class=&quot;custom-control-label font-weight-normal&quot;&gt;Gather some information about them &lt;/label&gt;
37        &lt;/div&gt;
38        &lt;div class=&quot;custom-control custom-radio&quot;&gt;
39          &lt;input class=&quot;custom-control-input&quot; type=&quot;radio&quot; id=&quot;Q_2_rb2&quot; name=&quot;2&quot; value=&quot;4&quot; data-id=&quot;Curiosity&quot;&gt;
40          &lt;label for=&quot;Q_2_rb2&quot; class=&quot;custom-control-label font-weight-normal&quot;&gt;Know in detail about the diverse cultures &lt;/label&gt;
41        &lt;/div&gt;
42        &lt;div class=&quot;custom-control custom-radio&quot;&gt;
43          &lt;input class=&quot;custom-control-input&quot; type=&quot;radio&quot; id=&quot;Q_2_rb3&quot; name=&quot;2&quot; value=&quot;3&quot; data-id=&quot;Curiosity&quot;&gt;
44          &lt;label for=&quot;Q_2_rb3&quot; class=&quot;custom-control-label font-weight-normal&quot;&gt;Gather information from my team members&lt;/label&gt;
45        &lt;/div&gt;
46        &lt;div class=&quot;custom-control custom-radio&quot;&gt;
47          &lt;input class=&quot;custom-control-input&quot; type=&quot;radio&quot; id=&quot;Q_2_rb4&quot; name=&quot;2&quot; value=&quot;5&quot; data-id=&quot;Curiosity&quot;&gt;
48          &lt;label for=&quot;Q_2_rb4&quot; class=&quot;custom-control-label font-weight-normal&quot;&gt;Gather information from various sources &lt;/label&gt;
49        &lt;/div&gt;
50        &lt;div class=&quot;custom-control custom-radio&quot;&gt;
51          &lt;input class=&quot;custom-control-input&quot; type=&quot;radio&quot; id=&quot;Q_2_rb5&quot; name=&quot;2&quot; value=&quot;1&quot; data-id=&quot;Curiosity&quot;&gt;
52          &lt;label for=&quot;Q_2_rb5&quot; class=&quot;custom-control-label font-weight-normal&quot;&gt;Does not matter to me &lt;/label&gt;
53        &lt;/div&gt;
54      &lt;/div&gt;
55    &lt;/div&gt;
56  &lt;/div&gt;
57&lt;/div&gt;
58function getSelectedRadioButtonAmount(dataId) {
59  const arr = document.querySelectorAll(`[data-id=${dataId}]`);
60  return Array.from(arr).filter(x =&gt; x.checked).length
61}
62
63
64document.getElementById('find-button').addEventListener('click', () =&gt; {
65  const amount = getSelectedRadioButtonAmount('OriginalityOfIdeas');
66  console.log('number of selected radios', amount)
67
68})
1&lt;div class=&quot;multisteps-form__content&quot;&gt;
2  &lt;div class=&quot;row &quot;&gt;
3    &lt;div class=&quot;col-md-12 mt-3 align-items-center&quot;&gt;
4      &lt;div class=&quot;form-group&quot;&gt;
5        &lt;div class=&quot;custom-control custom-radio&quot;&gt;
6          &lt;input class=&quot;custom-control-input&quot; type=&quot;radio&quot; id=&quot;Q_1_rb1&quot; name=&quot;1&quot; value=&quot;1&quot; data-id=&quot;OriginalityOfIdeas&quot;&gt;
7          &lt;label for=&quot;Q_1_rb1&quot; class=&quot;custom-control-label font-weight-normal&quot;&gt;The event should be organized in the same way as every year. &lt;/label&gt;
8        &lt;/div&gt;
9        &lt;div class=&quot;custom-control custom-radio&quot;&gt;
10          &lt;input class=&quot;custom-control-input&quot; type=&quot;radio&quot; id=&quot;Q_1_rb2&quot; name=&quot;1&quot; value=&quot;3&quot; data-id=&quot;OriginalityOfIdeas&quot;&gt;
11          &lt;label for=&quot;Q_1_rb2&quot; class=&quot;custom-control-label font-weight-normal&quot;&gt;We could introduce some Virtual Reality games. &lt;/label&gt;
12        &lt;/div&gt;
13        &lt;div class=&quot;custom-control custom-radio&quot;&gt;
14          &lt;input class=&quot;custom-control-input&quot; type=&quot;radio&quot; id=&quot;Q_1_rb3&quot; name=&quot;1&quot; value=&quot;2&quot; data-id=&quot;OriginalityOfIdeas&quot;&gt;
15          &lt;label for=&quot;Q_1_rb3&quot; class=&quot;custom-control-label font-weight-normal&quot;&gt;We could make it different and more engaging, but need to think about how. &lt;/label&gt;
16        &lt;/div&gt;
17        &lt;div class=&quot;custom-control custom-radio&quot;&gt;
18          &lt;input class=&quot;custom-control-input&quot; type=&quot;radio&quot; id=&quot;Q_1_rb4&quot; name=&quot;1&quot; value=&quot;4&quot; data-id=&quot;OriginalityOfIdeas&quot;&gt;
19          &lt;label for=&quot;Q_1_rb4&quot; class=&quot;custom-control-label font-weight-normal&quot;&gt;We could invite some guest artists to perform during the day of the event.&lt;/label&gt;
20        &lt;/div&gt;
21        &lt;div class=&quot;custom-control custom-radio&quot;&gt;
22          &lt;input class=&quot;custom-control-input&quot; type=&quot;radio&quot; id=&quot;Q_1_rb5&quot; name=&quot;1&quot; value=&quot;5&quot; data-id=&quot;OriginalityOfIdeas&quot;&gt;
23          &lt;label for=&quot;Q_1_rb5&quot; class=&quot;custom-control-label font-weight-normal&quot;&gt;We could invite ideas from students to showcase their unique talent not known to others.&lt;/label&gt;
24        &lt;/div&gt;
25      &lt;/div&gt;
26    &lt;/div&gt;
27  &lt;/div&gt;
28&lt;/div&gt;
29
30&lt;div class=&quot;multisteps-form__content&quot;&gt;
31  &lt;div class=&quot;row &quot;&gt;
32    &lt;div class=&quot;col-md-12 mt-3 align-items-center&quot;&gt;
33      &lt;div class=&quot;form-group&quot;&gt;
34        &lt;div class=&quot;custom-control custom-radio&quot;&gt;
35          &lt;input class=&quot;custom-control-input&quot; type=&quot;radio&quot; id=&quot;Q_2_rb1&quot; name=&quot;2&quot; value=&quot;2&quot; data-id=&quot;Curiosity&quot;&gt;
36          &lt;label for=&quot;Q_2_rb1&quot; class=&quot;custom-control-label font-weight-normal&quot;&gt;Gather some information about them &lt;/label&gt;
37        &lt;/div&gt;
38        &lt;div class=&quot;custom-control custom-radio&quot;&gt;
39          &lt;input class=&quot;custom-control-input&quot; type=&quot;radio&quot; id=&quot;Q_2_rb2&quot; name=&quot;2&quot; value=&quot;4&quot; data-id=&quot;Curiosity&quot;&gt;
40          &lt;label for=&quot;Q_2_rb2&quot; class=&quot;custom-control-label font-weight-normal&quot;&gt;Know in detail about the diverse cultures &lt;/label&gt;
41        &lt;/div&gt;
42        &lt;div class=&quot;custom-control custom-radio&quot;&gt;
43          &lt;input class=&quot;custom-control-input&quot; type=&quot;radio&quot; id=&quot;Q_2_rb3&quot; name=&quot;2&quot; value=&quot;3&quot; data-id=&quot;Curiosity&quot;&gt;
44          &lt;label for=&quot;Q_2_rb3&quot; class=&quot;custom-control-label font-weight-normal&quot;&gt;Gather information from my team members&lt;/label&gt;
45        &lt;/div&gt;
46        &lt;div class=&quot;custom-control custom-radio&quot;&gt;
47          &lt;input class=&quot;custom-control-input&quot; type=&quot;radio&quot; id=&quot;Q_2_rb4&quot; name=&quot;2&quot; value=&quot;5&quot; data-id=&quot;Curiosity&quot;&gt;
48          &lt;label for=&quot;Q_2_rb4&quot; class=&quot;custom-control-label font-weight-normal&quot;&gt;Gather information from various sources &lt;/label&gt;
49        &lt;/div&gt;
50        &lt;div class=&quot;custom-control custom-radio&quot;&gt;
51          &lt;input class=&quot;custom-control-input&quot; type=&quot;radio&quot; id=&quot;Q_2_rb5&quot; name=&quot;2&quot; value=&quot;1&quot; data-id=&quot;Curiosity&quot;&gt;
52          &lt;label for=&quot;Q_2_rb5&quot; class=&quot;custom-control-label font-weight-normal&quot;&gt;Does not matter to me &lt;/label&gt;
53        &lt;/div&gt;
54      &lt;/div&gt;
55    &lt;/div&gt;
56  &lt;/div&gt;
57&lt;/div&gt;
58function getSelectedRadioButtonAmount(dataId) {
59  const arr = document.querySelectorAll(`[data-id=${dataId}]`);
60  return Array.from(arr).filter(x =&gt; x.checked).length
61}
62
63
64document.getElementById('find-button').addEventListener('click', () =&gt; {
65  const amount = getSelectedRadioButtonAmount('OriginalityOfIdeas');
66  console.log('number of selected radios', amount)
67
68})&lt;div class="multisteps-form__content"&gt;
69        &lt;button id="find-button"&gt;
70          Find checked radios
71        &lt;/button&gt;
72        
73        &lt;div class="row "&gt;
74          &lt;div class="col-md-12 mt-3 align-items-center"&gt;
75            &lt;div class="form-group"&gt;
76              &lt;div class="custom-control custom-radio"&gt;
77                &lt;input class="custom-control-input" type="radio" id="Q_1_rb1" name="1" value="1" data-id="OriginalityOfIdeas"&gt;
78                &lt;label for="Q_1_rb1" class="custom-control-label font-weight-normal"&gt;The event should be organized in the same way as every year. &lt;/label&gt;
79              &lt;/div&gt;
80              &lt;div class="custom-control custom-radio"&gt;
81                &lt;input class="custom-control-input" type="radio" id="Q_1_rb2" name="1" value="3" data-id="OriginalityOfIdeas"&gt;
82                &lt;label for="Q_1_rb2" class="custom-control-label font-weight-normal"&gt;We could introduce some Virtual Reality games. &lt;/label&gt;
83              &lt;/div&gt;
84              &lt;div class="custom-control custom-radio"&gt;
85                &lt;input class="custom-control-input" type="radio" id="Q_1_rb3" name="1" value="2" data-id="OriginalityOfIdeas"&gt;
86                &lt;label for="Q_1_rb3" class="custom-control-label font-weight-normal"&gt;We could make it different and more engaging, but need to think about how. &lt;/label&gt;
87              &lt;/div&gt;
88              &lt;div class="custom-control custom-radio"&gt;
89                &lt;input class="custom-control-input" type="radio" id="Q_1_rb4" name="1" value="4" data-id="OriginalityOfIdeas"&gt;
90                &lt;label for="Q_1_rb4" class="custom-control-label font-weight-normal"&gt;We could invite some guest artists to perform during the day of the event.&lt;/label&gt;
91              &lt;/div&gt;
92              &lt;div class="custom-control custom-radio"&gt;
93                &lt;input class="custom-control-input" type="radio" id="Q_1_rb5" name="1" value="5" data-id="OriginalityOfIdeas"&gt;
94                &lt;label for="Q_1_rb5" class="custom-control-label font-weight-normal"&gt;We could invite ideas from students to showcase their unique talent not known to others.&lt;/label&gt;
95              &lt;/div&gt;
96            &lt;/div&gt;
97          &lt;/div&gt;

Source https://stackoverflow.com/questions/62935348

Community Discussions contain sources that include Stack Exchange Network

Tutorials and Learning Resources in Virtual Reality

Tutorials and Learning Resources are not available at this moment for Virtual Reality

Share this Page

share link

Get latest updates on Virtual Reality