सीबीआई कार्यालय भवन, बीकेसी, मुंबई, जी-ब्लॉक, बांद्रा-कुर्ला कॉम्प्लेक्स, मुंबई

बहुमंजिला इमारतों के लिए पोस्ट टेंशनयुक्त निर्माण प्रौद्योगिकी

परियोजना का नाम : सीबीआई कार्यालय भवन, बीकेसी, मुंबई, जी-ब्लॉक, बांद्रा-कुर्ला कॉम्प्लेक्स, मुंबई

केंद्रीय जांच ब्यूरो (सीबीआई) को मुंबई मेट्रोपॉलिटन रीजन डेवलपमेंट अथॉरिटी (एमएमआरडीए) द्वारा मुंबई में बांद्रा-कुर्ला कॉम्प्लेक्स के सी-35 ए, जी-ब्लॉक में 1500 वर्ग मीटर की जमीन आवंटित की गई थी, जिसे मुंबई में बीकेसी के नाम से जाना जाता है। उन्होंने परियोजना प्रबंधन का काम केंद्रीय लोक निर्माण विभाग (सीपीडब्ल्यूडी) को सौंपा। सीपीडब्ल्यूडी ने मेसर्स एनार्च कंसल्टेंट प्राइवेट लिमिटेड को सलाहकार नियुक्त किया। प्रारंभ में इसमें 2 बेसमेंट + ग्राउंड + 10 मंजिला संरचना की योजना बनाई गई थी, लेकिन बाद में आवश्यकताओं को पूरा करने के लिए, इमारत को 2 बेसमेंट + ग्राउंड + 13 मंजिला संरचना के साथ बनाने की योजना बनाई गई थी। चूंकि प्लॉट का आकार बहुत छोटा था और सीबीआई की जगह की आवश्यकताएं अधिक थीं, 4 की पूरी एफएसआई का उपयोग किया गया था और एमएमआरडीए को उनके दिशानिर्देशों के अनुसार प्रीमियम का भुगतान करके कुछ एफएसआई भी खरीदा गया था। बेसमेंट सहित कुल नियोजित क्षेत्र 10,500 वर्गमीटर था। उसी के अनुरूप योजनाएं स्वीकृत करायी गयीं. मुंबई में सीबीआई भवन का निर्माण स्थानीय निकायों की सभी आवश्यकताओं के अनुरूप नवीनतम मानदंडों के साथ किया गया है। इसमें लगभग सभी कार्यालय एक ही छत के नीचे हैं। इमारत पूरी तरह से कब्जे में है और मार्च 2016 से चालू है। परियोजना की महत्वपूर्ण विशेषताएं नई सामग्रियों और तकनीकों को अपनाना, 4 स्टार गृह रेटिंग और भूखंड में स्थानीय उपनियमों के अनुसार आवश्यक पार्किंग सहित समायोजन सेवाएं थीं। इमारत ने प्रतिष्ठित सीआईडीसी सर्वश्रेष्ठ परियोजना पुरस्कार, सीपीडब्ल्यूडी सर्वश्रेष्ठ पूर्ण परियोजना और आईबीसी पुरस्कार हासिल किया है।

img

लाख

परियोजना का बजट

img

01 जनवरी 2018

आरंभ करने की तिथि

img

01 जनवरी 2019

पूरा करने की तिथि

img

मुंबई

जगह

परियोजना टीम / हमसे संपर्क करें

क्रमांक नाम (श्री / श्रीमती) पद कार्यालय का पता कार्यालय नंबर मोबाइल नंबर ईमेल आईडी
1

तकनीक

तकनीक
बहुमंजिला इमारतों के लिए पोस्ट टेंशनयुक्त निर्माण प्रौद्योगिकी

विवरण

