/
/
home
/
u523034047
/
domains
/
josanfishfarmsolutions.com
/
public_html
Server: in-mum-web1112.main-hosting.eu (62.72.28.111)
You: 216.73.216.52
PHP 8.3.16
Dir:
/home/u523034047/domains/josanfishfarmsolutions.com/public_html
Edit:
/home/u523034047/domains/josanfishfarmsolutions.com/public_html/footer.php
<div class="vc_row wpb_row vc_row-fluid vc_custom_1547632835826 vc_row-has-fill stretch_row_content vc_row-o-equal-height vc_row-o-content-top vc_row-flex vc-row-257012" > <div class="container et-clearfix"> <div class="wpb_column vc_column_container vc_col-sm-12 vc_col-lg-2/5 vc_col-md-12 vc_col-xs-12 text-align-none vc_col-has-fill vc-column-344826" > <div class="vc_column-inner vc_custom_1547635748641" data-480-left="5" data-480-right="5" data-480-768-left="5" data-480-768-right="10" data-768-1024-left="5" data-768-1024-right="30" data-1024-1280-left="5" data-1024-1280-right="50" data-1280-1366-right="15" data-1366-1600-right="20" data-1600-1920-right="30" > <div class="wpb_wrapper"> <h4 class="et-heading text-align-left tablet-text-align-inherit mobile-text-align-inherit animate-false no-animation-type" id="et-heading-9935" data-delay="0" data-mobile-font="inherit" data-mobile-line-height="inherit" data-tablet-landscape-font="inherit" data-tablet-portrait-font="inherit" data-tablet-landscape-line-height="inherit" data-tablet-portrait-line-height="inherit" data-parallax="false" data-move="false" data-coordinatex="0" data-coordinatey="0" data-speed="10"><span class="text-wrapper"><span class="text">Josan Fish Farm Solutions</span></span></h4><span class="et-gap et-clearfix et-gap-257107"></span> <div class="wpb_text_column wpb_content_element " data-animation-delay="0"> <div class="wpb_wrapper"> <p><span style="color: #ffffff;"><span class="et-font-size" data-fontsize="18px" data-lineheight="28px">At Josan Fish Farm Solutions, we believe that aquaculture is not just a business but a sustainable way to feed the future. Established with a passion for fisheries and rural development, our mission is to empower fish farmers with the right knowledge, quality products, and reliable services that help them succeed.</span></span></p> </div> </div> <span class="et-gap et-clearfix et-gap-281825"></span><a id="et-button-880614" class="et-button icon-position-right modal-false large hover-fill click-none has-icon" target="_self" href="contact-us.php" data-animation-delay="0" data-parallax="false" data-move="false" data-coordinatex="0" data-coordinatey="0" data-speed="10"><span class="hover"></span><span class="regular"></span><span class="text">Contact us</span><span class="icon ien ien-earrow-3"></span></a><span class="et-gap et-clearfix et-gap-506057 hide1280"></span> </div> </div> </div><div class="wpb_column vc_column_container vc_col-sm-12 vc_col-lg-3/5 vc_col-md-12 vc_col-xs-12 text-align-none vc-column-514129" > <div class="vc_column-inner vc_custom_1547635769319" data-480-left="5" data-480-right="5" data-480-768-left="5" data-480-768-right="5" data-768-1024-left="5" data-768-1024-right="5" data-1024-1280-left="5" data-1024-1280-right="5" > <div class="wpb_wrapper"> <div class="vc_row wpb_row vc_inner vc_row-fluid vc_column-gap-24 vc-row-721769"><div class="wpb_column vc_column_container vc_col-sm-4 vc_col-lg-3 vc_col-md-3 vc_col-xs-12"> <div class="vc_column-inner"> <div class="wpb_wrapper"> <div class="vc_wp_text wpb_content_element widget-no-marginb footer-menu-widgets"> <div class="widget widget_text"> <h2 class="widgettitle">Products </h2> <div class="textwidget"> <p> <a href="our-products.php">Fishery Products</a><br /> <a href="our-products.php">Farming Essentials</a><br /> </p> </div> </div> </div> </div> </div> </div> <div class="wpb_column vc_column_container vc_col-sm-4 vc_col-lg-3 vc_col-md-3 vc_col-xs-12"> <div class="vc_column-inner"> <div class="wpb_wrapper"> <div class="vc_wp_text wpb_content_element widget-no-marginb footer-menu-widgets"> <div class="widget widget_text"> <h2 class="widgettitle">Services</h2> <div class="textwidget"> <p> <a href="our-services.php">Fish Seeds Supply</a><br /> <a href="our-services.php"><span class="txt">Pond Construction</span></a><br /> <a href="our-services.php"><span class="txt"> Fish Feed Supply</span></a><br /> <a href="our-services.php"><span class="txt">Water Testing</span></a><br /> </p> </div> </div> </div> </div> </div> </div> <div class="wpb_column vc_column_container vc_col-sm-4 vc_col-lg-4 vc_col-md-4 vc_col-xs-12"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="vc_wp_text wpb_content_element widget-no-marginb footer-menu-widgets"><div class="widget widget_text"><h2 class="widgettitle">Contact</h2><div class="textwidget"><p> <i class="fa-solid fa-location-dot yellow-icon"></i> Village: Majra Mardan, Bakainiya, Sakainiya Road, <br /> Gadarpur, Post Subashnagar, District Udham Singh Nagar, Uttarakhand, PIN 263152<br>GSTIN: 05LYEPS1618F1ZB</p> <p><a href="mailto:pradeep.wmk@gmail.com"> <i class="fa-solid fa-envelope yellow-icon"></i> Email: pradeep.wmk@gmail.com</a></p> <p><i class="fa-solid fa-mobile-screen-button yellow-icon"></i> Contact : <a href="tel:<?php include ('mob.php');?> "><?php include ('mob.php');?> </a> / <a href="tel:09927886650">9927886650 </a> </p> </div></div></div></div></div></div></div> </div> </div> </div> </div> </div><div class="vc_row wpb_row vc_row-fluid vc_custom_1547636132714 vc_row-has-fill vc_column-gap-24 stretch_row_content vc_row-o-content-middle vc_row-flex vc-row-449358" > <div class="container et-clearfix"> <div class="wpb_column vc_column_container vc_col-sm-6 vc_col-lg-6 vc_col-md-6 vc_col-xs-12 text-align-none vc-column-725607" > <div class="vc_column-inner vc_custom_1547635797926" data-480-left="5" data-480-right="5" data-480-768-left="5" data-480-768-right="5" data-768-1024-left="10" data-1024-1280-left="10" > <div class="wpb_wrapper"> <div class="et-heading text-align-left tablet-text-align-inherit mobile-text-align-inherit animate-false no-animation-type" id="et-heading-515269" data-delay="0" data-mobile-font="inherit" data-mobile-line-height="inherit" data-tablet-landscape-font="inherit" data-tablet-portrait-font="inherit" data-tablet-landscape-line-height="inherit" data-tablet-portrait-line-height="inherit" data-parallax="false" data-move="false" data-coordinatex="0" data-coordinatey="0" data-speed="10"><span class="text-wrapper"><span class="text">All rights reserved. Design by <a href="https://harishsoftwaredeveloper.in/" target="_blank">Harish Software Developer</a></span></span></div> </div> </div> </div><div class="text767-align-left wpb_column vc_column_container vc_col-sm-6 vc_col-lg-6 vc_col-md-6 vc_col-xs-12 text-align-right vc-column-898234" > <div class="vc_column-inner vc_custom_1547635855424" data-480-left="5" data-480-right="5" data-480-768-left="5" data-480-768-right="5" data-768-1024-right="10" data-1024-1280-right="10" > <div class="wpb_wrapper"> </div> </div> </div> </div> </div> <style> .yellow-icon { color: gold; /* Using 'gold' for a nice yellow shade */ font-size: 1.5em; /* Optional: Make the icons slightly bigger */ } </style> <!-- PUT THIS BEFORE </body> (or in footer.php) --> <script> (function () { const canvas = document.getElementById('aqua-effect'); const ctx = canvas.getContext('2d', { alpha: true }); // Config const CONFIG = { fishCount: 7, bubbleCount: 60, maxBubbleRadius: 10, minBubbleRadius: 2, bubbleSpeedMin: 0.3, bubbleSpeedMax: 1.2, fishColors: ['#FF9F1C','#FF6B6B','#4ECDC4','#4D96FF','#7C4DFF','#22C1C3','#FFC857'], fishMinSpeed: 0.3, fishMaxSpeed: 1.0, fishMinSize: 18, fishMaxSize: 42, reduceOnMobile: true }; // Resize handling function fitCanvas() { const dpr = window.devicePixelRatio || 1; canvas.width = Math.max(800, Math.ceil(window.innerWidth * dpr)); canvas.height = Math.max(600, Math.ceil(window.innerHeight * dpr)); canvas.style.width = window.innerWidth + 'px'; canvas.style.height = window.innerHeight + 'px'; ctx.setTransform(dpr, 0, 0, dpr, 0, 0); } fitCanvas(); window.addEventListener('resize', fitCanvas); // Utility function rand(min, max) { return Math.random() * (max - min) + min; } // Bubbles class Bubble { constructor() { this.reset(true); } reset(initial) { this.r = rand(CONFIG.minBubbleRadius, CONFIG.maxBubbleRadius); this.x = rand(-50, window.innerWidth + 50); this.y = initial ? rand(0, window.innerHeight) : window.innerHeight + this.r + rand(10, 200); this.speed = rand(CONFIG.bubbleSpeedMin, CONFIG.bubbleSpeedMax) * (0.6 + this.r / CONFIG.maxBubbleRadius); this.alpha = rand(0.3, 0.9); this.horizontalDrift = rand(-0.3, 0.3); } update(dt) { this.y -= this.speed * dt; this.x += this.horizontalDrift * dt; if (this.y < -20 || this.x < -100 || this.x > window.innerWidth + 100) { this.reset(false); } } draw(ctx) { ctx.save(); ctx.globalAlpha = this.alpha * 0.9; // subtle inner shine const grad = ctx.createRadialGradient(this.x - this.r/3, this.y - this.r/3, this.r*0.1, this.x, this.y, this.r); grad.addColorStop(0, 'rgba(255,255,255,0.9)'); grad.addColorStop(0.6, 'rgba(255,255,255,0.2)'); grad.addColorStop(1, 'rgba(200,240,255,0.05)'); ctx.fillStyle = grad; ctx.beginPath(); ctx.arc(this.x, this.y, this.r, 0, Math.PI * 2); ctx.fill(); ctx.restore(); } } // Fish: simple drawn fish shape (body + tail + eye) class Fish { constructor(color) { this.reset(); this.color = color; } reset() { this.size = rand(CONFIG.fishMinSize, CONFIG.fishMaxSize); this.y = rand(80, window.innerHeight - 120); this.direction = Math.random() < 0.5 ? 1 : -1; // 1 => left->right, -1 => right->left this.x = this.direction === 1 ? -this.size - rand(20,400) : window.innerWidth + this.size + rand(20,400); this.speed = rand(CONFIG.fishMinSpeed, CONFIG.fishMaxSpeed) * (0.6 + this.size / CONFIG.fishMaxSize); this.phase = rand(0, Math.PI*2); this.amplitude = rand(8, Math.max(16, this.size * 0.6)); this.wobbleSpeed = rand(0.003, 0.008); } update(dt) { // horizontal movement this.x += this.direction * this.speed * dt * 0.6; // vertical sine-wave this.phase += this.wobbleSpeed * dt; this.y += Math.sin(this.phase) * (this.amplitude * 0.02 * dt); // wrap-around: when off-screen, reset to other side if (this.direction === 1 && this.x > window.innerWidth + this.size + 200) this.reset(); if (this.direction === -1 && this.x < -this.size - 200) this.reset(); } draw(ctx) { ctx.save(); ctx.translate(this.x, this.y); if (this.direction === -1) ctx.scale(-1,1); // flip for left-moving // scale fish according to size const s = this.size / 30; ctx.scale(s, s); // body ctx.beginPath(); ctx.ellipse(0, 0, 22, 12, 0, 0, Math.PI * 2); ctx.fillStyle = this.color; ctx.fill(); // tail (triangle) ctx.beginPath(); ctx.moveTo(-18, 0); ctx.lineTo(-30, -10); ctx.lineTo(-30, 10); ctx.closePath(); ctx.fillStyle = shadeColor(this.color, -12); ctx.fill(); // eye ctx.beginPath(); ctx.fillStyle = '#fff'; ctx.arc(8, -2, 3, 0, Math.PI*2); ctx.fill(); ctx.beginPath(); ctx.fillStyle = '#111'; ctx.arc(9, -2, 1.4, 0, Math.PI*2); ctx.fill(); // subtle highlight ctx.beginPath(); ctx.fillStyle = 'rgba(255,255,255,0.12)'; ctx.ellipse(4, -2, 8, 3, 0, 0, Math.PI*2); ctx.fill(); ctx.restore(); } } // simple color shade helper (darker/lighter) function shadeColor(hex, percent) { // hex like #RRGGBB const f = hex.slice(1); const r = parseInt(f.substr(0,2),16); const g = parseInt(f.substr(2,2),16); const b = parseInt(f.substr(4,2),16); const t = percent < 0 ? 0 : 255; const p = Math.abs(percent)/100; const R = Math.round((t - r) * p) + r; const G = Math.round((t - g) * p) + g; const B = Math.round((t - b) * p) + b; return '#' + ( (1<<24) + (R<<16) + (G<<8) + B ).toString(16).slice(1); } // initialize bubbles and fish based on config & window let bubbles = []; let fishies = []; function initEntities() { bubbles = []; fishies = []; const bubbleCount = Math.floor(CONFIG.bubbleCount * Math.min(1, window.innerWidth/1200)); for (let i=0;i<bubbleCount;i++) bubbles.push(new Bubble()); // create exactly 7 fish (or CONFIG.fishCount) for (let i=0;i<CONFIG.fishCount;i++){ const color = CONFIG.fishColors[i % CONFIG.fishColors.length]; fishies.push(new Fish(color)); } } initEntities(); // optionally reduce on small screens function shouldRunEffect() { if (CONFIG.reduceOnMobile && window.innerWidth < 600) return true; // still run but lower counts already handled return true; } // main loop let last = performance.now(); function loop(now) { const dt = Math.min(40, now - last) / 16.67; // normalized delta, avoid huge jumps last = now; // clear canvas with subtle bluish tint (transparent) ctx.clearRect(0,0,canvas.width,canvas.height); // draw faint water gradient background on canvas (very subtle) const g = ctx.createLinearGradient(0,0,0,window.innerHeight); g.addColorStop(0, 'rgba(6, 30, 63, 0.02)'); g.addColorStop(1, 'rgba(6, 30, 63, 0.04)'); ctx.fillStyle = g; ctx.fillRect(0,0,window.innerWidth,window.innerHeight); // draw bubbles (behind fish) for (let b of bubbles) { b.update(dt); b.draw(ctx); } // draw fish for (let f of fishies) { f.update(dt); f.draw(ctx); } requestAnimationFrame(loop); } requestAnimationFrame(loop); // Re-init entities on resize (so positions and counts stay sensible) let resizeTimeout; window.addEventListener('resize', function(){ clearTimeout(resizeTimeout); resizeTimeout = setTimeout(()=> { fitCanvas(); initEntities(); }, 150); }); // Public: simple API to toggle effect (if you want to control it) window.AquaEffect = { pause: function(){ cancelAnimationFrame(loop); /* not recommended: this stops loop reference */ }, reinit: function(){ fitCanvas(); initEntities(); }, }; })(); </script> <a href="https://wa.me/919927886650?text=Hi%20!%20Josan%20Fish%20Farm%20Solutions%2C%20i%20am%20interested%20in%20your%20fish%20material.%0Aplease%20provide%20more%20information%20." class="whatsapp-float" target="_blank"> <i class="fa-brands fa-whatsapp"></i> </a>
Ukuran: 14.9 KB