Spring is finally here and it’s time to get your bike ready for it after the winter. Konstantin, our mechanic, has made a short film in which he gives you practical tips on cleaning and maintaining your veloheld bike. So you are perfectly prepared for the coming cycling season.

Here you can get practical tips on cleaning and maintaining your veloheld bike:

  1. Removing dirt and maintaining the steel frame
  2. Cleaning and oiling the sprocket, cassette and chain
  3. Cleaning and greasing the stanchion
  4. Check all components (brakes, headset, fork, etc.)

And this is what you need:

  • Bicycle stand
  • Water (no high-pressure cleaner)
  • Cleaning agent for frame and drivetrain (we strongly recommend biodegradable cleaning agents, e.g. from Tunap)
  • Preservative for the interior of the frame (we recommend Fluid Film AS-R)
  • Chain oil: e.g. also from Tunap
  • Grease for the seatpost, depending on the material your seatpost is made of, we recommend bearing grease from Tunap, for example, for aluminum seatposts and special carbon assembly paste for carbon seatposts.
jQuery(window).on('load', function() { jQuery('a[data-toggle="tab"]').on('shown.bs.tab', function(e) { Waypoint.refreshAll(); }); }); jQuery(window).on('load',function(){ jQuery(".nav-tabs").on( 'shown.bs.tab', function() { window.dispatchEvent(new CustomEvent('boxResized')); } ); }); jQuery(function($){ setTimeout( function() { $('.elementor-tab-content .dataTable').DataTable({retrieve:true}).columns.adjust().draw(); $('.elementor-tab-title').one('click', function(){$('#'+this.getAttribute('aria-controls')+' .dataTable').DataTable({retrieve:true}).columns.adjust().draw();}); }, 10 ); }); (function () { function initSonstigesIn(root) { // root = Popup-DOM oder document const forms = root.querySelectorAll('form.wpcf7-form'); if (!forms.length) return; forms.forEach(form => { const wrap = form.querySelector('.sonstiges-wrap'); if (!wrap) return; function update() { const boxes = form.querySelectorAll('input[name="woher[]"]'); let show = false; boxes.forEach(cb => { if (cb.checked && cb.value === 'Sonstiges') show = true; }); wrap.style.display = show ? 'block' : 'none'; } // einmal initial update(); // change-handler (nur einmal binden) if (!form.dataset.sonstigesBound) { form.addEventListener('change', function(e){ if (e.target && e.target.matches('input[name="woher[]"]')) update(); }); form.dataset.sonstigesBound = "1"; } }); } // normaler Seitenload document.addEventListener('DOMContentLoaded', function () { initSonstigesIn(document); }); // CF7 re-init (Ajax) document.addEventListener('wpcf7init', function () { initSonstigesIn(document); }); // Popup Maker: wenn Popup geöffnet wurde document.addEventListener('pumAfterOpen', function (e) { // e.detail[0] ist meist das Popup-Element (jQuery object in manchen Setups) let popupEl = null; // Versuch 1: jQuery object if (e.detail && e.detail.length && e.detail[0] && e.detail[0][0]) { popupEl = e.detail[0][0]; } // Versuch 2: direktes Element if (!popupEl && e.target && e.target.classList && e.target.classList.contains('pum')) { popupEl = e.target; } initSonstigesIn(popupEl || document); }); })(); /* Top-Bar */ (function() { function rotateUSPs() { if (window.innerWidth <= 768) { return; // Beende Funktion auf Mobile } // Die ersten beiden b-Elemente auswählen const container1 = document.querySelector('.menu-bloginfo-inner b:nth-child(1)'); const container2 = document.querySelector('.menu-bloginfo-inner b:nth-child(2)'); if (!container1 || !container2) return; const items1 = container1.querySelectorAll('i'); const items2 = container2.querySelectorAll('i'); // Nur rotieren wenn mindestens ein Container mehrere Items hat if (items1.length <= 1 && items2.length <= 1) return; let currentIndex1 = 0; let currentIndex2 = 0; // gemeinsame Interval-Funktion für beide setInterval(() => { // Container 1 rotieren (falls mehrere spans) if (items1.length > 1) { const current1 = items1[currentIndex1]; const nextIndex1 = (currentIndex1 + 1) % items1.length; const next1 = items1[nextIndex1]; current1.style.opacity = '0'; current1.style.transform = 'translateY(-100%)'; setTimeout(() => { items1.forEach((item, idx) => { if (idx !== nextIndex1) { item.style.transform = 'translateY(100%)'; item.style.opacity = '0'; } }); next1.style.opacity = '1'; next1.style.transform = 'translateY(0)'; currentIndex1 = nextIndex1; }, 300); } // Container 2 rotieren (falls mehrere spans) if (items2.length > 1) { const current2 = items2[currentIndex2]; const nextIndex2 = (currentIndex2 + 1) % items2.length; const next2 = items2[nextIndex2]; current2.style.opacity = '0'; current2.style.transform = 'translateY(-100%)'; setTimeout(() => { items2.forEach((item, idx) => { if (idx !== nextIndex2) { item.style.transform = 'translateY(100%)'; item.style.opacity = '0'; } }); next2.style.opacity = '1'; next2.style.transform = 'translateY(0)'; currentIndex2 = nextIndex2; }, 300); } }, 10000); // Alle 10 Sekunden } // Starten wenn DOM geladen if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', rotateUSPs); } else { rotateUSPs(); } })(); add_action('wp_footer', function() { if (!is_product()) return; global $product; if (!$product || $product->get_id() != 0) { // 0 = Platzhalter, wird unten dynamisch geprüft } ?> .searchwp-live-search-results { opacity: 0; transition: opacity .25s ease-in-out; -moz-transition: opacity .25s ease-in-out; -webkit-transition: opacity .25s ease-in-out; height: 0; overflow: hidden; z-index: 9999995; /* Exceed SearchWP Modal Search Form overlay. */ position: absolute; display: none; } .searchwp-live-search-results-showing { display: block; opacity: 1; height: auto; overflow: auto; } .searchwp-live-search-no-results { padding: 3em 2em 0; text-align: center; } .searchwp-live-search-no-min-chars:after { content: "Continue typing"; display: block; text-align: center; padding: 2em 2em 0; }