बहुमंजिला निर्माण अब पसंद की बात नहीं है, बल्कि जमीन की कमी और ऊंची कीमत के कारण एक आवश्यकता बन गई है। निर्माण में मितव्ययिता के कारण अब बड़े मॉड्यूल और स्पैन को विशेष रूप से कार्यालय और वाणिज्यिक भवनों में पसंद किया जाता है। यह भी वांछित है कि निर्मित स्थान के प्रति इकाई क्षेत्र की लागत को कम करने के लिए भवन की समान ऊंचाई पर अधिक इकाइयों को समायोजित किया जा सके।

देश के अधिकांश हिस्सों में गर्मियों के दौरान तापमान बढ़ने के कारण कार्यालयों, वाणिज्यिक और संस्थागत भवनों में भी केंद्रीकृत एयर कंडीशनिंग की आवश्यकता होती है। इसलिए, आर्किटेक्ट और इंजीनियरों को ऐसी तकनीक अपनानी होगी जिससे एयर कंडीशनिंग डक्ट का आकार कम हो जाए और बीम या तो खत्म हो जाएं या उनका आकार कम हो जाए। यहां तक कि आवासीय भवनों के मामले में भी यदि बीम हटा दिए जाते हैं, तो उच्च हेडरूम हासिल किया जा सकता है और उसी ऊंचाई के भीतर, अधिक संख्या में मंजिलों की योजना बनाई जा सकती है, जिससे एक इकाई की लागत कम हो सकती है।

तनाव के बाद निर्माण तकनीक बीम और स्लैब के आकार को खत्म करने या कम करने का लाभ प्रदान करती है, इसलिए भविष्य में ऐसी तकनीक भारत में पारंपरिक आरसीसी निर्माण की जगह लेने जा रही है।


प्रमुख लाभ

सामग्री की बचत

  1. कंक्रीट के पतले सदस्यों के कारण कंक्रीट में कमी।
  2. फर्श के तत्वों में सरिया की कमी।
  3. डेड लोड में कमी के परिणामस्वरूप कंक्रीट की बचत और नींव सहित संरचनात्मक सदस्यों का सुदृढीकरण हुआ।
  4. कम आकार के कारण बिल्डिंग क्लैडिंग, ऊर्ध्वाधर यांत्रिक/सेवा तत्वों, कतरनी दीवारों में सरिया और कंक्रीट और अन्य सामग्रियों में बचत।

तेज़ निर्माण

  1. 3-4 दिनों का संभावित प्रवाह चक्र।
  2. पुनः शोरिंग में कमी.
  3. एंबेड और एमईपी ओपनिंग के साथ बेहतर समन्वय।

प्रदर्शन में वृद्धि

  1. भूकंपीय व्यवहार में सुधार.
  2. कम विक्षेपण और कंपन.
  3. बेहतर दरार नियंत्रण और वॉटर प्रूफिंग गुण, विशेष रूप से पार्किंग गैरेज और बालकनियों के लिए फायदेमंद।
  4. लंबे स्पैन और कम कॉलम कार्यालय/आवासीय भवनों में फर्श लेआउट में अधिक लचीलापन देते हैं और पार्किंग गैरेज में बेहतर रोशनी देते हैं जो व्यक्तिगत सुरक्षा को बढ़ाता है।

जीवनकाल की लागत में कमी

  1. कम रखरखाव और जीवनचक्र लागत।
  2. इमारत की ऊंचाई कम करने से अधिक जगह और ऊर्जा की बचत होती है।
  3. हरित भवन मानदंडों के अनुरूप होने की संभावना।

प्री-स्ट्रेस्ड कंक्रीट डिज़ाइन लंबी अवधि वाली संरचनाओं और भारी भार उठाने वाली संरचनाओं के लिए अधिक उपयुक्त है। पूर्व-तनावग्रस्त संरचनाएं पतली होती हैं और इस प्रकार अधिक निकासी प्रदान करती हैं। वे कामकाजी भार और मृत भार के तहत नहीं टूटते हैं, और पूर्व-तनाव के कैंबरिंग प्रभाव के कारण विक्षेपण कम हो जाता है।


कार्यान्वयन रणनीति

क्रमांक विवरण इमेजिस
1

संरचनात्मक व्यवस्था -

इमारत को आरसीसी फ्रेम संरचना के रूप में डिजाइन किया गया था। सभी मंजिलों के लिए बड़े हेडरूम के लिए पोस्ट टेंशन वाले स्लैब डिजाइन किए गए थे क्योंकि इमारत पूरी तरह से वातानुकूलित थी। जगह की बचत करने के लिए शौचालय ब्लॉकों की छत पर एएचयू लगाए गए थे। संरचनात्मक ग्लेज़िंग को आवश्यकताओं के अनुसार डिजाइन और परीक्षण किया गया था। इनफिल दीवारों में ऑटोक्लेव्ड वातित कंक्रीट (एएसी) ब्लॉक का उपयोग किया गया था।

पोस्ट टेंशन्ड (पीटी) स्लैब -

पीटी स्लैब सभी मंजिलों में अपनाए गए थे। इसने अतिरिक्त हेडरूम प्रदान किया जो सेवाओं के लिए आवश्यक था। पीटी स्लैब में स्पष्ट स्पैन में वृद्धि, अतिरिक्त हेडरूम, इमारत की समान ऊंचाई में अधिक मंजिलों को सक्षम करने के लिए कम मंजिल की ऊंचाई, पतली स्लैब, हल्की संरचना, कम दरार और विक्षेपण, और गुणवत्ता और कुशल कार्य के फायदे हैं। बहुमंजिला इमारतों के मामले में यह विशेष रूप से किफायती है। पीटी स्लैब की सीमा यह है कि इसका बीमा किया जाना चाहिए कि इसे कभी भी काटा या ड्रिल नहीं किया जाए जो संरचना की विफलता का कारण बन सकता है।

2

सूखे पत्थर का आवरण -

बाहरी हिस्से में एसीपी शीट और सूखे ग्रेनाइट पत्थरों का आवरण है। इसके लिए पत्थरों को लगाने की विशेष व्यवस्था की गई। जैसा कि चित्र में दिखाया गया है, पत्थरों को चार स्टेनलेस स्टील पिनों पर रखा गया था। प्रत्येक पिन को दो पत्थरों में डाला गया जिनमें पहले छेद किये गये।

 

3

डबल स्टैक मैकेनाइज्ड कार पार्किंग -
बेसमेंट में डबल स्टैक मैकेनाइज्ड कार पार्किंग का उपयोग किया गया क्योंकि इससे जगह की बचत हुई और स्थानीय उपनियमों के अनुसार आवश्यक पार्किंग की भी व्यवस्था हो गई।

4

हरित भवन की विशेषताएं -

चूंकि परियोजना को 4 स्टार GRIHA रेटिंग के लिए पंजीकृत किया गया था, इसलिए हरित भवन सुविधाएँ GRIHA रेटिंग की आवश्यकताएं थीं। परियोजना में ऊर्जा कुशल एलईडी और टी5 लाइट का उपयोग किया गया। फिटिंग के अलावा, ऊर्जा कुशल चिलर का उपयोग किया गया था।
अपशिष्ट जल के पुनर्चक्रण के लिए, बेसमेंट में 35 kLD क्षमता का सीवेज उपचार संयंत्र प्रदान किया गया था। वर्षा जल संचयन की भी व्यवस्था की गई।
सौर पीवी पैनलों को छत के स्लैब पर समायोजित नहीं किया जा सकता था इसलिए एक स्टील ढांचा स्थापित किया गया था ताकि सौर पीवी पैनलों को उसी पर स्थापित किया जा सके। 20 किलोवाट का एक छोटा सौर ऊर्जा संयंत्र प्रदान किया गया था।

5

संरचनात्मक ग्लेज़िंग -

बाहरी दीवारों पर संरचनात्मक ग्लेज़िंग प्रदान की गई जिससे संरचना के वजन को कम करने में भी मदद मिली। ग्लेज़िंग को आवश्यक लोडिंग के लिए डिज़ाइन और परीक्षण किया गया था। संरचनात्मक ग्लेज़िंग की मुख्य महत्वपूर्ण विशेषता अग्निशमन अधिकारियों की आवश्यकताओं का पालन करना था।

काँच -

हॉल के अंदर बाहरी रोशनी लाने के लिए विभाजन में आंशिक रूप से कांच का उपयोग किया गया था। अधिकारियों के केबिनों की योजना इमारत की परिधि पर बनाई गई थी जबकि कर्मचारियों के लिए केंद्र में हॉल की योजना बनाई गई थी। अंदर और लॉबी में रोशनी लाने के लिए विभाजन में कांच का उपयोग किया गया था। लॉबी में फायर रेटेड टफन्ड ग्लास का इस्तेमाल किया गया था।

6

इतालवी संगमरमर का फर्श -
मुख्य लॉबी और लिफ्ट लॉबी में, सौंदर्य प्रयोजनों के लिए इतालवी संगमरमर के फर्श का उपयोग किया गया था।

7

फ़ोल्ड करने योग्य विभाजन -

सभागार सह प्रशिक्षण केंद्र में, डोरमा फोल्डेबल विभाजन प्रदान किया गया ताकि दोनों को मिलाकर बड़ी सभा के लिए इसका उपयोग किया जा सके।

8

अन्य सुविधाओं -

इसमें सभी सुरक्षा उपकरण, इंटेलिजेंट फायर अलार्म सिस्टम, इंटेलिजेंट बिल्डिंग मैनेजमेंट सिस्टम, संपूर्ण नेटवर्किंग, बेसमेंट के चारों ओर डायाफ्राम दीवार का निर्माण, बेसमेंट में धुआं निकालने वाले पंखे, गैस आधारित अग्नि शमन प्रणाली, केबिन और शौचालयों में सेंसर आधारित लाइट, वेरिएबल फ्रीक्वेंसी ड्राइव शामिल हैं। चिलर और एएचयू, और मूक डीजी सेट। इमारत को विकलांगों के अनुकूल डिजाइन किया गया है। लिफ्टों को ब्रेल भाषा प्रदान की जाती है।

सीखे गए सबक / सीखें

क्रमांक विवरण इमेजिस
1

मुंबई में सीबीआई भवन का निर्माण स्थानीय निकायों की सभी आवश्यकताओं के अनुरूप नवीनतम मानदंडों के साथ किया गया है। इसमें लगभग सभी कार्यालय एक ही छत के नीचे हैं। इमारत पूरी तरह से कब्जे में है और मार्च 2016 से चालू है।

इमारत ने प्रतिष्ठित सीआईडीसी सर्वोत्तम परियोजना पुरस्कार, सीपीडब्ल्यूडी सर्वोत्तम पूर्ण परियोजना और आईबीसी पुरस्कार प्राप्त किया है।

टेम्पलेट के प्रोसेसिंग के समय त्रुटि हुई है.
The following has evaluated to null or missing:
==> request.getParameter("param")  [in template "20096#20121#887434" at line 17, column 84]

----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign param1 = request.getParameter...  [in template "20096#20121#887434" at line 17, column 66]
----
1<#assign Project_related_to =""/> 
2<#assign Project_related_to ="Project related to"/> 
3				<#if locale?contains("hi")> 
4				<#assign Project_related_to ="प्रोजेक्ट से सम्बंधित"/> 
5			</#if> 
6 
7<#assign Technology =""/> 
8<#assign Technology ="Technology"/> 
9				<#if locale?contains("hi")> 
10				<#assign Technology ="तकनीकी"/> 
11			</#if> 
12 
13<section class="w-100 clearfix cpwdOurUnitsSec" id="cpwdOurUnitsSec"> 
14         <div class="cpwdOurUnitsInner"> 
15            <div class="container-fluid container-space custom-container-xxl"> 
16               <div class="cpwdOurUnitsCarousel"> 
17								 <#assign param1 = request.getParameter("param")/>  
18                 	 <div class="cpwdHeadingCommon"> 
19                     <h2> ${Project_related_to} ${param1} ${Technology}</h2> 
20                  </div> 
21                  <div class="owl-carousel owl-theme ourUnitsOwlCarousel"> 
22										 
23 
24 
25     <#if entries?has_content> 
26   <#list entries as entry> 
27	 <#assign assetRenderer = entry.getAssetRenderer()/> 
28	 <#assign className = assetRenderer.getClassName()/> 
29	 <#assign entryTitle = htmlUtil.escape(assetRenderer.getTitle(locale))/> 
30	 <#assign viewURL= assetPublisherHelper.getAssetViewURL(renderRequest, renderResponse, entry,true)/>		  								 
31	 <#assign viewURL = assetRenderer.getURLViewInContext(renderRequest, renderResponse, viewURL)/> 
32	 <#assign fields = entry.getAssetRenderer().getDDMFormValuesReader().getDDMFormValues().getDDMFormFieldValues()/> 
33   <#if fields[1].getValue().getString(locale)== param1>		 
34			 
35			 
36<#assign docValJSON = fields[2].getValue().getString(locale) /> 
37<#assign imageUrl = jsonFactoryUtil.createJSONObject(docValJSON).getString("url") /> 
38<#if imageUrl?has_content> 
39 
40<#else> 
41<#assign imageUrl = "/documents/676924/679930/Tech080820181709230.jpg/abb94334-77e9-4623-a36f-f6abf59e52f8?t=1669112725720"/> 
42</#if> 
43 
44					 
45                <div class="item"> 
46									<#if entry.getAssetRenderer().hasEditPermission(themeDisplay.getPermissionChecker())> 
47        <#assign redirectURL = renderResponse.createRenderURL() /> 
48 
49        ${redirectURL.setParameter("struts_action", "/asset_publisher/add_asset_redirect")} 
50        ${redirectURL.setWindowState("pop_up")} 
51 
52        <#assign editPortletURL = entry.getAssetRenderer().getURLEdit(renderRequest, renderResponse)!"" /> 
53 
54        <#if validator.isNotNull(editPortletURL)> 
55            <#assign title = languageUtil.format(locale, "edit-x", entry.getTitle(locale)) /> 
56				    <a class="content-edit-icon-profile" href="${editPortletURL}"><i class="fas fa-edit"></i></a> 
57        </#if> 
58    </#if> 
59									 
60									 <div class="projectBox"> 
61                           <a href="${viewURL}"> 
62                              <div class="projectBoxInner"> 
63                                 <div class="projectImg"> 
64                                    <img style= "border-radius:10px; height:300px;" src="${imageUrl}" alt="img" > 
65                                 </div> 
66                                 <div class="projectTxt"> 
67                                    <h4>${fields[0].getValue().getString(locale)}</h4> 
68                                    <span><@liferay.language key="read_more" /></span> 
69                                 </div> 
70                              </div> 
71													</a> 
72                        </div> 
73                     </div> 
74	</#if> 
75											 
76											</#list> 
77										</#if> 
78										 
79											</div> 
80											</div> 
81							<div class="owlControlGroup w-100 d-flex align-items-center justify-content-center"> 
82                     <div class="owlNavBtn"> 
83                        <div class="btn-wrap owl-nav"> 
84                           <button class="prev-btn owl-prev"><span>‹</span></button> 
85                           <div id="custom-owl-dots3" class="custom-owl-dots owl-dots"></div> 
86                           <button class="next-btn owl-next"><span>›</span></button> 
87                        </div> 
88                     </div> 
89                  </div> 
90								  
91    </section> 
92 
93 <script> 
94        $(document).ready(function() { 
95    // Function to highlight active link based on scroll position 
96    function highlightActiveLink() { 
97      const scrollPosition = $(window).scrollTop(); 
98 
99      $('section').each(function() { 
100        const sectionTop = $(this).offset().top - 50; // Adjust offset if needed 
101        const sectionBottom = sectionTop + $(this).outerHeight(); 
102 
103        if (scrollPosition >= sectionTop && scrollPosition < sectionBottom) { 
104          const targetId = '#' + $(this).attr('id'); 
105          $('.scrollNav a').removeClass('active'); 
106          $('.scrollNav a[href="' + targetId + '"]').addClass('active'); 
107
108      }); 
109
110 
111    // Function for smooth scrolling on link click 
112    $('.scrollNav a').on('click', function(e) { 
113      e.preventDefault(); 
114      const targetId = $(this).attr('href'); 
115      const $targetSection = $(targetId); 
116 
117      if ($targetSection.length) { 
118        $('html, body').animate({ 
119          scrollTop: $targetSection.offset().top 
120        }, 100, 'swing', function() { 
121          highlightActiveLink(); // Highlight active link after scrolling 
122        }); 
123
124    }); 
125 
126    // Highlight active link on initial page load 
127    highlightActiveLink(); 
128 
129    // Highlight active link on scroll 
130    $(window).on('scroll', function() { 
131      highlightActiveLink(); 
132    }); 
133  }); 
134      </script> 
135      
136      <script> 
137          
138         // Get all video containers 
139         var videoContainers = document.querySelectorAll('.video-container'); 
140          
141         // Iterate through each video container 
142         videoContainers.forEach(function (container) { 
143             // Get video and button inside each container 
144             var video = container.querySelector('.video-item'); 
145             var btn = container.querySelector('.video-btn'); 
146          
147             // Function to play/pause video and change button text 
148             function myFunction() { 
149                 if (video.paused) { 
150                     video.play(); 
151                     btn.innerHTML = '<i class="fa fa-pause" aria-hidden="true"></i>'; 
152                 } else { 
153                     video.pause(); 
154                     btn.innerHTML = '<i class="fa fa-play" aria-hidden="true"></i>'; 
155
156
157          
158             // Attach the myFunction to the button's click event 
159             btn.addEventListener('click', myFunction); 
160         }); 
161          
162          
163          
164          
165          
166          
167          
168          
169      </script> 
170 
171      <script> 
172         // Parallax background 
173         $('.jarallax').jarallax({ 
174             speed: 0.5, 
175         }) 
176          
177          
178          
179          
180         $(".youtube-link").grtyoutube({ 
181             autoPlay: true, 
182             theme: "dark", 
183         }); 
184         $(".ourUnitsOwlCarousel").owlCarousel({ 
185             loop: false, 
186             margin: 20, 
187             dots: true, 
188             // autoplay: true, 
189             autoplayTimeout: 5000, 
190             smartSpeed: 1000, 
191             nav: true, 
192             autoplayHoverPause: true, 
193             dotsContainer: '#custom-owl-dots3', 
194             responsive: { 
195                 0: { 
196                     items: 1, 
197                     dots: false, 
198                 }, 
199                 600: { 
200                     items: 3, 
201                     dots: false, 
202                 }, 
203                 768: { 
204                     items: 3, 
205                 }, 
206                 1200: { 
207                     items: 5, 
208                 }, 
209             }, 
210         }); 
211          
212         $(document).ready(function ($) { 
213             var owl = $(".ourUnitsOwlCarousel"); 
214             owl.owlCarousel(); 
215             $(".next-btn").click(function () { 
216                 owl.trigger("next.owl.carousel"); 
217             }); 
218             $(".prev-btn").click(function () { 
219                 owl.trigger("prev.owl.carousel"); 
220             }); 
221             $(".prev-btn").addClass("disabled"); 
222             $(owl).on("translated.owl.carousel", function (event) { 
223                 if ($(".owl-prev").hasClass("disabled")) { 
224                     $(".prev-btn").addClass("disabled"); 
225                 } else { 
226                     $(".prev-btn").removeClass("disabled"); 
227
228                 if ($(".owl-next").hasClass("disabled")) { 
229                     $(".next-btn").addClass("disabled"); 
230                 } else { 
231                     $(".next-btn").removeClass("disabled"); 
232
233             }); 
234         }); 
235      </script> 
236      <script> 
237         const element = document.querySelector(".cpwdTimeline"); 
238         let isDragging = false; 
239         let previousX; 
240         let autoplayInterval; // Variable to store autoplay interval 
241          
242         function handleMove(event) { 
243             if (isDragging) { 
244                 const clientX = event.clientX || event.touches[0].clientX; 
245                 const deltaX = clientX - previousX; 
246                 element.scrollLeft -= deltaX; 
247                 previousX = clientX; 
248
249
250          
251         element.addEventListener('mousedown', (event) => { 
252             isDragging = true; 
253             previousX = event.clientX; 
254         }); 
255          
256         element.addEventListener('touchstart', (event) => { 
257             isDragging = true; 
258             previousX = event.touches[0].clientX; 
259         }); 
260          
261         element.addEventListener('mousemove', handleMove); 
262         element.addEventListener('touchmove', handleMove); 
263          
264         window.addEventListener('mouseup', () => { 
265             isDragging = false; 
266         }); 
267          
268         element.addEventListener('selectstart', () => { 
269             const selection = window.getSelection(); 
270             if (selection.toString().length > 0 && selection.focusNode.parentElement === element) { 
271                 element.scrollLeft = 0; 
272
273         }); 
274          
275         function startAutoplay() { 
276             autoplayInterval = setInterval(() => { 
277                 // Change the scrollLeft value here for smooth autoplay 
278                 element.scrollLeft += 1; // Adjust this value for the desired scrolling speed 
279             }, 20); // Change the interval for smoother/faster scrolling 
280
281          
282         function stopAutoplay() { 
283             clearInterval(autoplayInterval); 
284
285          
286         element.addEventListener('mouseenter', stopAutoplay); // Pause autoplay on hover 
287         element.addEventListener('mouseleave', startAutoplay); // Resume autoplay on mouse leave 
288          
289         // Initial handling of window size on load 
290         function handleResize() { 
291             isDragging = false; 
292
293          
294         window.addEventListener('resize', handleResize); 
295         handleResize(); 
296          
297         $('.counting').each(function () { 
298             var $this = $(this), 
299                 countTo = $this.attr('data-count'); 
300          
301             $({ countNum: $this.text() }).animate({ 
302                 countNum: countTo 
303             }, { 
304                 duration: 3000, 
305                 easing: 'linear', 
306                 step: function () { 
307                     $this.text(Math.floor(this.countNum)); 
308                 }, 
309                 complete: function () { 
310                     $this.text(this.countNum); 
311
312             }); 
313         }); 
314          
315         // Start autoplay initially 
316         startAutoplay(); 
317          
318          
319          
320      </script> 
321      <script> 
322        //  var $sidebar = $('#sidebar-nav'); 
323        //  var $content = $('#content'); 
324        //  var sidebarTop = $sidebar.position().top; 
325          
326        //  $(window).scroll(function () { 
327        //      var windowScrollTop = $(window).scrollTop(); 
328        //      var blogHeight = $content.outerHeight(); 
329          
330        //      if (windowScrollTop >= sidebarTop) { 
331        //          $sidebar.toggleClass('sticky', windowScrollTop < blogHeight); 
332        //      } else { 
333        //          $sidebar.removeClass('sticky'); 
334        //      } 
335        //  }); 
336          
337          
338          
339      </script>